Filter Response Order Calculator

Filter Response Order Calculator

Give a passband edge with an allowed droop and a stopband edge with a required attenuation, and get the order Butterworth, Chebyshev type I and Bessel each need — with the attenuation each actually reaches, the −3 dB frequency each ends up with, and the group delay at DC that makes the Bessel argument a number rather than an opinion.

Order required by Butterworth, Chebyshev and Bessel for one spec

Passband + stopband → order, three families
All three are computed and all three are drawn; this only chooses which order is the headline number. The comparison is the point of the page.
The highest frequency you want to keep. For the Chebyshev this is the edge of the equal-ripple band, which is NOT its −3 dB frequency — a routine source of error, and the page gives both.
How much the filter may cost you at the top of the passband. 0.1 dB for measurement, 0.5 to 1 dB for general work, 3 dB if you do not care. For the Chebyshev this is the peak-to-peak ripple; for the Butterworth and Bessel it is simply the attenuation at the passband edge, and all three are normalised the same way here so the comparison is fair.
The lowest frequency at which the attenuation below must be met. The ratio of this to the passband edge is the transition ratio, and it is the single number that decides the order.
60 dB is a thousand to one in voltage. For an anti-aliasing filter the target follows from the converter’s own resolution rather than from the signal, which is a separate calculation.
One second-order Sallen-Key low-pass section — the unit an active filter of this order is actually built from, drawn in its unity-gain form. A filter of order n needs ⌈n/2⌉ of these (an odd order takes one extra single-pole RC), and each section gets its own pole frequency and its own Q from a table of that family's poles. The number of sections and the Q of the worst of them are written underneath, because that Q is what decides the component tolerance, the amplifier bandwidth and the noise you will need.
4polesExample

a low-pass filter with 1.0 dB allowed at 1 kHz and 60 dB required at 8 kHz — a transition ratio of 8

Advertisement

Two closed forms and one search

εp² = 10^(Ap/10) − 1,   εs² = 10^(As/10) − 1,   R = fs/fp
nButterworth = log₁₀(εs²/εp²) ÷ (2·log₁₀R)
nChebyshev = acosh(εs/εp) ÷ acosh R
Bessel: |H|² = 1 ÷ Pn(ω²) with Pn built from the reverse Bessel polynomial; find yp with Pn(yp) = 10^(Ap/10), then the order is the smallest n with Pn(ypR²) ≥ 10^(As/10)
−3 dB:   Butterworth fp/εp1/n;   Chebyshev fp·cosh(acosh(1/εp)/n);   Bessel fp·√(y₃/yp)
τ(0):   Butterworth 1/(ωc·sin(π/2n));   Bessel √yp/ωp
A_p, A_s
the allowed droop at the passband edge and the required attenuation at the stopband edge. All three families here are normalised to give exactly A_p at f_p, which is what makes the comparison fair
R
the transition ratio. The order depends on it only through its logarithm, which is why widening the transition band is such a cheap way to remove poles
y_p
the squared normalised frequency at which the Bessel gives exactly A_p. Found by Newton iteration in log space, on a polynomial with all-positive coefficients — hence convex and increasing, so the iteration is provably monotone
Q_max
the quality factor of the highest-Q second-order section. It is the practical price of a high order: component tolerance, op-amp bandwidth and noise gain all scale with it, and so does group-delay peaking near the corner

Worked example

a low-pass filter with 1.0 dB allowed at 1 kHz and 60 dB required at 8 kHz — a transition ratio of 8
ε_p² = 10^(1.0/10) − 1 = 0.258925 and ε_s² = 10^(60/10) − 1 = 999,999, so the ratio is 3,862,112
Butterworth: log₁₀(3,862,112) ÷ (2·log₁₀8) = 3.647, so 4 poles. That filter's −3 dB frequency is 1.184 kHz — above the passband edge, because only 1.0 dB was allowed there — and it actually reaches 66.38 dB at 8 kHz, with 6.38 dB of margin from the rounding up
Chebyshev: acosh(√3,862,112) ÷ acosh(8) = 2.989, so 3 poles — one fewer. Its −3 dB frequency is 1.095 kHz, which is NOT the 1 kHz ripple-band edge and is the single commonest mistake in specifying a Chebyshev. Its highest-Q section has Q = 2.018 against the Butterworth's 1.307
Bessel: examining every order from 1 to 10 with each normalised to give 1.0 dB at the passband edge, the smallest that reaches 60 dB at 8 kHz is 8 poles — twice the Butterworth. Its −3 dB frequency is 1.719 kHz, far above the passband edge, which is the same fact as its lazy roll-off seen from the other side
And the reason anyone pays that: group delay at DC is 294.5 µs for the Bessel against 351.3 µs for the Butterworth and 401.2 µs for the Chebyshev — and, more importantly, the Bessel's delay is maximally flat with frequency while the Chebyshev's peaks near the corner. The highest-Q section is the proxy for that peaking: 1.226 for the Bessel, 1.307 Butterworth, 2.018 Chebyshev

