Skip to content

Analog prototype filters

Butterworth, Chebyshev, elliptic and Bessel filters, where each puts its poles, what each trades, and the order each needs for a spec.

Before this18.1 · 5 more
Chapter 20 · Lesson 1 of 6

First, the picture

Analog engineers settled long ago on a few ready-made low-pass filters. The first, Butterworth, puts its poles on a half-circle. Below, its order grows from 1 to 8: watch the poles spread round the circle while the gain’s edge gets steeper.

Poles on a half-circle, the flattest gain

Butterworth filters of order N with cutoff ω_c = 1 rad/s.

N = 1: one pole at −1, the RC filter of 8.4. At 2 rad/s, twice the cutoff, the gain is −6.99 dB.

order N
1
gain at 2ω_c
−6.99 dB
0.00 / 14.00 s
Describe this picture

Two panels for Butterworth filters of order NN with cutoff ωc=1\omega_c=1 rad/s. The plane has the decay rate σ\sigma across, from −1.3 to 0.3, and the spin rate ω\omega in rad/s up, from −1.3 to 1.3, on one scale both ways. A dashed half-circle of radius 1 is labelled “radius ω_c”, and the poles are crosses. The gain panel plots the gain from −60 to 5 dB against ω\omega from 0.1 to 10 rad/s on a log scale, as a solid curve. After the first change of order, the previous order’s curve stays as a faint dashed line. A dotted level marks −3 dB, and a dotted vertical marks 2 rad/s. The readouts are the order NN and the gain at 2ωc2\omega_c.

The clip lasts 14 s, with a blank caption while the poles move. At N=1N=1 there is one pole at −1, the RC filter of 8.4, and the gain at 2 rad/s, twice the cutoff, is −6.99 dB. Then the poles slide round the circle, and new poles grow from the old ones. At 4.5 s, N=2N=2: two poles at ±135°, −12.30 dB at twice the cutoff. At 7.75 s, N=4N=4: four poles 45° apart, −24.10 dB, and a flatter pass band, −0.017 dB at half the cutoff. At the end, N=8N=8: eight poles, −48.16 dB; every curve crosses −3 dB at ωc\omega_c, and each pole adds 6 dB per octave, 20 dB per decade. After the clip a slider named “Order N” sets the order from 1 to 10, with a value like “8: −48.16 dB at twice the cutoff”. The arrow keys move it by 1, and Home and End jump to 1 and 10. At 1, 2, 4 and 8 the clip’s captions return; at the other orders the caption reads like “N = 5: −30.11 dB at 2ω_c.” The order is kept in the link, as circle.N.

Poles on a half-circle, the flattest gain

Chapter 19 built FIR filters from taps. This chapter builds IIR filters, and the usual way is surprising: borrow an analog filter and translate it into samples. IIR design by the bilinear transform (20.2) does the translating. This page is about what gets borrowed.

Analog engineers settled on a short list of designs long ago. I call each one a prototype: a ready-made analog low-pass, the best at one particular thing. There are five worth knowing, and by the end of the page you will know what each one buys and what it pays.

One note on letters first, because analog and digital frequency meet in this chapter. On this site, analog frequency is ω\omega (rad/s), digital frequency is Ω\Omega (rad/sample); Oppenheim and Schafer use the opposite letters. Everything on this page is analog, so it is all ω\omega.

Start with the RC stage of Frequency response and Bode plots (8.4). With its corner at ωc\omega_c, its gain squared is 1/(1+(ω/ωc)2)1/\big(1+(\omega/\omega_c)^2\big). It is flat, then it falls 20 dB per decade.

That is too gentle for most jobs, so let’s ask for the same shape, only steeper. The Butterworth filter of order NN does exactly that:

∣H(jω)∣2=11+(ω/ωc)2N.\lvert H(j\omega)\rvert^2=\frac{1}{1+(\omega/\omega_c)^{2N}}.

Here NN is a whole number, the order of the prototype, and ωc\omega_c is its cutoff. Three things follow from the formula.

At ω=ωc\omega=\omega_c the bottom is 2 for every NN, so the gain is 1/21/\sqrt2, which is −3.01 dB. The cutoff ωc\omega_c is the −3 dB point, whatever the order.

Far above the cutoff, the 1 in the bottom no longer matters, and the gain is about (ωc/ω)N(\omega_c/\omega)^N. Every tenfold step in ω\omega then divides the gain by 10N10^N, which is 20N20N dB per decade. That is the straight-line rule of Anti-aliasing and practical converters (10.4), and far above the cutoff it is now exact.

