Class evam::MinmaxDecor¶
template <class TMotor, unsigned char N>
ClassList > evam > MinmaxDecor
Decorator that applies a min-max (morphological) filter to the control signal. More...
#include <evamMinmaxDecor.h>
Inherits the following classes: TMotor
Public Functions¶
| Type | Name |
|---|---|
| void | Go (signed short value) Apply the control value with min-max filtering. |
| MinmaxDecor () |
|
| MinmaxDecor (MinmaxConfig config, Args... args) |
Detailed Description¶
The filter effectively removes both positive and negative impulse noise while preserving edges better than a simple moving average. The output is the average of the morphological opening and closing operations, providing symmetric behavior.
This filter divides the ring buffer into N chunks of N elements each, then computes: * minimax = min of chunk maximums (closing operation) * maximin = max of chunk minimums (opening operation) * output = (minimax + maximin) / 2
Template parameters:
MotorBase motor class (must implement Go(signed short))NNumber of chunks and chunk size (total buffer size = N * N)
Note:
The filter only produces filtered output after the buffer is full. Before that, values pass through unchanged.
Public Functions Documentation¶
function Go¶
Apply the control value with min-max filtering.
inline void evam::MinmaxDecor::Go (
signed short value
)
Passes values through unchanged until the ring buffer is full. Once full, each new value triggers: * Buffer update (overwrites oldest value) * Recalculation of chunk maximums and minimums * Output = (minimax + maximin) / 2
Parameters:
valueInput control value, range -1000..1000
function MinmaxDecor [1/2]¶
inline evam::MinmaxDecor::MinmaxDecor ()
function MinmaxDecor [2/2]¶
template<typename... Args>
inline evam::MinmaxDecor::MinmaxDecor (
MinmaxConfig config,
Args... args
)
The documentation for this class was generated from the following file src/evamMinmaxDecor.h