27#ifndef NIDAS_CORE_ADAPTIVE_DESPIKER_H
28#define NIDAS_CORE_ADAPTIVE_DESPIKER_H
32namespace nidas {
namespace core {
85 float despike(
float u,
bool* spike);
129 static void spline(
float* x,
float* y,
int n,
double yp1,
double ypn,
float* y2);
134 static double splint (
float* xa,
float* ya,
float* y2a,
int n,
double x);
Adaptive forecaster for despiking of time-series data.
Definition AdaptiveDespiker.h:42
size_t _npts
Number of points processed.
Definition AdaptiveDespiker.h:187
void initStatistics(float u)
Definition AdaptiveDespiker.cc:237
static bool staticInitDone
Definition AdaptiveDespiker.h:127
static float _adj[ADJUST_TABLE_SIZE][2]
Definition AdaptiveDespiker.h:125
static float discrLevel(float prob)
Compute a discrimination level from a Gaussan probability.
Definition AdaptiveDespiker.cc:364
float _missfreq
Running ave of freq of missing data.
Definition AdaptiveDespiker.h:181
double _corr
Correlation.
Definition AdaptiveDespiker.h:173
float _prob
Prob for detection of outlier in good Gaussian data.
Definition AdaptiveDespiker.h:144
void setOutlierProbability(float val)
Definition AdaptiveDespiker.cc:90
float _u1
Last point.
Definition AdaptiveDespiker.h:157
double _var2
Current variance.
Definition AdaptiveDespiker.h:169
float _levelMultiplier
Increase detection level with this factor.
Definition AdaptiveDespiker.h:147
double _mean2
Current mean.
Definition AdaptiveDespiker.h:163
float despike(float u, bool *spike)
Pass a value u, and return a forecasted value, along with a boolean indicating whether AdaptiveDespik...
Definition AdaptiveDespiker.cc:206
void reset()
Reset the statistics.
Definition AdaptiveDespiker.cc:199
static double splint(float *xa, float *ya, float *y2a, int n, double x)
Definition AdaptiveDespiker.cc:168
float forecast() const
Forecast a value based on the previous point and correlation and mean.
Definition AdaptiveDespiker.h:91
double _level
Definition AdaptiveDespiker.h:178
double _mean1
Previous mean.
Definition AdaptiveDespiker.h:160
static const int ADJUST_TABLE_SIZE
Definition AdaptiveDespiker.h:121
static bool staticInit()
Definition AdaptiveDespiker.cc:45
double _var1
Previous variance.
Definition AdaptiveDespiker.h:166
static float adjustLevel(float corr)
Adjust the discrimination level based on the current correlation.
Definition AdaptiveDespiker.cc:340
float getDiscLevel() const
If a value is more than discrLevel * sigma away from the mean, then it is considered a spike,...
Definition AdaptiveDespiker.h:77
double _initLevel
Discrimination level.
Definition AdaptiveDespiker.h:176
AdaptiveDespiker()
Constructor.
Definition AdaptiveDespiker.cc:69
void incrementStatistics(float u)
Definition AdaptiveDespiker.cc:256
static void spline(float *x, float *y, int n, double yp1, double ypn, float *y2)
Copied from "Numerical Recipies in C", the only changes being arrays are indexed from 0,...
Definition AdaptiveDespiker.cc:117
float getDiscLevelMultiplier() const
Definition AdaptiveDespiker.h:70
static const int LEN_ERFC_ARRAY
Definition AdaptiveDespiker.h:123
float _maxMissingFreq
If more than _maxMissingFreq of the recent 10 data points are missing data points,...
Definition AdaptiveDespiker.h:154
void setDiscLevelMultiplier(float val)
Definition AdaptiveDespiker.cc:96
int _msize
Memory size.
Definition AdaptiveDespiker.h:184
static const size_t STATISTICS_SIZE
Definition AdaptiveDespiker.h:119
float getOutlierProbability() const
Definition AdaptiveDespiker.h:59
void updateStatistics(float u)
Definition AdaptiveDespiker.cc:294
Root namespace for the NCAR In-Situ Data Acquisition Software.
Definition A2DConverter.h:31