std1.0.0-beta-7 SafeC docs

Module dsp::filter

#include <std/dsp/filter.h> source

General FIR / IIR Filters

Streaming (one-sample-at-a-time) difference-equation filters — the general form biquad.h's 2nd-order sections and dsp.h's array-level primitives both specialize:

FIR ("feedforward"): y[n] = sum_{k=0}^{M-1} b[k]*x[n-k]
IIR ("feedback"):     y[n] = sum_{k=0}^{M-1} b[k]*x[n-k]
                           - sum_{k=1}^{N-1} a[k]*y[n-k]      (a[0] = 1)

Both keep their own history/state internally (a delay line for FIR, a direct-form-I input+output history for IIR) so a caller can feed them one real-time sample at a time — e.g. inside std::Reactor's per-task processing — rather than needing the whole signal in memory up front the way convolution.h's conv_direct does.

Structs

FirFilter
FirFilter32Single-precision FIR, same contract as FirFilter (float taps and history).
FFirFilter
IirFilter
IirFilter32Single-precision IIR, same contract as IirFilter. Float rounding grows with the order; cascade Biquad32 sections for anything steep.
FIirFilter