IIR Filter Designer
Design digital IIR filters as a cascade of second-order sections (biquads): choose type, family, order and cutoff, then read the frequency response, poles/zeros and the CMSIS-DSP-ready coefficients. Demonstrative tool.
IIR filter designer tool
1 · Specification
v0.2: lowpass/highpass, 5 families (Butterworth, Chebyshev I/II, Elliptic, Bessel), even orders 2–8. Coefficients validated against scipy.signal. Bandpass/bandstop coming.
Response
Biquad coefficients (SOS)
| Stage | b₀ | b₁ | b₂ | a₁ | a₂ |
|---|
CMSIS-DSP export
How it works
What is a biquad cascade (SOS)?
An order-N IIR filter is built as a cascade of second-order sections (biquads), numerically more robust than a single high-order section. Each biquad has transfer function Hₖ(z) = (b₀ + b₁z⁻¹ + b₂z⁻²)/(1 + a₁z⁻¹ + a₂z⁻²), and the overall response is the product H(z) = ∏ Hₖ(z) of the N/2 sections.
An order-N IIR filter is built as a cascade of second-order sections (biquads), numerically more robust than a single high-order section. Each biquad has transfer function:
From continuous to discrete: bilinear transform
The analog prototype (Butterworth, Chebyshev, elliptic or Bessel) is mapped to the z-plane with the bilinear transform, with cutoff frequency pre-warping:
Stability is read from the poles: the analog left half-plane maps to the inside of the unit circle. A filter is stable if all poles have magnitude < 1.
What are the five approximations?
Each family is a trade-off between transition steepness, ripple and phase linearity. Butterworth: maximally flat magnitude, no ripple. Chebyshev I: passband ripple, steeper transition. Chebyshev II: flat passband, stopband ripple. Elliptic: the steepest, ripple in both bands. Bessel: maximally linear phase. The elliptic is the general form, the others its special cases.
The elliptic is the general form: the other three are its special cases (stopband ripple→0 gives Chebyshev I, passband ripple→0 gives Chebyshev II, both→0 gives Butterworth).
- Butterworth — maximally flat passband, no ripple, 20·N dB/decade roll-off. When you want a clean passband and no tight order constraint.
- Chebyshev I — passband ripple, monotonic stopband. Steeper transition than Butterworth for the same order.
- Chebyshev II — flat passband, stopband ripple. Useful when you want a clean passband but accept ripple in the stopband.
- Elliptic / Cauer — ripple in both bands, the steepest transition for a given order. More non-linear phase and more ringing. Typical in aggressive anti-aliasing filters where only the magnitude matters.
- Bessel / Thomson — maximally linear phase (constant group delay), very gentle roll-off. When time-domain fidelity matters (no overshoot). Linearity is an analog property: the bilinear transform distorts it somewhat in the digital domain.
where Tₙ is the Chebyshev polynomial and Rₙ the elliptic rational function (built on Jacobi elliptic functions), with ξ the selectivity factor. Selection guide and use cases in the tool wiki.
How are the coefficients exported for CMSIS-DSP?
Coefficients are exported in the arm_biquad_cascade_df2T_f32 format: five values per stage as {b₀, b₁, b₂, a₁, a₂}, with a₁ and a₂ negated relative to the transfer function, since CMSIS implements y[n] = b₀x[n] + … − a₁y[n−1] − a₂y[n−2]. The coefficients are validated against scipy.signal.
Coefficients validated against scipy.signal.