Below the cutoff, (ω/ωc)2N(\omega/\omega_c)^{2N} is tiny, and the gain hardly moves from 1. For N=4N=4 at half the cutoff, 0.58=0.00390.5^8=0.0039, and the gain is only −0.017 dB. Written as a series in ω\omega, the gain squared is 1−(ω/ωc)2N+…1-(\omega/\omega_c)^{2N}+\dots, so its first 2N−12N-1 derivatives at ω=0\omega=0 are zero. No filter of order NN with poles only, an all-pole filter, does better, so Butterworth is called maximally flat.

Two familiar systems are Butterworth filters already. With N=1N=1 it is the RC stage itself. With N=2N=2 it is 8.4’s second-order system with ζ=0.707\zeta=0.707: then (1−r2)2+(2ζr)2=1+r4(1-r^2)^2+(2\zeta r)^2=1+r^4, and the resonant peak is gone.

Why not put four RC stages in a row? They also fall 80 dB per decade far out. But at the corner they are 12.04 dB down instead of 3.01, and at half the corner they have already lost 3.88 dB, against Butterworth’s 0.017.

Where are the poles? Put s/js/j in place of ω\omega in the recipe. Its bottom becomes 1+(s/(jωc))2N1+\big(s/(j\omega_c)\big)^{2N}, which is zero when (s/(jωc))2N=−1\big(s/(j\omega_c)\big)^{2N}=-1. That happens at 2N2N points evenly spaced round a circle of radius ωc\omega_c, and none of them lies on the spin-rate axis.

The recipe is the gain squared, HH times its mirror image, so those 2N2N points are shared between the two. Poles, zeros and the s-plane (9.3) showed that a causal filter is stable only with every pole on the left. So the filter takes the NN points on the left half of the circle:

pk=ωc ejπ(2k+N+1)/(2N),k=0,…,N−1.\begin{aligned} p_k&=\omega_c\,e^{j\pi(2k+N+1)/(2N)},\\ k&=0,\dots,N-1. \end{aligned}

Neighbouring poles are 180°/N180°/N apart. For N=2N=2 they sit at ±135°, and for N=4N=4 at ±112.5° and ±157.5°. An odd order always has one pole on the real axis, at −ωc-\omega_c.

The picture at the top of the page draws these poles and their gain for ωc=1\omega_c=1 rad/s, as the order grows from 1 to 8. Notice that every curve crosses −3 dB at the same point, 1 rad/s. Each extra pole adds about 6 dB at twice the cutoff, because one octave of (ωc/ω)(\omega_c/\omega) is 20log⁡102=6.0220\log_{10}2=6.02 dB. For N=8N=8 that gives 48.16 dB, almost exactly 8×6.028\times6.02.

After the clip, set the order yourself with the slider, from 1 to 10. Try 10: the gain at twice the cutoff is −60.21 dB, while at 1 rad/s it is still −3 dB.

Four ways to spend three poles

Butterworth puts all its effort into a flat pass band. The other families spend the same poles on something else. To compare them I need one more word. If a gain swings up and down between 0 and −1 dB, I say it has 1 dB of ripple.

The Chebyshev I filter lets the pass band ripple by a set amount, here 1 dB, and in return its edge is steeper. Its poles sit on an ellipse inside Butterworth’s circle. Its gain is built from a Chebyshev polynomial, which swings evenly between −1 and 1 and then grows fast; that swing is the ripple.

The Chebyshev II filter keeps the pass band flat and lets the stop band ripple instead, up to a floor, here −40 dB. It has zeros on the spin-rate axis. By 9.3’s arrows, when the test point reaches a zero, that zero’s arrow has length 0, so the gain is exactly 0 there: a notch.

The elliptic filter ripples in both bands, with zeros on the axis too. For a given order it has the steepest edge of all. The Bessel filter is chosen for something else entirely: a delay that stays as flat as possible, not a gain. I come back to it in the next instrument.

The maths behind it · Chebyshev polynomials

The Chebyshev filters are built on Chebyshev polynomials, TN(x)=cos⁡(Narccos⁡x)T_N(x)=\cos(N\arccos x). They stay between ±1 on [−1,1][-1,1] and grow faster than any other polynomial of their degree outside it. They are also the extremal polynomials behind the equiripple design of Optimal FIR design (19.3). The elliptic filter does the same with a ratio of polynomials.

