Skip to content

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:

  • Motor Base motor class (must implement Go(signed short))
  • N Number 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:

  • value Input 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