20#ifndef MOVING_FILTER_H_
21#define MOVING_FILTER_H_
24#include "TimeWindowable.h"
25#include "pq_moving_average.h"
30#define MOVING_FILTER_N_VALUES_STEP_MAX 63
31constexpr float MOVING_FILTER_N_VALUES_STEP_MAX_MINUS_ONE = MOVING_FILTER_N_VALUES_STEP_MAX - 1;
34constexpr float MOVING_FILTER_VALUES_STEP_ADD_ONE_PROPORTION = MOVING_FILTER_N_VALUES_STEP_MAX / (MOVING_FILTER_N_VALUES_STEP_MAX + 1.0f);
37#define MOVING_FILTER_N_STDDEV_RANGE 5.0f
61 virtual void reset(
float estimatedMeanValue);
64 virtual void reset(
float estimatedMinValue,
float estimatedMaxValue);
85 unsigned int nSamples()
const {
return _nSamples; }
91 virtual float filter(
float value) = 0;
97 virtual float alpha()
const {
102 bool _isCalibrating : 1;
103 bool _isPreInitialized : 1;
104 uint8_t _nValuesStep : 6;
107 unsigned int _nSamples;
An analog analog source that contains a value constrained to a finite range (typically in [0,...
Definition PqCore.h:482
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
virtual float filter(float value)=0
Returns the filtered value (without calibrating).
virtual void resumeCalibrating()
Switches to calibration mode (default).
Definition MovingFilter.cpp:58
virtual bool isCalibrating() const
Returns true iff the moving filter is in calibration mode.
Definition MovingFilter.cpp:70
virtual void toggleCalibrating()
Toggles calibration mode.
Definition MovingFilter.cpp:66
virtual void reset()
Resets the filter.
Definition MovingFilter.cpp:40
virtual void pauseCalibrating()
Switches to non-calibration mode: calls to put(value) will return filtered value without updating the...
Definition MovingFilter.cpp:62
virtual bool isPreInitialized() const
Returns true if the moving filter has been initialized with a starting range at reset.
Definition MovingFilter.h:88
unsigned int nSamples() const
Returns the number of samples that have been processed thus far.
Definition MovingFilter.h:85
Abstract class for time-based objects.
Definition TimeWindowable.h:28
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
float sampleRate() const
Returns engine sample rate.
Definition PqCore.h:398