To compare the families fairly I need them to share an order and a cutoff. That is less simple than it sounds.

SciPy’s butter puts its cutoff at −3 dB, cheby1 and ellip at the pass band’s edge, and cheby2 at the stop band’s edge. So the instrument slides each design along the frequency axis until it is −3 dB at 1 rad/s. Dividing every pole and zero by the same number does that without changing the curve’s shape.

I use order 3. An odd order makes every family pass 0 Hz at gain exactly 1, so the four curves start together. Below, the four families take turns.

Four ways to spend three poles

Order 3, every filter scaled to −3 dB at 1 rad/s. Ripple: 1 dB in a rippling pass band, a −40 dB floor in a rippling stop band.

Butterworth: flat, then −18.13 dB at 2 rad/s and still falling, −60.00 dB at 10.

family
Butterworth
gain at 2 rad/s
−18.13 dB
gain at 10 rad/s
−60.00 dB
Family
0.00 / 16.00 s
Describe this picture

Two stacked panels for order 3, every filter scaled to −3 dB at 1 rad/s, with 1 dB of ripple in a rippling pass band and a −40 dB floor in a rippling stop band. The first, “pass band, close up”, plots the gain from −3.5 to 0.5 dB against ω\omega from 0.1 to 1.2 rad/s on a log scale. The second plots the gain from −60 to 5 dB against ω\omega from 0.1 to 10 rad/s, also on a log scale. The family on show is a solid curve in both panels. From the first cross-fade on, Butterworth stays as a faint dashed curve labelled “Butterworth”, and a dotted vertical marks 2 rad/s. The readouts are the family, on its own row, then the gain at 2 rad/s and at 10 rad/s.

The clip lasts 16 s and cross-fades from family to family, with a blank caption during each cross-fade. Butterworth is flat, then −18.13 dB at 2 rad/s and still falling, −60.00 dB at 10. At 5.3 s, Chebyshev I: the pass band ripples between 0 and −1 dB, and the edge is steeper, −25.13 dB at 2 rad/s and −68.48 dB at 10. At 9.3 s, Chebyshev II: a flat pass band, and a stop band that stops falling at −40 dB, with a zero on the axis at 3.48 rad/s; −20.84 dB at 2 rad/s and −42.01 dB at 10. At the end, elliptic: ripple in both bands and the steepest edge, −32.60 dB at 2 rad/s, with a zero at 2.54 rad/s, and −44.43 dB at 10. After the clip the four families are buttons in a group named “Family”. Each shows that family’s caption from the clip, and the choice is kept in the link, as gallery.f.

Notice that the families with zeros stop falling at the −40 dB floor. Out at 10 rad/s, Butterworth is at −60.00 dB and Chebyshev I at −68.48 dB, still falling. Chebyshev II and elliptic stay just under the floor, at −42.01 and −44.43 dB. The floor is the price of their zeros.

After the clip, press each family’s button to compare them yourself.

Look at the elliptic filter in the pass-band panel. It ripples between 0 and −1 dB like Chebyshev I, yet at 2 rad/s it is 7.47 dB further down. Its zeros buy that: the one at 2.54 rad/s pulls the gain down hard just past the edge. From 2.23 rad/s on, the elliptic gain never rises above −40 dB.

A steep edge rings

The gain is not the whole story. In 8.4’s section “Two delays” you met the group delay, τg=−d∠H/dω\tau_g=-d\angle H/d\omega. It is the time an envelope takes to come through. Linear-phase systems (17.3) showed that a delay that changes with frequency reshapes a pulse. So let’s look at the delay of these filters, and at their step response: the output when the input jumps from 0 to 1 and stays there.

Why should a steep edge cost anything here? A steep edge needs poles close to the spin-rate axis, near the edge. By 9.3’s arrows, the angle of a short arrow swings quickly as the test point passes its pole. So the phase bends sharply near the edge, and the group delay climbs to a peak there.

In time the same poles ring. A pole pair close to the axis has a small decay rate σ\sigma, so its envelope eσte^{\sigma t} dies slowly, as in 9.3. In the words of First- and second-order systems (6.3), its damping ζ\zeta is small. A car’s suspension tuned firm for cornering makes the same trade: it bounces for a while after a kerb.

