The standard method for converting analog filter prototypes into digital IIR filters — mapping the entire s-plane to the z-plane with no aliasing.
The bilinear transform substitutes the analog variable s with a rational function of z. Apply the substitution to H_a(s) and you instantly get H(z).
Every point in the s-plane maps to exactly one point in the z-plane, and vice versa. The three key correspondences:
- Left half-plane (stable analog) → inside unit circle (stable digital)
- Imaginary axis jΩ → unit circle |z| = 1 (frequency response)
- Right half-plane (unstable) → outside unit circle
Compressing ±∞ into ±π is not free — the frequency axis gets nonlinearly distorted. Near DC the mapping is almost linear, but near Nyquist (ω→π) analog frequencies are heavily compressed.
Design the analog prototype at the pre-warped frequency Ω_c. After the bilinear transform, the digital cutoff lands exactly at the target ω_c.
Only critical band-edge frequencies need pre-warping. The rest of the response will be warped but within-band character (equiripple or monotone) is preserved.
- Step 1: Specify digital filter — ω_p, ω_s, δ_p, δ_s
- Step 2: Pre-warp band edges → Ω_p, Ω_s
- Step 3: Design analog prototype (Butterworth / Chebyshev / Elliptic) at pre-warped frequencies
- Step 4: Apply bilinear substitution to get H(z)
Add a frequency transformation before the bilinear step to design any filter type from a lowpass prototype:
- LP → HP: replace s with Ω_c / s
- LP → BP: replace s with (s² + Ω_0²)/(B·s) — doubles order
- LP → BS: replace s with B·s/(s² + Ω_0²) — also doubles order
- All handled automatically by butter/cheby1/ellip in MATLAB & SciPy
- Bilinear transform: s = (2/T)(z−1)/(z+1) — algebraic, no aliasing
- Left half-plane → inside unit circle — stability guaranteed
- Frequency warping: Ω = (2/T)·tan(ωT/2) compresses ±∞ into ±π
- Pre-warp critical frequencies so the digital cutoff lands correctly
- Works for all filter types with additional LP→HP/BP/BS transformations
- Bilinear transform + analog prototype = the standard IIR design method