25#include "MovingFilter.h"
26#include "MovingStats.h"
31constexpr float NORMALIZER_DEFAULT_MEAN = 0.5f;
32constexpr float NORMALIZER_DEFAULT_STDDEV = 1.0f / MOVING_FILTER_N_STDDEV_RANGE;
34constexpr float NORMALIZER_DEFAULT_MEAN2 = sq(NORMALIZER_DEFAULT_STDDEV) + sq(NORMALIZER_DEFAULT_MEAN);
37constexpr float NORMALIZER_DEFAULT_CLAMP_STDDEV = 0.5f * MOVING_FILTER_N_STDDEV_RANGE - FLT_MIN;
40#define NORMALIZER_NO_CLAMP 0
100 virtual void reset();
103 virtual void reset(
float estimatedMeanValue);
106 virtual void reset(
float estimatedMinValue,
float estimatedMaxValue);
114 virtual float put(
float value);
117 virtual float filter(
float value);
139 void clamp(
float nStdDev=NORMALIZER_DEFAULT_CLAMP_STDDEV);
145 virtual float mapTo(
float toLow,
float toHigh);
154 float _clamp(
float value)
const;
164 float _currentMeanStep;
165 float _currentMean2Step;
The main Plaquette static class containing all the units.
Definition PqCore.h:63
static Engine & primary()
Returns the main instance of Plaquette.
Definition PqCore.cpp:30
Definition MovingFilter.h:39
Definition MovingStats.h:30
virtual float stdDev() const
Returns the standard deviation of the samples.
Definition MovingStats.cpp:55
virtual float mean() const
Returns an exponential moving average of the samples.
Definition MovingStats.h:53
Adaptive normalizer: normalizes values on-the-run using exponential moving averages over mean and sta...
Definition Normalizer.h:46
void targetMean(float mean)
Sets target mean of normalized values.
Definition Normalizer.h:84
void noClamp()
Remove clamping.
Definition Normalizer.cpp:164
void clamp(float nStdDev=NORMALIZER_DEFAULT_CLAMP_STDDEV)
Assign clamping value.
Definition Normalizer.cpp:160
virtual void reset()
Resets the statistics.
Definition Normalizer.cpp:47
virtual float mapTo(float toLow, float toHigh)
Maps value to new range.
Definition Normalizer.cpp:185
virtual float lowOutlierThreshold(float nStdDev=1.5f) const
Returns value above which value is considered to be a low outler (below average).
Definition Normalizer.cpp:148
float targetMean() const
Returns target mean.
Definition Normalizer.h:87
virtual float put(float value)
Pushes value into the unit.
Definition Normalizer.cpp:71
bool isClamped() const
Return true iff the normalized value is clamped within reasonable range.
Definition Normalizer.cpp:156
virtual float filter(float value)
Returns the filtered value (without calibrating).
Definition Normalizer.cpp:116
float targetStdDev() const
Returns target standard deviation.
Definition Normalizer.h:96
void targetStdDev(float stdDev)
Sets target standard deviation of normalized values.
Definition Normalizer.h:93
virtual float highOutlierThreshold(float nStdDev=1.5f) const
Returns value above which value is considered to be a high outler (above average).
Definition Normalizer.cpp:152
virtual float timeWindow() const
Returns the time window (expressed in seconds).
Definition TimeWindowable.h:45
Engine * engine() const
Returns the engine that owns this unit.
Definition PqCore.h:420