1 #ifndef __FirFilter_h__
2 #define __FirFilter_h__
13 arm_fir_instance_f32 instance;
18 void processBlock(
float* source,
float* destination,
size_t size){
20 arm_fir_f32(&instance, source, destination, size);
22 for(
size_t n = 0; n < size; n++){
23 states[index] = source[n];
24 size_t tempIndex = index;
26 for(
size_t k = 0; k < coefficients.
getSize(); k++){
27 y += coefficients[k] * states[tempIndex];
28 tempIndex = (tempIndex == states.getSize()) ? 0 : tempIndex+1;
42 : coefficients(cfs), states(ste), blockSize(bsize) {
44 arm_fir_init_f32(&instance, coefficients.
getSize(), coefficients.
getData(), states.
getData(), blockSize);
55 processBlock(&input, &output, 1);
70 [[deprecated(
"use process() instead.")]]
74 [[deprecated(
"use process() instead.")]]
87 coefficients = newCoefficients;
95 coefficients.
copyFrom(newCoefficients);
121 return new FirFilter(coefficients, states, blocksize);
void process(FloatArray source, FloatArray destination)
void setCoefficients(FloatArray newCoefficients)
Sets coefficients to point to a different set of values.
static FirFilter * create(size_t taps, size_t blocksize)
float process(float input)
void processBlock(FloatArray buffer)
void setState(FloatArray newState)
Sets state to point to a different set of values.
FloatArray getCoefficients()
void copyCoefficients(FloatArray newCoefficients)
Copies coefficient values from an array.
void processBlock(FloatArray source, FloatArray destination)
void process(FloatArray buffer)
void copyState(FloatArray newState)
Copies state values from an array.
static void destroy(FirFilter *filter)
FirFilter(FloatArray cfs, FloatArray ste, size_t bsize)
This class contains useful methods for manipulating arrays of floats.
void clear()
Clear the array.
static void destroy(FloatArray array)
Destroys a FloatArray created with the create() method.
static FloatArray create(int size)
Creates a new FloatArray.
Base class for signal processors such as Filters.
void copyFrom(SimpleArray< T > source)
Copies the content of another array into this array.
T * getData()
Get the data stored in the Array.
#define ASSERT(cond, msg)