Infinite Impulse Response (IIR) filters are fundamental elements of Digital Signal Processing. This is dspGuru’s mini-FAQ of “Frequently Asked Questions” on the subject of IIR filters.
1. IIR Basics
1.1 What are IIR filters? What does “IIR” mean?
IIR filters are one of two primary types of digital filters used in Digital Signal Processing (DSP) applications (the other type being FIR). “IIR” means “Infinite Impulse Response.”
1.2 Why is the impulse response “infinite?”
The impulse response is “infinite” because there is feedback in the filter; if you put in an impulse (a single “1” sample followed by many “0” samples), an infinite number of non-zero values will come out (theoretically.)
1.3 What is the alternative to IIR filters?
DSP filters can also be “Finite Impulse Response” (FIR). FIR filters do not use feedback, so for a FIR filter with N coefficients, the output always becomes zero after putting in N samples of an impulse response.
1.4 What are the advantages of IIR filters (compared to FIR filters)?
IIR filters can achieve a given filtering characteristic using less memory and calculations than a similar FIR filter.
1.5 What are the disadvantages of IIR filters (compared to FIR filters)?
- They are more susceptible to problems of finite-length arithmetic, such as noise generated by calculations, and limit cycles. (This is a direct consequence of feedback: when the output isn’t computed perfectly and is fed back, the imperfection can compound.)
- They are harder (slower) to implement using fixed-point arithmetic.
- They don’t offer the computational advantages of FIR filters for multirate (decimation and interpolation) applications.