The
functions described in this section perform a finite impulse response (FIR)
filtering of input data. The functions initialize different FIR
filter structures, get and set the delay lines and filter coefficients
(taps), and perform filtering. Intel IPP contains the functions
that implement the FIR filters without the delay line - stream FIR
filters.
To use the FIR filter functions, follow this general scheme:
- Call either ippsFIRInitAlloc
or ippsFIRMRInitAlloc
to allocate memory and initialize the taps and the delay line in
the filter state structure of a single-rate or multi-rate filter,
respectively.
Or call either ippsFIRInit
or ippsFIRMRInit
to initialize the taps and the delay line in the corresponding
filter state structure in the previously created external buffer.
The size of this buffer must be computed beforehand by calling
the functions
ippsFIRGetStateSize
or
ippsFIRMRGetStateSize, respectively.
- Call ippsFIROne
to filter a single sample through a single-rate filter, ippsFIR
to filter a block of consecutive samples through a single-rate
or multi-rate filter.
- To set new taps and delay line values in the previously initialized
filter state, call the functions ippsFIRSetTaps
and ippsFIRSetDlyLine. To get taps and delay line values of the initialized filter state,
call the functions ippsFIRGetTaps
and ippsFIRGetDlyLine.
- Call ippsFIRFree
to free dynamic memory associated with the FIR filter state structure
created by ippsFIRInitAlloc
or ippsFIRMRInitAlloc.
Alternatively, you may use the direct version of the functions
ippsFIROne_Direct, ippsFIR_Direct, ippsFIRMR_Direct. These functions perform filtering without initializing the filter
state structure. All required parameters are directly set in the
function.
Special set of
functions
allows to compute the filter coefficients for different filters.