Cascading filters

Sometimes we’d like to cascade biquads to get a higher filter order. This calculator gives the Q values for each filter to achieve Butterworth response for lowpass and highpass filters.

Order:
Q values:

You can calculate coefficients for all biquad (and one-pole) filters with the biquad calculator.

Motivation for cascading filters

Sometimes we’d like a steeper cutoff than a biquad—a second order filter—gives us. We could design a higher order filter directly, but the direct forms suffer from numerical problems due to limited computational precision. So, we typically combine one- and two-pole (biquad) filters to get the order we need. The lower order filters are less sensitive to precision errors. And we maintain the same number of math operations and delay elements as the equivalent higher order filter, so think of cascading as simply rearranging the math.

Adjusting the corner

The main problem with cascading is that if you take two Buterworth filters in cascade, the result is no longer Butterworth. Consider a Butterworth—maximally flat passband—lowpass filter. At the defined corner frequency, the magnitude response is -3 dB. If you cascade two of these filter, the response is now -6 dB. We can’t simply move the frequency up to compensate, since the slope into the corner is also not as sharp. Increasing the Q of both filters to sharpen the corner would degrade the passband’s flatness. We need a combination of Q values to get the correct Butterworth response.

How to calculate Q values

The problem of figuring out what the Q should be for each stage of a biquad cascade becomes very simple if we look at the pole positions of the Butterworth filter we want to achieve in the s-plane. In the s-plane, the poles of a Butterworth filter are distributed evenly, at a constant radius from the origin and with a constant angular spacing. Since the radius corresponds to frequency, and the pole angle corresponds to Q, we know that all of the component filters should be set to the same frequency, and their Q is simple to calculate from the pole angles. For a given pole angle, θ, Q is 1 / (2cos(θ)).

Calculating pole positions is easy: For a filter of order n, poles are spaced by an angle of π/n. For an odd order, we’ll have a one-pole filter on the real (horizontal) axis, and the remaining pole pairs spaced at the calculated angle. For even orders, the poles will be mirrored about the real axis, so the first pole pairs will start at plus and minus half the calculated angle. The biquad poles are conjugate pairs, corresponding to a single biquad, so we need only pay attention to the positive half for Q values.

Examples

For a 2-pole filter, a single biquad, the poles are π/2 radians apart, mirrored on both sides of the horizontal axis. So, our single Q value is based on the angle π/4; 1/(2cos(π/4)) equals a Q value of 0.7071.

For a 3-pole filter, the pole spacing angle is π/3 radians. We start with a one-pole filter on the real (σ) axis, so the biquad’s pole angle is π/3; 1/(2cos(π/3)) equals a Q of 1.0.

For a 4-pole filter, we have two biquads, with poles spaced π/4 radians apart, mirrored about the real axis. That means the first biquad’s pole angle is π/8, and the second is 3π/8, yielding Q values of 0.541196 and 1.306563.

s-plane-filters

This entry was posted in Biquads, Filters, IIR Filters, Widgets. Bookmark the permalink.

9 Responses to Cascading filters

  1. Howard says:

    Every time you post, I find that I learn something useful, or find that I have been thinking about something wrongly. That is the case here. Thank you Nigel!

  2. Am I understanding this?

    Let say you have a 2 pole LPF at 200Hz and a 2 pole HPF at 20Hz, basically your making a 20-200Hz bandpass 2 pole….

    You calculate the co-efficients with Q=0.54119610 for the first filter and the output of that filter goes into 2nd filter with co-efficients with Q=1.3065630?

    RichardS

    • Nigel Redmon says:

      No, this cascading is to make a single filter from multiple one- and two-pole filters. If you want to make a four-pole Butterworth lowpass with a corner of 200 Hz, you’d use two biquads set to a frequency of 200 Hz, and set the Q of each to the two values the calculator gives. Otherwise, the corner gets rounder and rounder as you cascade more biquads at the same frequency.

      • John Liver says:

        Coming back to your comment I am curious to know what is the best way to make a 4th order butterworth bandpass (e.g. 0.5-4.5 Hz). I suppose you can use your calculator with settings fc=1.5 and Q=0.375, but this will end up in 2nd order. How can you cascade a bandpass to come up with a 4th order? Reapply or alter somehow the Q factor?
        Otherwise is it equal to use two-cascaded low-pass at 4.5Hz and two cascaded high-pass at 0.5 Hz?
        Thanks a lot in advance for your time and the excellent calculator you provide.

        • Nigel Redmon says:

          Bandpass depends on who it is defined, so I don’t have a quick answer for that. But yes, you can cascade lowpass and highpass. However, note that you only need one 2nd order lowpass and one 2nd order highpass to give you a 4th order bandpass equivalent.

  3. Michael Wilson says:

    Would this work with simply cascading two of Andy Cytomics SVF filters to create a 4 pole lowpass? With the Q values given by your site?

  4. Andreas says:

    This is a really great blog, thank you for all the information. I wonder if this works with other filters than low-/highpass e.g. RBJ shelving or peaking filters.

    • Nigel Redmon says:

      This really only makes sense for lowpass and highpass—filters that space their poles evenly at a constant radius in the s-plane. The definition of Butterworth, maximally flat, doesn’t work for a peaking filter, for instance. It makes sense for a higher-order shelf, but I’d have to think about what that means, since you have two corners…

Leave a Reply

Your email address will not be published. Required fields are marked *