For the order-3 filters scaled to −3 dB at 1 rad/s, the complex pole pair of the elliptic filter has decay rate −0.21 and ζ=0.23\zeta=0.23. Butterworth’s pair has −0.50 and ζ=0.50\zeta=0.50. The Bessel filter puts its pair much further left, at −1.05 with ζ=0.72\zeta=0.72, and gives up steepness for it.

The step response settles when it enters a band of ±2 % around 1 for good, like the 2 % band of 9.3. The overshoot is how far above 1 it goes first, as a percentage of the final value 1. Below, Bessel, Butterworth and elliptic take a step in turn; watch how long each one rings.

A steep edge rings

Order 3, −3 dB at 1 rad/s: Bessel, Butterworth and elliptic (1 dB, −40 dB).

Three order-3 filters, all −3 dB at 1 rad/s. First Bessel.

delay, 0 to 1 rad/s
not yet
settles (2 %) at
not yet
0.00 / 14.00 s
Describe this picture

Two stacked panels for three order-3 filters, all −3 dB at 1 rad/s: Bessel, Butterworth and elliptic (1 dB, −40 dB). The first plots the group delay from 0 to 6 s against ω\omega from 0 to 1 rad/s. The second plots the step response, the output from 0 to 1.2 against time from 0 to 20 s, with a lightly hatched band of ±2 % around 1 labelled “within 2 %”. Bessel is a dotted curve, Butterworth a dashed one and elliptic a solid one, each labelled at its end in both panels. A small open triangle on the time axis marks where each step enters the band for good. The readouts, for the family drawn last, are the range of the delay from 0 to 1 rad/s and the time at which the step settles within 2 %. There is no control.

The clip lasts 14 s. It starts with empty panels apart from the 2 % band, and each family then draws its delay curve and then its step. At 4 s, Bessel: its delay barely changes, 1.64 to 1.76 s, and its step settles within 2 % after 3.60 s, with 0.75 % overshoot. At 8.75 s, Butterworth: the delay bends up to 2.74 s near the cutoff (2.00 to 2.74 s), and the step overshoots 8.15 %, settling after 6.64 s. At the end, elliptic: the delay climbs to 5.30 s at the edge (2.06 to 5.30 s), and the step rings until 13.06 s.

Notice that the elliptic step is still moving long after the others have settled. Its overshoot, 7.57 %, is a little smaller than Butterworth’s 8.15 %, so the first swing is not the problem. The problem is how slowly the swings die: its envelope shrinks five times more slowly than Bessel’s.

The Bessel delay is 1.76 s at 0 rad/s and still 1.64 s at the cutoff. Everything in the pass band arrives together, so a pulse keeps its shape, which is 17.3’s straight phase, nearly. It pays at 2 rad/s, where it is only −12.00 dB down against Butterworth’s −18.13.

The maths behind it · the Gaussian shape

As NN grows, the Butterworth gain 1/1+x2N1/\sqrt{1+x^{2N}} becomes a smooth approximation of a step, like a logistic curve that steepens. The Bessel filter’s nearly constant delay makes its impulse response close to a Gaussian. That is the shape that keeps the spread in time and in frequency smallest together, the uncertainty pair of Properties of the Fourier transform (8.2).

How many poles a spec needs

So far I picked the order. In practice the spec picks it. You know the target from Filter specifications (18.1): a pass edge, a stop edge, how much loss the pass band may have, and how much attenuation the stop band needs. The question is the smallest NN that meets all four.

For Butterworth the gain formula answers it directly. Put the −3 dB point at the pass edge and ask for AA dB at the stop edge. Then 10log⁡10(1+(ωstop/ωpass)2N)≥A10\log_{10}\big(1+(\omega_\text{stop}/\omega_\text{pass})^{2N}\big)\ge A, which gives

N≥log⁡10(10A/10−1)2log⁡10(ωstop/ωpass).N\ge\frac{\log_{10}\big(10^{A/10}-1\big)}{2\log_{10}(\omega_\text{stop}/\omega_\text{pass})}.

For 10.4’s anti-alias filter, 3 dB at 20 kHz and 60 dB at 24.1 kHz, this is 37.0437.04, so the order is 38. That is exactly 10.4’s count from the straight-line rule.

The other families have their own formulas, built on Chebyshev polynomials and elliptic functions, and I will not derive them. SciPy’s buttord, cheb1ord, cheb2ord and ellipord return the smallest order that meets a pass-band loss and a stop-band attenuation at two edges.

