Visible to Intel only — GUID: GUID-E826C841-E83D-4069-95ED-3AEE477729FB
Visible to Intel only — GUID: GUID-E826C841-E83D-4069-95ED-3AEE477729FB
IIRIIR Filter Functions
The functions described in this section initialize an infinite impulse response (IIR) filter and perform a zero-phase digital filtering of input data in both forward and backward directions. The formulas below explain why the filtered signal has zero-phase distortion. Consider the following case in the frequency domain: if x(n) is the input sequence and h(n) is the IIR filter's impulse response, then the result of the forward filter pass is:

where
- X(eiφ) is the Fourier transform of x(n)
- H(eiφ) is the Fourier transform of h(n)
- Y1(eiφ) is the Fourier transform of the forward filter pass
Backward filtering corresponds to filtering of time-reversed signal. Time reversal corresponds to replacing φ with -φ in the frequency domain, so the result of time reversal is:

When the filter is applied for the second time, the above formula is multiplied by the Fourier transform of the filter's impulse response function H(eiφ):

The final time reversal in the frequency domain results in:

You can see from the resulting equation that:
- The filtered signal has zero-phase distortion (as the filtering was done with |H(eiφ)|2, which is purely real-valued)
- The filter transfer function has the squared magnitude of the original filter transfer function
- The filter order is double the order of the initialized IIR filter
To initialize and use an IIRIIR filter, follow this general scheme:
- Call ippsIIRIIRInit to initialize the IIRIIR filter in the external buffer. To compute the size of the buffer, use the ippsIIRIIRGetStateSize function.
- Call ippsIIRIIR to filter a vector.
- Call ippsIIRIIRGetDlyLine and ippsIIRIIRSetDlyLine to get and set the delay line values in the IIRIIR state structure.
- IIRIIRGetStateSize
Computes the length of the external buffer for the IIRIIR filter state structure. - IIRIIRInit
Initializes the IIRIIR filter state structure. - IIRIIRGetDlyLine
Retrieves the delay line contents from the IIIRIR filter state structure. - IIRIIRSetDlyLine
Sets the delay line contents in the IIRIIR filter state structure. - IIRIIR
Filters a source vector through an IIRIIR filter.