HomeArticlesDigital Signal Processing

FIR vs IIR Digital Filters: Bode Plots, Poles and Zeros

Why FIR filters can't go unstable, what linear phase actually buys you, and how poles and zeros decode a Bode plot.

mysimulator teamUpdated June 2026≈ 8 min read▶ Open the simulation

Two families, one job: reshape a spectrum

A digital filter takes a sequence of samples and produces a new sequence whose frequency content has been reshaped — attenuating some frequencies, passing others. Every linear time-invariant digital filter falls into one of two families. FIR (Finite Impulse Response) filters compute each output sample as a weighted sum of a fixed number of past inputs only:

y[n] = b0·x[n] + b1·x[n-1] + ... + bM·x[n-M]        // FIR: feedforward only
live demo · signal, Bode magnitude/phase and pole-zero plot updating live● LIVE

IIR (Infinite Impulse Response) filters add feedback — each output also depends on past outputs:

y[n] = b0·x[n] + b1·x[n-1] + ... - a1·y[n-1] - a2·y[n-2] - ...        // IIR: feedback

That feedback term is the whole trade-off in miniature. An IIR filter can achieve a sharp frequency response with a handful of coefficients because the feedback lets a short input history produce a response that, in principle, never fully dies out — hence 'infinite' impulse response. An FIR filter needs many more taps for the same sharpness, but in exchange it is unconditionally stable (a finite sum of finite numbers cannot blow up) and can be made exactly linear-phase, which an IIR filter with feedback generally cannot.

Why linear phase matters

A filter has linear phase when phase shift is directly proportional to frequency, which is equivalent to every frequency component being delayed by the same amount of time. Departing from that — phase distortion — smears a sharp-edged signal (a pulse, a musical transient, a QAM symbol) because its different frequency components arrive at slightly different times and no longer sum back into the original shape, even if the magnitude response is flawless. FIR filters achieve exact linear phase for free by making the coefficient sequence symmetric (b_k = b_(M-k)); IIR filters cannot do this in general because the feedback path makes the phase response a nonlinear function of frequency by construction.

Classic IIR designs: Butterworth, Chebyshev, elliptic

Analog filter theory maps directly onto IIR design via the bilinear transform. Butterworth filters are 'maximally flat' in the passband — no ripple, at the cost of a relatively gentle roll-off for a given order. Chebyshev filters trade some passband (Type I) or stopband (Type II) ripple for a steeper transition at the same order. Elliptic (Cauer) filters allow ripple in both bands and achieve the steepest possible roll-off for a given order — the sharpest transition band per pole, but the worst phase behaviour and the most sensitive coefficients.

Poles, zeros, and reading the Bode plot

A filter's behaviour is completely captured by its transfer function H(z), a ratio of polynomials in z whose roots are the filter's zeros (numerator roots, where the response goes to zero) and poles (denominator roots, where the response would blow up). Poles must stay strictly inside the unit circle in the z-plane for the filter to be stable — a pole on or outside it means an unbounded, exploding output for a bounded input. FIR filters, having no denominator, have no poles at all (all poles sit at the origin), which is the structural reason they cannot be unstable. The magnitude and phase response you see on a Bode plot is exactly H(z) evaluated around the unit circle, z = e^(jω): the closer a pole sits to the unit circle at some angle, the sharper the resonant peak the frequency response shows near that angle's frequency.

H(z) = ( b0 + b1·z⁻¹ + ... + bM·z⁻ᴹ ) / ( 1 + a1·z⁻¹ + ... + aN·z⁻ᴺ )
  zeros: roots of numerator      poles: roots of denominator
  stable  ⇔  all poles satisfy |z| < 1

Windowed-sinc: the FIR designer's shortcut

The ideal brick-wall low-pass filter has an impulse response that is an infinite sinc function, sin(πn·fc)/(πn) — impossible to implement directly since it is both infinite and non-causal. The windowed-sinc method truncates that sinc to a finite length and multiplies it by a tapering window (Hamming, Hann, Blackman) to suppress the ringing (Gibbs phenomenon) that an abrupt truncation would otherwise cause in the stopband. The window is a direct trade: a wider main lobe (worse transition steepness) buys lower side lobes (better stopband attenuation) — Hamming and Blackman sit at different points on that trade-off, which is why the choice of window is itself a design decision, not an afterthought.

Frequently asked questions

Why would I ever choose FIR over IIR if IIR needs fewer coefficients?

Because FIR filters are unconditionally stable and can be made exactly linear-phase, which matters whenever preserving a signal's time-domain shape (audio, communications symbols, biomedical waveforms) is as important as its frequency response. IIR filters are the better choice when computational cost or latency matters more than phase fidelity, since they hit a given sharpness with far fewer taps.

What does it mean for a filter to be unstable?

It means at least one pole of the transfer function lies on or outside the unit circle in the z-plane, so the feedback in the difference equation can amplify without bound — a bounded input can produce an ever-growing, eventually numerically overflowing output. FIR filters have no feedback path at all, so this failure mode structurally cannot happen to them.

What is the practical difference between a Butterworth and a Chebyshev filter?

A Butterworth filter has a perfectly flat passband but rolls off relatively gently; a Chebyshev filter allows a small amount of ripple in exchange for a much steeper transition at the same filter order. Choose Butterworth when passband fidelity matters most, Chebyshev when you need the sharpest possible cutoff and can tolerate a little ripple.

Try it live

Everything above runs in your browser — open Digital Filter (FIR/IIR) and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.

▶ Open Digital Filter (FIR/IIR) simulation

What did you find?

Add reproduction steps (optional)