The running spec of 18.1 keeps the pass band between 0.95 and 1.05. These prototypes peak at gain 1, so only the bottom matters: a loss of at most −20log⁡100.95=0.4455-20\log_{10}0.95=0.4455 dB. The stop band needs 40 dB.

Its edges, 1 and 1.5 kHz, must first be moved to analog frequencies, by a step called pre-warping that 20.2 will explain. They become 6627.4 and 10 690.9 rad/s. Then the four functions give these orders.

FamilyRunning spec10.4’s anti-alias filter
Butterworth1238
Chebyshev I713
Chebyshev II713
Elliptic57

The anti-alias row is the striking one. Order 38 was why 10.4 sampled faster. An elliptic filter meets the same spec with 7 poles, if you can live with its ripple and its ringing.

Worked example

1. Butterworth, N=4N=4, ωc=1\omega_c=1 rad/s. The poles are ejπ(2k+5)/8e^{j\pi(2k+5)/8} for k=0k=0 to 3, at ±112.5° and ±157.5°. In numbers they are −0.3827±0.9239j-0.3827\pm0.9239j and −0.9239±0.3827j-0.9239\pm0.3827j.

The gain is −10log⁡10(1+ω8)-10\log_{10}(1+\omega^8) dB. At 0.5 rad/s that is −0.0169 dB, at 1 rad/s −3.0103 dB, at 2 rad/s −24.10 dB, and at 10 rad/s −80.00 dB.

2. The gallery at 2 rad/s. At order 3, each family scaled to −3 dB at 1 rad/s, the gains at twice the cutoff are these.

FamilyGain at 2 rad/s
Bessel−12.00 dB
Butterworth−18.13 dB
Chebyshev II−20.84 dB
Chebyshev I−25.13 dB
Elliptic−32.60 dB

The rows run from the gentlest edge to the steepest. Measure how much each group delay changes from 0 to 1 rad/s, and it grows in the same order.

3. Orders for a spec. For the running spec the pre-warped edges are 6627.4 and 10 690.9 rad/s, a ratio of 1.6131. With 0.4455 dB of loss and 40 dB of attenuation, the orders are 12, 7, 7 and 5.

For 10.4’s anti-alias filter they are 38, 13, 13 and 7. Ask for only 0.1 dB of pass-band loss instead of 3 dB, and they grow to 48, 16, 16 and 8.

Where you’ll meet this

Butterworth filters are the default in anti-alias filters and general smoothing, wherever a flat pass band matters more than a sharp edge. Chebyshev and elliptic filters go where the edge must be steep and some ripple is fine: channel filters in radios and the decimation filters inside audio converters. Bessel filters go where a waveform must keep its shape, as in oscilloscope inputs and pulse measurements.

The prototypes are also the starting point of most digital IIR design. IIR design by the bilinear transform (20.2) and Impulse invariance (20.3) turn them into digital filters. Frequency transformations (20.4) turns the low-pass into high-pass, band-pass and band-stop shapes. Choosing FIR or IIR (20.6) sets them against the FIR designs of chapter 19 on one spec.

Reference card

FamilyGainPoles and zerosTrade
Butterworth1/1+(ω/ωc)2N1/\sqrt{1+(\omega/\omega_c)^{2N}}poles on a half-circle, radius ωc\omega_cflattest pass band; slowest edge
Chebyshev Iripples in the pass bandpoles on an ellipsesteeper; pass-band ripple; bent delay
Chebyshev IIripples in the stop bandpoles and zeros on the spin-rate axisflat pass band; stop band floor
Ellipticripples in bothpoles and zeros on the spin-rate axissteepest for its order; most bent delay
Besselgentlepoles further leftnearly constant delay; clean step
Butterworth polespk=ωcejπ(2k+N+1)/(2N)p_k=\omega_ce^{j\pi(2k+N+1)/(2N)}, k=0,…,N−1k=0,\dots,N-1180°/N180°/N apart−3 dB at ωc\omega_c for every NN
Fall far above ωc\omega_c20N20N dB per decade (all-pole families)6 dB per octave per pole
Order for a specbuttord, cheb1ord, cheb2ord, ellipordrunning spec: 12, 7, 7, 5

End of lesson 20.1

Where to go next.

Phasorium
LibraryEvery lesson, in order

Parts

About Phasorium
Look