Home > On-Demand Archives > Talks >
The DSP Biquadratic Recursive Filter: A Fox in the Hen House
fred harris - Watch Now - DSP Online Conference 2021 - Duration: 01:34:24
When we studied active analog filters we were taught that the biquadratic second order filter was the work horse of active filter design. What made it so was that fact we could form second order polynomials in both denominator and numerator with real coefficients. We also learned that when we performed sensitivity analysis reflecting root shifts with component value variation due to tolerance spreads that lower order polynomials had reduced sensitivity levels. We learned active filters should be implemented with multiple second order filters and possibly one first order filter. Control folks also learned this lesson. That was good perspective for a designer to have.
When we started to implement high order recursive filters in DSP land we followed the standard understanding that the sampled data biquadratic filter with decoupled second order denominator and second order numerators offered us the same capabilities, complex roots with real coefficients and low sensitivity to root shifts due to coefficient quantization. We were so pleased that the carryover from active analog filters to sampled data filters we failed to notice that it was not true! We let the Fox in the Hen house without realizing what we did.
The fox comes out to play when we try to form IIR low-pass filters with a large ratio of sample rate to bandwidth. What we learn is that it just doesn’t work! We need an alternate architecture or we should stop designing recursive filters with very small bandwidths relative to sample rate. One I see all the time is a 30 Hz wide low-pass or high-pass filter running at 48 kHz sample rate. Have you run into that? Did it take long for the hurt to go away when you found out your design didn’t work? We will discuss how to fix the problem and make the fox go away.
This guide was created with the help of AI, based on the presentation's transcript. Its goal is to give you useful context and background so you can get the most out of the session.
What this presentation is about and why it matters
This talk examines a practical and surprising failure mode of the common DSP building block: the biquadratic (second‑order) recursive filter. Fred Harris shows that simply carrying the analog design habit of stacking biquads into a high‑order IIR can go wrong when the filter bandwidth is tiny compared to the sample rate. In finite‑precision arithmetic (fixed point or modest floating point) internal signal growth, coefficient rounding and closely clustered poles cause large root movement, instability, and unwanted oscillation.
Why this matters: designers often need very narrow low‑pass or band‑stop filters (for example, 30 Hz bandwidth at 48 kHz sample rate) in audio, comms, instrumentation and FPGA/ASIC implementations. The talk explains where intuition from analog filters fails in sampled systems and gives practical alternatives (spectral transforms, multirate up/down conversion, cascade/partial‑fraction realizations) so you can build stable, accurate narrow filters without exponentially wider arithmetic.
Who will benefit the most from this presentation
- DSP engineers implementing IIR filters in fixed‑point hardware (FPGAs, DSP chips, ASICs).
- System designers who must build narrowband filters at high sampling rates (audio, communications, radar, instrumentation).
- Students and researchers learning practical numerical issues in z‑domain filter design.
- People porting MATLAB/Python prototypes to embedded implementations and worried about coefficient quantization and stability.
What you need to know
To get the most from the talk, be comfortable with these core ideas:
- Z‑transform and poles/zeros. Filters are rational functions in z; poles determine resonance and stability. Stability in discrete time means all poles lie inside the unit circle in the z‑plane.
- Biquad (second‑order section). A common canonical block. Factored form of a pair of conjugate roots is useful: if the roots are p1,p2 then
\( (z-p_1)(z-p_2)=z^2-(p_1+p_2)z+p_1p_2 \)
Understanding how coefficients relate to roots is central to the sensitivity discussion. - Coefficient quantization & finite word length. Rounding/truncation changes coefficients; expanded polynomials magnify these errors (sums of products, higher powers). Small coefficient perturbations can produce large root displacements when poles cluster.
- Sensitivity of roots. If several poles lie close together, the product of inter‑pole distances in the sensitivity denominator becomes tiny, so small coefficient errors produce very large root shifts. This is the root of the instability problem.
- Internal gain / processing gain. Narrowing a filter’s bandwidth typically increases internal signal levels (integration/recirculation). Finite registers overflow or force quantization that changes effective coefficient values.
- Alternate realizations and tricks. The talk covers (a) cascade of first‑order or carefully paired biquads, (b) partial‑fraction / modal sum realizations (sum of first‑order modes), (c) spectral transforms such as replacing z by z^k or z^2 to move root clusters to numerically friendlier locations, and (d) heterodyning/multirate methods to process at a different center frequency or lower effective rate.
- Partial‑fraction form (modal form). Building H(z) as a sum of first‑order contributions reduces coupling and greatly reduces sensitivity. A compact modal form is, for example:
\( H(z)=\sum_k \dfrac{R_k}{1-p_k z^{-1}} \)
Glossary
- Biquadratic (biquad) — A second‑order IIR section with two poles (and optionally two zeros) implemented as a canonical block.
- IIR (Infinite Impulse Response) — Recursive filters whose output depends on past outputs as well as inputs.
- FIR (Finite Impulse Response) — Nonrecursive filters whose output is a finite weighted sum of current and past inputs.
- Pole — A root of the denominator polynomial; locations near the unit circle create resonant peaks.
- Zero — A root of the numerator polynomial; zeros can suppress unwanted spectral components.
- Unit circle — The stability boundary in the z‑plane; poles must lie strictly inside for BIBO stability.
- Coefficient quantization — Rounding/truncation of filter coefficients when stored in finite‑precision words.
- Root sensitivity — How much roots move in response to small coefficient changes; increases dramatically when roots cluster.
- Spectral transformation — Algebraic substitutions (e.g. z->z^k or z->-z^2) that move pole/zero clusters to numerically safer regions.
- Heterodyne / multirate — Shifting a signal in frequency and/or changing sampling rate to process at a more convenient center frequency or bandwidth.
Final words
Fred Harris’s talk is an excellent blend of intuition, geometry (poles as mountains), and practical countermeasures. He turns what can be an ugly implementation surprise into a set of approachable fixes — cascade design, modal sums, and clever spectral/multirate transforms — and explains why they work. If you implement narrowband IIR filters in finite precision (or design systems that must), this presentation will give you useful mental models and concrete techniques to avoid instability without blindly increasing word length.
Enjoy the talk — you’ll come away with clearer intuition about where the biquad works, where it fails, and what to do when the fox shows up in your filter design.
Some time in uni about 20 years ago I scored a used Spectral Dynamics SD375 (http://www.itsonlyaudio.com/ultranalog/sd375/).
It came with its own weight in documentation, amongst which several of your papers. It hooked me on signal processing and may even have been the reason I decided to finish my degree and thus, the foundation of my career.
Your presentation style is as elegant as the papers you write. Many, many thanks for the work you do to teach.
Wonderful presentation! Where can I view the non-recursive presentation? Thanks.
Coming up later today actually! https://www.dsponlineconference.com/meeting/Live_Discussion_Green_FIR_Filters_with_Large_Ratio_of_Sample_Rate_to_Bandwidth
As usual you are absolutely amazing in putting things into perspective.
Hi fred,
Sorry I couldn't attend your talk live but family called.
I just wanted to add a quick note to say thanks so much for the great presentation.
I came across the coefficient quantization problem many years ago. We solved the problem by changing the filter spec to still meet the application requirements but if I'd known your trick (slides 72 to 74) it would have saved a lot of time. This should be required study for all DSP students.
Its always a pleasure, my friend.
John
i know,,, as they say, time goes by very quickly when you are having a good time....
thanks for the feedback!
Great talk. The time flew by. It didn't feel like it was over an hour.

remco,
I helped design the spectrum analyzer for spectral dynamics as well as much of the signal processing they did in the two channel version that permitted all kinds of neat measurements... One you must recall is the coherency... (how much of what we see in the cross correlation came from different time intervals) i wrote a DSP application note for spectral DSP-005 (as I recall)... I'll send you a refresher copy!