IIR Filter Functions

The functions described in this section initialize an infinite impulse response (IIR) filter and perform filtering. Intel IPP supports two types of filters: arbitrary order filter and biquad filter.

The figure below shows the structure of an arbitrary order IIR filter.

Structure of an Arbitrary Order Filter

Here x[n] is a sample of the input signal, y[n] is a sample of the output signal, order is the filter order, and b0, b1, . . ., b order, a1, . . ., a order are the reduced filter coefficients.

The output signal is computed by the following formula:



.

Reduced coefficients are calculated as ak = Ak/A0 and bk = Bk/A0

where A0, A 1,...Aorder, B0, B1,...Border are initial filter coefficients (taps).

A biquad IIR filter is a cascade of second-order filters. Figure below illustrates the structure of the biquad filter with k cascades of second-order filters.

Structure of a BiQuad IIR Filter

To initialize and use an IIR filter, follow this general scheme:


  1. Call ippsIIRInitAlloc to allocate memory and initialize the filter as an arbitrary order IIR filter, or call ippsIIRInitAlloc_BiQuad to allocate memory and initialize the filter as a cascade of biquads. Or alternatively call ippsIIRInit to initialize the filter as an arbitrary order IIR filter in the external buffer, or ippsIIRInit_BiQuad to initialize the filter as a cascade of biquads in the external buffer. Size of the buffer can be computed by calling the functions ippsIIRGetStateSize or ippsIIRGetStateSize_BiQuad, respectively.
  2. Call ippsIIROnerepeatedly to filter a single sample through an IIR filter or call ippsIIR to filter consecutive samples at once.
  3. Call ippsIIRGetDlyLine and ippsIIRSetDlyLine to get and set the delay line values in the IIR state structure.
  4. Call ippsIIRSetTaps to set new tap values in the previously initialized filter state structure.
  5. After all filtering is complete, call ippsIIRFree to release dynamic memory associated with the filter state structure created by ippsIIRInitAlloc or ippsIIRInitAlloc_BiQuad.

Alternatively, you may use the direct version of the functions. These functions perform filtering without initializing the filter state structure. All required parameters are directly set in the function.


Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.