An Arduino finite impulse response and infinite impulse response filter library.
This library implements digital finite impulse response filters (FIR) and infinite impulse response filters (IIR). 32-bit floating point arithmetic is used.
The difference equation for FIR filters is given by
To initialize it in code, you can use:
const float b_coefficients[] = { b_0, b_1, b_2, ... , b_N };
FIRFilter fir(b_coefficients);
The difference equation for FIR filters is given by
const float b_coefficients[] = { b_0, b_1, b_2, ... , b_P };
const float a_coefficients[] = { a_0, a_1, a_2, ... , a_Q };
IIRFilter iir(b_coefficients, a_coefficients);
The filter
method takes the new (raw) value as an intput, and outputs the new (filtered) value.
float raw_value = getRawValue();
float filtered_value = fir.filter(raw_value);
You can use multiple filters on the input.
float filtered_value = fir.filter(iir.filter(raw_value));