Adaptive IIR filters is not straightforward, and may be unstable. Many people say that adaptive IIR filters use less coefficients than FIR filters. What I'm curious about is how many coefficients can IIR save?

I tried to use adaptive IIR filters to estimate transfer function of a 32-order FIR filter. Assume the IIR filter has $M+N+1$ coefficients: $a_1, a_2, ..., a_M, b_0, b_1, ...b_N$. I found the estimation result is acceptable only when $M+N+1 \ge 30$, i.e. only 2 coefficients can be saved.

In actual projects, for example, a 50 MHz FPGA, a 32-order FIR will produce about $(32 / 50 ~{M}) / 2 = 0.32 ~{\mu s}$ delay, so

  • What will happen for IIR?
  • Can adaptive IIR filters really reduce number of coefficients and reduce signal processing time delay?
  • $\begingroup$ Note that a typical 32 order FIR will produce about $16/50M = 0.32 \mu s $ delay: The dominant tap is usually in the center of the filter, causing the delay to be half of the filter length. $\endgroup$ Jul 14, 2016 at 3:16
  • $\begingroup$ Yes you are right, it is a 0.32 us delay. Thanks for correcting me. $\endgroup$ Jul 14, 2016 at 3:22
  • 3
    $\begingroup$ I am also not familiar with adaptive IIR filters, but I am surprised and a little skeptical about it taking 31 adaptive IIR filter taps to match a 33 tap FIR filter. Typically it would take far fewer IIR filter taps to produce a comparable filter. $\endgroup$
    – Jim Clay
    Jul 16, 2016 at 11:20
  • 4
    $\begingroup$ I don't believe that that is a good way to compare the filters. Instead, you should use metrics that are based on what you are probably actually trying to achieve, such as stop-band attenuation, ripple, etc. $\endgroup$
    – Jim Clay
    Jul 18, 2016 at 11:54
  • 1
    $\begingroup$ I think your comparison is not fair, based on one example you can not conclude that saving from IIR is minor. Think of an impulse response with finite duration, say 4 samples. The IIR implementation in this case might be far less efficient but many other cases that impulse response shows exponential decay, IIR can model this signal a lot more efficiently. $\endgroup$
    – Ali
    Jul 28, 2016 at 14:12

1 Answer 1


These are the key differences between FIR and IIR filters, regarding the feature you wish to control are the following:

$$ \begin{array}{c|lcr} \text{Feature} & \text{IIR} & \text{FIR} \\ \hline \text{Implementation} & \text{Poles & Zeros} & \text{Zeros Only} \\ \text{States} & \text{Yes} & \text{No} \\ \text{Phase Delay} & \text{*} & \text{Half Integer} \\ \text{Stability} & \text{*} & \text{Always} \\ \text{Ripple} & \text{Yes} & \text{*} \\ \text{Cut-Off} & \text{Yes} & \text{*} \\ \end{array} $$

The * indicates the feature can be controlled, by adding orders in most cases.

The standard definitions of FIR and IIR filters are:


$$H(z)=b_0z^0+...+b_nz^n$$ $$y(t)=b_0u(t)+...+b_nu(t-n)$$


$$H(z)=\frac{b_0+b_1z^1+...+b_nz^n}{1+a_1z^1+...+a_nz^n}$$ $$y(t)=b_0u(t)+...+b_nu(t-n)-a_1y(t-1)-...-a_ny(t-n)$$

$u$ is the input, $y$ is the output, $x$ is the states (below), $t$ is the time, scaled by a sampling time $dt$, $n$ is the number of orders of the filter. Each filter has $n$ size coefficient vectors, plus constant direct-output term $b_0$ (optional), and $a_0$=1. For simplicity assume $\sum{b_i}=1$ and $\sum{a_i}=1$, though this is not required anywhere.

Implementation. By definition, FIR include zeros only, leading to a linear system in the history vector for $u$: $[u(t-1)...u(t-n)]$.

IIR include both poles and zeros, also leading to a linear system in the history vector not only for $u$, but for $y$ too. Because of this, by one side IIR can be unstable; but by other side, they can be designed to have smooth ripple and sharp cutoffs with a minor number of orders.

States. FIR are static systems in the history vectors, meaning the filter is not dynamical, do not have states, is not recursive, no feedback. IIR are dynamical systems in the history vectors, meaning the filters have states, is recursive, has feedback, hence have "memory" from past inputs & outputs.

Phase Delay. The Phase Delay $\tau_\phi$

$$y(t)=y_0(t-\tau_t) sin(\omega(t-\tau_\phi)+\theta)$$

can be easily controlled in FIR implementations. If $b_k=b_{n-k}$,$k=0...n$, the phase delay is constant, equal to $n/2$ (the center of the FIR coefficients shape, its impulse response), equal to the group delay, and thus the filter become linear phase, with phase equal to $\omega\tau_phi$.

Because IIR have infinite impulse response, they can be minimum phase instead of linear phase, though the phase achieved can be much less than the phase of a FIR for the same number of orders.

Stability. FIR are always stable, IIR can be designed to be stable, if stability is required.

Ripple. IIR can be designed to be flat-ripple both in pass-band|stop-band|both (butterworth|chebyshev|elliptic), FIR requires a major (tending to "infinite") number of orders for equate this property.

Cut-Off. IIR can be designed to have a sharp cut-off or narrow transition bands, FIR requires a major (tending to "infinite") number of orders for equate this property.

Related Articles:

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-341-discrete-time-signal-processing-fall-2005/lecture-notes/lec08.pdf https://www.quora.com/Why-are-FIR-filters-preferred-over-IIR-filters http://iowahills.com/A8FirIirDifferences.html http://forums.prosoundweb.com/index.php?topic=2045.0 http://www.vyssotski.ch/BasicsOfInstrumentation/SpikeSorting/Design_of_FIR_Filters.pdf


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.