The same specification, the three families side by side

FamilyOrderAttenuation reached at f_s−3 dB frequencyGroup delay at DCHighest section Q
Butterworth466.38 dB1.184 kHz351.3 µs1.307
Chebyshev type I360.26 dB1.095 kHz401.2 µs2.018
Bessel861.96 dB1.719 kHz294.5 µs1.226
For 1.0 dB at 1 kHz and 60 dB at 8 kHz. Note that the −3 dB frequency is a different number for each family even though all three meet the same specification, and that only the Butterworth’s −3 dB point coincides with what a data sheet would call its cutoff. Computed by this page.

One specification, three answers, and what each one costs

A filter specification is four numbers: keep everything below f_p, losing no more than A_p decibels; remove everything above f_s by at least A_s decibels. Everything else — the order, the topology, the component values — follows. The order follows almost entirely from the RATIO f_s/f_p and the difference between A_s and A_p, and it follows logarithmically, which is the single most useful fact in this subject: widening the transition band is far cheaper than adding poles.

Butterworth: flat, and nothing else. Its magnitude is as flat as an all-pole filter of that order can be at DC, which is where the name maximally flat comes from. It has no ripple, a moderate highest-section Q, and a roll-off that reaches the asymptotic 6n dB per octave only well above the corner. Its −3 dB frequency is its cutoff, which makes it the family everybody’s intuition is calibrated on.

Chebyshev: ripple traded for roll-off. By allowing the passband to ripple between 0 and A_p decibels instead of falling monotonically, the Chebyshev puts its poles closer to the jω axis and gets a much steeper transition for the same order. At high required attenuation it routinely saves two or three poles. It pays three prices. The obvious one is the ripple. The second is the Q of its highest section, which is larger than the Butterworth’s and which sets the component tolerance, the amplifier bandwidth and the output noise you need. The third is group delay, which peaks near the corner — a step through a Chebyshev overshoots and rings noticeably more than the same order of Butterworth. And the −3 dB frequency of a Chebyshev is not its ripple-band edge. That is a routine source of error: specify a 1 dB Chebyshev with a 1 kHz corner and you will get a filter whose −3 dB point is at 1.09 kHz for third order, further out for lower orders. Both numbers are given above.

Bessel: the laziest roll-off, and the flattest delay. Its poles are placed so that the GROUP DELAY, not the magnitude, is maximally flat — so a pulse comes out of it with its shape intact, which is why it is the family for data, video and any signal whose waveform matters. The price is severe and this page measures it: for a demanding stopband the Bessel needs roughly twice the order of a Butterworth. There is also a property of the family worth knowing that is rarely written down: normalised to a fixed passband droop, the Bessel’s stopband attenuation is not monotone in order. Adding poles flattens the passband and pushes the whole response outwards, so beyond a certain order the attenuation at a fixed frequency ratio gets worse rather than better. For a 1 dB droop at a transition ratio of 5 the attenuation peaks around 32 dB and then declines — so no Bessel of any order meets a 40 dB requirement at that ratio. This page reports that honestly instead of scanning upwards until it runs out of table.

What this page is not. It does not design the filter. Once the order is known, the Sallen-Key calculator gives the resistors and capacitors for each second-order section in the unity-gain or equal-component form, the multiple-feedback calculator does the same for the inverting topology, which is the better choice at higher Q, and the RC and RLC calculator covers the passive first and second-order cases. A filter of order n is built as ⌈n/2⌉ sections, and each section needs its own pole frequency and Q — which come from a table of that family’s poles, not from this page.

And it is not the anti-aliasing calculator. The anti-aliasing filter calculator answers a different question with the same arithmetic underneath: for a converter at a given sample rate and resolution it DERIVES the specification — the attenuation target from the converter’s own signal-to-noise ratio (6.02N + 1.76 dB), and the stopband edge from f_s − f_m rather than from the Nyquist frequency — and then returns the Butterworth or Chebyshev order that meets it, with the oversampling trade quantified. If your filter’s job is to stop aliases, use that page: it will work out the specification for you and this one will not. Use this page when you already have a specification and the question is which FAMILY to spend your poles on, because that page carries no Bessel, no group delay and no three-way comparison. The two overlap on the Butterworth and Chebyshev order formulas, which are the same standard closed forms in both places, and they are deliberately not re-derived differently here.

