9
$\begingroup$

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?
$\endgroup$
  • $\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$ – Dan Boschen Jul 14 '16 at 3:16
  • $\begingroup$ Yes you are right, it is a 0.32 us delay. Thanks for correcting me. $\endgroup$ – Alexander Zhang Jul 14 '16 at 3:22
  • $\begingroup$ Also do you mean to limit your question to adaptive filters specifically or is this a general question about IIR vs FIR filters (with fixed coefficients, therefore not adaptive)? $\endgroup$ – Dan Boschen Jul 14 '16 at 3:29
  • 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 '16 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 '16 at 11:54
3
$\begingroup$

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:

FIR:

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

IIR:

$$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

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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