Developer Reference

  • 2020
  • 10/21/2020
  • Public Content
Contents

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(e
    )
    is the Fourier transform of
    x(n)
  • H(e
    )
    is the Fourier transform of
    h(n)
  • Y
    1
    (e
    )
    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(e
)
:
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(e
    )|
    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:
  1. Call
    ippsIIRIIRInit
    to initialize the IIRIIR filter in the external buffer. To compute the size of the buffer, use the
    ippsIIRIIRGetStateSize
    function.
  2. Call
    ippsIIRIIR
    to filter a vector.
  3. Call
    ippsIIRIIRGetDlyLine
    and
    ippsIIRIIRSetDlyLine
    to get and set the delay line values in the IIRIIR state structure.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.