Advertisement

Frequently asked questions

Why is the Chebyshev’s −3 dB frequency not the corner I specified?

Because a Chebyshev is specified by its RIPPLE BAND, not by its −3 dB point. Inside the ripple band the response oscillates between 0 and A_p decibels; the band edge is where it leaves that band for the last time. The −3 dB point is further out, at f_p·cosh(acosh(1/ε)/n), and how much further depends on the order and the ripple. Both are given above. Specifying a Chebyshev by its −3 dB frequency and then building it with the ripple-band edge there is a common and quiet error.

Should I ever choose Bessel?

When the shape of the waveform matters more than the sharpness of the stopband. Flat group delay means a pulse is delayed but not distorted, so Bessel is the family for data recovery, for video, for the reconstruction filter after a DAC feeding anything with edges, and for any application where overshoot on a step is worse than a few decibels of unwanted signal getting through. It is the wrong choice whenever the requirement is a number of decibels at a nearby frequency.

How can adding a pole to a Bessel make the stopband worse?

Because of how it has to be normalised. Every family here is scaled so that the attenuation at the passband edge is exactly the droop you allowed. A higher-order Bessel has a flatter passband, so to lose the same amount at f_p it has to be scaled OUT — its corner moves to a higher frequency. Past a certain order that outward scaling costs more at the stopband edge than the extra pole gains. The effect is real, it is computed here rather than assumed, and it is why a Bessel cannot simply be made steeper by adding sections.

Is the highest section’s Q really worth worrying about?

Yes, and it is usually what limits a high-order filter in practice. A section’s sensitivity to component tolerance scales with its Q, so a Q of 10 means the corner frequency and the Q itself move several times more than the components do. The op-amp needs a gain-bandwidth product of roughly 100·Q·f₀ for the section to behave, and the section’s noise gain rises with Q too. If the highest Q is above about 10, the multiple-feedback topology is a better choice than Sallen-Key.

What about elliptic (Cauer) filters?

They beat all three families here for a given order, by putting zeros in the stopband as well as poles — an elliptic filter reaches a given stopband attenuation in fewer poles than a Chebyshev. The costs are ripple in BOTH bands, a stopband that comes back up between the zeros rather than falling monotonically, and much worse group delay. They are not covered here because they need two ripple specifications rather than one, and because they cannot be built from all-pole second-order sections.

My order came out at eleven. What do I do?

Change the specification rather than the filter. Widening the transition band is the cheapest lever: the order depends on the logarithm of the ratio, so a factor of two on the transition ratio typically removes two or three poles. Allowing more passband ripple helps a Chebyshev. For a converter, oversampling widens the transition band for free and lets a digital filter finish the job. Building an eleventh-order analogue filter is almost always the worst of the available options.

Related calculators

References

  1. A. I. Zverev, Handbook of Filter Synthesis, Wiley 1967 (reissued 2005). The standard tabulation of Butterworth, Chebyshev, Bessel and elliptic responses, with pole locations, group delay and element values. The reference against which the Bessel −3 dB frequencies computed here were checked: 1.36165 at second order, 1.75567 at third, 2.11392 at fourth, 2.42741 at fifth, matching to six figures.
  2. A. B. Williams and F. J. Taylor, Electronic Filter Design Handbook, 4th edition, McGraw-Hill 2006, chapters 2 and 3. The order formulas used here, the distinction between a Chebyshev’s ripple-band edge and its −3 dB frequency, and the section-by-section Q tables needed to build a filter once its order is known.
  3. L. Storch, “Synthesis of constant-time-delay ladder networks using Bessel polynomials”, Proceedings of the IRE, vol. 42, no. 11, November 1954, pp. 1666–1675. The origin of the Bessel filter as it is used in practice, and of the reverse Bessel polynomial coefficients a_k = (2n−k)! ÷ (2^(n−k)·k!·(n−k)!) that this page builds its magnitude response from. Those coefficients were checked here by reproducing scipy.signal.bessel’s own magnitude response to better than 1e-9 dB at every order from 1 to 10.
  4. W. Cauer’s elliptic-function filters and the general approximation theory behind all of these families are set out in H. J. Orchard and A. N. Willson’s later treatments; cited only to mark what this page deliberately leaves out.