25#include "MovingFilter.h"
26#include "MovingStats.h"
30#define NORMALIZER_DEFAULT_MEAN 0.5f
31#define NORMALIZER_DEFAULT_STDDEV 0.15f
34constexpr float NORMALIZER_DEFAULT_MEAN2 = (NORMALIZER_DEFAULT_STDDEV*NORMALIZER_DEFAULT_STDDEV) + (NORMALIZER_DEFAULT_MEAN*NORMALIZER_DEFAULT_MEAN);
37constexpr float NORMALIZER_DEFAULT_CLAMP_STDDEV = 0.5f / NORMALIZER_DEFAULT_STDDEV - FLT_MIN;
39#define NORMALIZER_NO_CLAMP 0
110 virtual void reset();
118 virtual float put(
float value);
140 void clamp(
float nStdDev=NORMALIZER_DEFAULT_CLAMP_STDDEV);
146 virtual float mapTo(
float toLow,
float toHigh);
150 virtual float update(
float value,
float sampleRate=1);
156 float _clamp(
float value)
const;
166 float _currentMeanStep;
167 float _currentMean2Step;
The main Plaquette static class containing all the units.
Definition PqCore.h:60
static Engine & primary()
Returns the main instance of Plaquette.
Definition PqCore.cpp:31
Definition MovingFilter.h:29
Definition MovingStats.h:30
virtual float stdDev() const
Returns the standard deviation of the samples.
Definition MovingStats.cpp:63
virtual float mean() const
Returns an exponential moving average of the samples.
Definition MovingStats.h:73
Adaptive normalizer: normalizes values on-the-run using exponential moving averages over mean and sta...
Definition Normalizer.h:45
void targetMean(float mean)
Sets target mean of normalized values.
Definition Normalizer.h:83
void noClamp()
Remove clamping.
Definition Normalizer.cpp:159
void clamp(float nStdDev=NORMALIZER_DEFAULT_CLAMP_STDDEV)
Assign clamping value.
Definition Normalizer.cpp:155
virtual void reset()
Resets the statistics.
Definition Normalizer.cpp:64
virtual float mapTo(float toLow, float toHigh)
Maps value to new range.
Definition Normalizer.cpp:182
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:143
virtual bool timeWindowIsInfinite() const
Returns true if time window is infinite.
Definition Normalizer.cpp:60
float targetMean() const
Returns target mean.
Definition Normalizer.h:86
virtual void infiniteTimeWindow()
Sets time window to infinite.
Definition Normalizer.cpp:50
virtual float put(float value)
Pushes value into the unit.
Definition Normalizer.cpp:69
bool isClamped() const
Return true iff the normalized value is clamped within reasonable range.
Definition Normalizer.cpp:151
virtual float update(float value, float sampleRate=1)
Adds a value to the statistics (returns the mean).
Definition Normalizer.cpp:127
float targetStdDev() const
Returns target standard deviation.
Definition Normalizer.h:95
void targetStdDev(float stdDev)
Sets target standard deviation of normalized values.
Definition Normalizer.h:92
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:147
virtual float timeWindow() const
Returns the time window (expressed in seconds).
Definition Normalizer.cpp:58
float seconds() const
Returns engine time in seconds.
Definition PqCore.h:348
Engine * engine() const
Returns the engine that owns this unit.
Definition PqCore.h:382