Tool 02

Active Filter Design

Low-pass, high-pass, band-pass, band-stop and narrow band-pass. Enter a passband/stopband spec, pick a response and a topology, and get the order, the transfer function, real component values and a simulated Bode plot.

01

Specification

k = 0.2857

For a low-pass, fp is the passband edge below which the filter passes, and fs the stopband edge above it (fs > fp).

Butterworth: the flattest passband.

00

Start here

about 5 minutes, interactive
New to filters: what this page is about, with a little maths and four figures to move

What a filter does

Any signal is a sum of sine waves at different frequencies. A recorded voice holds low notes and high notes at once. A sensor wire carries a slow reading plus fast noise picked up along the way. A filter is a circuit whose gain, output amplitude divided by input amplitude, depends on frequency: near 1 for the frequencies that should pass, near 0 for the rest.

This page is set to low-pass: the low frequencies pass and the high ones are turned down, which is what removes hiss from a recording or smooths a jittery measurement. Active means the circuit is built around an op-amp, a small amplifier chip, with resistors and capacitors around it instead of coils. The figure sends two test tones through the circuit designed on this page, with the rounded part values of panel 04.

2.50 kHz: 0.0 dB, comes out at 100 %70.0 kHz: -67.7 dB, comes out at 0.04 %

Grey: the two tones going in. Blue: what comes out. Tone 1 sits in the passband and comes through untouched; tone 2 sits in the stopband and is gone from the output.

Decibels and the two limits

Gain ratios run from 1 down to 0.001 and lower, which is awkward on one graph. The page counts them in decibels instead: 20 times the logarithm of the ratio. A ratio of 1 is 0 dB, 0.5 is about 6 dB down, 0.1 is 20 dB down, 0.01 is 40 dB down. Every factor of ten is another 20 dB, so a plot of dB against a log frequency axis turns the curves into near straight lines. That plot is a Bode plot, and panel 05 draws one.

The specification in panel 01 is written in this unit. The passband, the frequencies that must get through, lies below the edge fp. The stopband, the frequencies that must be turned down, lies above the edge fs. Amax, here 3 dB, is how much the passband may sag. Amin, here 40 dB, is how far down the stopband must be. Between fp and fs the filter is free to slide. The four numbers draw two forbidden zones on the Bode plot, one under the passband and one over the stopband, and any curve that misses both is a valid design.

A decibel figure is a ratio in disguise. The loss in dB from the voltage ratio, then the page's two limits turned back into ratios:

AdB=20log⁡10VinVoutAmax=3 dB⇒VoutVin=10−3/20=0.71Amin=40 dB⇒VoutVin=10−40/20=0.01\begin{aligned} A_{\text{dB}} &= 20\log_{10}\dfrac{V_{in}}{V_{out}} \\[4pt] A_{max} = 3\ \text{dB} &\Rightarrow \dfrac{V_{out}}{V_{in}} = 10^{-3/20} = 0.71 \\[4pt] A_{min} = 40\ \text{dB} &\Rightarrow \dfrac{V_{out}}{V_{in}} = 10^{-40/20} = 0.01 \end{aligned}

One resistor, one capacitor

The simplest low-pass is a resistor in series and a capacitor to ground, output taken across the capacitor. A capacitor takes time to charge through a resistor. A slow sine wave leaves it plenty of time, so the capacitor voltage follows the input almost exactly: gain near 1. A fast sine wave reverses before the capacitor has charged, so only a small ripple appears: gain near 0.

The frequency where the two behaviours meet is the corner, fc, set by the product R times C alone. At fc the output is 3 dB down. Past it, every tenfold step in frequency, a decade, costs another 20 dB, and that slope is fixed. The figure draws this one section on the Bode axes with the spec's two forbidden zones. R and C move the corner. Nothing moves the slope, and with this page's spec no corner position clears both zones.

The corner sits where the capacitor's opposition to the signal equals the resistor's. One formula, then turned around to find the resistor that puts the corner at the passband edge with a 10 nF capacitor, rounded to 1.6 kilohm, the nearest value in the E24 series of standard resistors:

fc=12πRCR=12πfpC=12π⋅10000 Hz⋅10 nF=1592 Ω≈1.6 kΩ\begin{aligned} f_c &= \dfrac{1}{2\pi R C} \\[6pt] R &= \dfrac{1}{2\pi f_p C} = \dfrac{1}{2\pi \cdot 10000\ \text{Hz} \cdot 10\ \text{nF}} = 1592\ \Omega \approx 1.6\,\text{k}\Omega \end{aligned}

corner 10.0 kHz. loss at fp 3.0 dB (limit 3). loss at fs 11.2 dB (needs 40)

Shaded: the two forbidden zones, drawn from Amax, Amin, fp and fs. The passband is safe, but fs gets only 11.2 dB of the 40 dB it needs: the curve is red over the stopband. R and C only slide the corner and the slope stays 20 dB per decade, so with this spec no corner position clears both zones.

Steeper: the order

One RC section falls 20 dB per decade. Two in a row multiply their gains, so their slopes add: 40 dB per decade. Three give 60. The count of sections is the order, n, and far past the corner the slope is 20 n dB per decade. The order is the first thing the tool computes, and a rough count is easy.

Take the drop demanded, Amin, and divide it by the drop one slope gives across the gap from fp to fs. Here fs is 3.5 times fp, one slope loses 10.9 dB across that gap, and 40 dB of drop needs 3.7 slopes, so 4. Panel 02 does the same count exactly, with Amax included; with Amax at 3 dB the two agree.

The figure draws the whole family of orders against the two zones, and the smallest n that clears both is the minimum panel 02 reports.

The rough count: the drop demanded divided by the drop per slope across the gap, with the page's Amin, fp and fs:

n≥Amin20log⁡10(fs/fp)=4020log⁡10(35000/10000)=4010.9=3.7  ⇒  n=4n \ge \dfrac{A_{min}}{20\log_{10}(f_s/f_p)} = \dfrac{40}{20\log_{10}(35000/10000)} = \dfrac{40}{10.9} = 3.7 \;\Rightarrow\; n = 4

n = 4: loss at fs 43.5 dB, needs 40, clears both zones the tool's answer for this spec: n = 4 slope far out: 80 dB per decade

Butterworth, as chosen in panel 01. n = 4 is the smallest order that clears both zones, the number in panel 02. Pulling fs toward fp or raising Amin moves the answer one whole step at a time, never smoothly.

Why an op-amp, and what Q is

Stacking bare RC sections has two problems. Whatever comes after a section draws current from its capacitor and shifts the corner. And however many are stacked, the knee stays soft: the curve bends over gradually. An op-amp fixes both, and that is what active means. It drives the next section without loading the one before.

With a little of its output fed back to its input, one op-amp with two resistors and two capacitors makes a second-order stage: two slopes and one new number, Q, the sharpness of the knee. Q = 0.707 is the flattest. A higher Q puts a bump just before the corner, a lower Q a rounded sag.

Order 4 is two such stages, listed in panel 03 with the same corner f0 = 10.0 kHz and Q = 1.31 and 0.54. Neither is flat alone. Their product is flat up to fp, 3 dB down there, then falls at 80 dB per decade. That flat product is what Butterworth means. Chebyshev picks higher Q values and keeps the bumps on purpose: they are the ripple, at most Amax high, and they buy the steeper drop.

largest bump in the passband: 0.0 dB loss at fp: 3.0 dB (limit 3)

Thin: each stage alone. Thick: their product, the whole filter. With the table's values the product is flat right up to the edge, and neither stage is flat alone.

From stages to parts

f0 and Q are what a stage must produce; the resistors and capacitors are how. The corner still comes from R times C, as in the one-section formula, only now four parts share the job under a square root. The Topology menu sets how they are wired around the op-amp, and this page is set to multiple feedback.

Multiple feedback, the default, returns the output through two paths and inverts the signal, harmless in a filter; its f0 and Q depend least on the op-amp being ideal. Boctor uses one op-amp for a section with stopband zeros. The high-pass form needs gain above one; accurate resistor ratios set the depth of the notch. Sallen-Key uses the op-amp as a follower, keeps the signal the right way up and is the easiest to read and tune, but is more sensitive to part tolerances at high Q. Tow-Thomas spends three op-amps per stage so that f0 and Q are set by separate resistors.

Whatever the wiring, the exact values the formulas want are in no drawer. Panel 04 fixes the capacitors from a short standard series, solves for the resistors, rounds each to the nearest E24 value, then recomputes f0 and Q from the rounded parts and lists the shift in percent.

Stage 1's corner from its own rounded parts, with the values in panel 04, next to the 10.0 kHz it was asked for; the difference is the cost of rounding:

f0=12πR2R3C1C2=12π8.2 kΩ⋅10 kΩ⋅6.8 nF⋅470 pF=9.83 kHzf_0 = \dfrac{1}{2\pi\sqrt{R_2 R_3 C_1 C_2}} = \dfrac{1}{2\pi\sqrt{8.2\,\text{k}\Omega \cdot 10\,\text{k}\Omega \cdot 6.8\,\text{nF} \cdot 470\,\text{pF}}} = 9.83\ \text{kHz}

Reading the rest of the page

The page runs top to bottom in the order the design is done. 01 Specification holds the inputs met above: filter type, Amax, Amin, the edges, response, topology. 02 Order applies the exact count and shows k = fp/fs, the transition ratio, 0.2857 here; its slider allows a higher order than the minimum, for margin. 03 Stages lists f0 and Q for each stage. 04 Components gives the resistors and capacitors of both stages, rounded to values in stock, with the shift in f0 and Q that the rounding cost, and draws the circuit.

05 Bode plot is the report card: the curve is computed from the rounded parts, the amber lines are the four numbers of 01, and the flags under it say the same in numbers, here 43.7 dB at fs against 40 required and 3.11 dB at fp against 3 allowed. 06 Download exports the circuit as an LTspice file ready to simulate, and the same calculation as a standalone script. 07 Next steps lists what to check on the bench. Every Show the math block is optional reading.

Words used on this page

passband
the frequencies that must get through, losing at most Amax
stopband
the frequencies that must be turned down, by at least Amin
dB
a voltage ratio counted in steps, 20 per factor of ten; 3 dB is about 0.71, 40 dB is 0.01
decade
a factor of ten in frequency, one grid line to the next on the Bode plot
Bode plot
gain in dB against frequency on a log axis; panel 05 draws it from the rounded parts
corner (fc, f0)
the frequency where a section or a stage hands over from passing to blocking; 1/(2piRC) for one RC
order (n)
the number of slopes; far from the corner the curve falls 20 n dB per decade
stage
one op-amp block, second order (two slopes) or first order (one), with its own f0 and Q
Q
the sharpness of a stage's knee; 0.707 is flattest, higher bumps, lower sags
response
the recipe the Q values come from: Butterworth flattest, Chebyshev and elliptic steeper with ripple, Legendre steepest without, Bessel best for pulses
zero (fz)
a frequency a stage blocks completely; elliptic and inverse Chebyshev stages each carry a pair
op-amp
the amplifier chip each stage is built around; it is what makes the filter active
by hand

Build your own active filter

about an hour, paper and a calculator
Design this spec by hand with the table method, step by step, every number checked

The automatic design above does all of this at once. Here the same spec is worked out by hand, the classical way: the order from a formula, the normalized transfer function from a table, denormalization, one stage per factor, then the parts of each stage. Type each number to check it; the hints teach the step, and the solution stays hidden until asked for. Work typed here is kept in this browser for this spec: the page opens on its default spec, and typing the same spec again brings the work back.

1 The spec, and the response

The method starts from three numbers: Amax, the most loss allowed in the passband, Amin, the least loss required in the stopband, and k, how sharp the transition from one to the other is. Together they set the order.

This low-pass passes up to fp = 10 kHz with at most Amax = 3 dB of loss, and stops from fs = 35 kHz with at least Amin = 40 dB.

Butterworth: the flattest passband, no ripple, a gentle transition.

The table below gives k for each type of filter (ωmax is the passband edge, ωmin the stopband edge). The 2π cancels in a ratio, so Hz work as well as rad/s.

k=ωmaxωmin=fpfsk = \frac{\omega_{max}}{\omega_{min}} = \frac{f_p}{f_s}
low-passhigh-passband-passband-stop
ωc\displaystyle \omega_cωmax\displaystyle \omega_{max}ωmax\displaystyle \omega_{max}ωmax,1 ωmax,2\displaystyle \sqrt{\omega_{max,1}\,\omega_{max,2}}ωmax,1 ωmax,2\displaystyle \sqrt{\omega_{max,1}\,\omega_{max,2}}
k\displaystyle kωmaxωmin\displaystyle \frac{\omega_{max}}{\omega_{min}}ωminωmax\displaystyle \frac{\omega_{min}}{\omega_{max}}ωmax,2−ωmax,1ωmin,2−ωmin,1\displaystyle \frac{\omega_{max,2} - \omega_{max,1}}{\omega_{min,2} - \omega_{min,1}}ωmin,2−ωmin,1ωmax,2−ωmax,1\displaystyle \frac{\omega_{min,2} - \omega_{min,1}}{\omega_{max,2} - \omega_{max,1}}
B\displaystyle Bωmax,2−ωmax,1\displaystyle \omega_{max,2} - \omega_{max,1}ωmax,2−ωmax,1\displaystyle \omega_{max,2} - \omega_{max,1}
02

Order

n = 4
k=fpfs=1000035000=0.2857k = \dfrac{f_p}{f_s} = \dfrac{10000}{35000} = 0.2857
n≥log⁡ ⁣[10Amin/10−110Amax/10−1]2log⁡(1/k)=3.6779n \geq \dfrac{\log\!\left[\dfrac{10^{A_{min}/10}-1}{10^{A_{max}/10}-1}\right]}{2\log(1/k)} = 3.6779
Show where this order comes from

The order n is the smallest number of poles that satisfies both ends of the spec at once. The whole design is built on one magnitude formula (derived from scratch at the top of the Stages panel); for a low-pass:

∣H(jω)∣2=11+ε2(ωωp)2n,ε=10Amax/10−1=0.9976\left|H(j\omega)\right|^2 = \dfrac{1}{1 + \varepsilon^2 \left(\dfrac{\omega}{\omega_p}\right)^{2n}}, \qquad \varepsilon = \sqrt{10^{A_{max}/10} - 1} = 0.9976

At fp it loses exactly Amax dB by construction (that is how ε is defined). The only condition left is the stopband: at fs it must lose at least Amin dB, and that condition contains n. There the fraction ωs/ωp equals 1/k:

10log⁡10 ⁣(1+ε2(1k)2n)≥Amin10\log_{10}\!\left(1 + \varepsilon^2 \left(\tfrac{1}{k}\right)^{2n}\right) \ge A_{min}

Undo the log, move ε^2 across, then take the log again to bring n down from the exponent; each step is reversible because everything is positive:

ε2(1k)2n≥10Amin/10−1 ⇒ 2n log⁡ ⁣(1k)≥log⁡ ⁣[10Amin/10−1ε2]\varepsilon^2 \left(\tfrac{1}{k}\right)^{2n} \ge 10^{A_{min}/10} - 1 \ \Rightarrow\ 2n\,\log\!\left(\tfrac{1}{k}\right) \ge \log\!\left[\dfrac{10^{A_{min}/10} - 1}{\varepsilon^2}\right]

Dividing by 2log(1/k) and writing ε^2 out in terms of Amax gives the order formula, with this design's numbers:

n≥log⁡ ⁣[10Amin/10−110Amax/10−1]2log⁡(1/k)=log⁡ ⁣[9999.000.9953]2log⁡(3.5000)=4.00201.0881=3.6779 ⇒ n=4n \ge \dfrac{\log\!\left[\dfrac{10^{A_{min}/10}-1}{10^{A_{max}/10}-1}\right]}{2\log(1/k)} = \dfrac{\log\!\left[\dfrac{9999.00}{0.9953}\right]}{2\log(3.5000)} = \dfrac{4.0020}{1.0881} = 3.6779 \ \Rightarrow\ n = 4

Rounding up is what buys the margin: with n a whole number the filter usually loses a bit more than Amin at fs, never less. The Bode plot panel checks both edges again with the rounded components.

2 second-order stages, cascaded. The ideal response is normalized to unity passband gain, so the product of the stages meets the spec with no extra gain stage needed.

03

Stages

ωc = 62.9k rad/s

Denormalized with s → s/ωc (low-pass; ωc = 2π·fp·ε^(-1/n) for Butterworth, 2π·fp for the other responses, derived below). Each row is one realizable second-order block:

H(s)=ωn2s2+ωnQs+ωn2H(s) = \dfrac{\omega_n^2}{s^2 + \frac{\omega_n}{Q}s + \omega_n^2}
Show where the response formula and the poles come from

Every filter here starts from the same question: what does "a low-pass of order n" look like as a formula? The ideal is a brick wall, gain 1 up to fp and 0 above it. No circuit made of n capacitors and inductors (or op-amp stages) can do that, so the design has to pick the best approximation with n poles. The spec only talks about |H| in dB, so it is the magnitude that gets designed, not the phase.

A circuit with n energy-storing parts has a transfer function H(s) whose denominator is a polynomial of degree n. Its magnitude squared on the frequency axis is H(jω) times its mirror image H(-jω), and in that product every odd power of ω cancels, so |H|^2 is always a ratio of polynomials in ω^2. For a low-pass with no zeros (all poles, no numerator terms) and a gain of exactly 1 at DC, the most general form has n unknown positive coefficients:

∣H(jω)∣2=11+a1 ω2+a2 ω4+⋯+an ω2n\left|H(j\omega)\right|^2 = \dfrac{1}{1 + a_1\,\omega^2 + a_2\,\omega^4 + \cdots + a_n\,\omega^{2n}}

The a coefficients are the only freedom left, and the two classic responses are two different ways of spending it.

Butterworth (1930) spends it on flatness at DC: make the passband as flat as possible near ω = 0. Flat means that the derivatives of |H|^2 at ω = 0 are zero. Each coefficient set to zero kills two more derivatives, so choosing a_1 = a_2 = ... = a_(n-1) = 0 makes the first 2n-1 derivatives vanish, the most an n-th degree polynomial allows. That is the "maximally flat" response, and only the last coefficient survives:

∣H(jω)∣2=11+an ω2n\left|H(j\omega)\right|^2 = \dfrac{1}{1 + a_n\,\omega^{2n}}

a_n only sets the frequency scale, and the spec sets it: the passband edge fp is by definition the frequency where the loss reaches Amax, i.e. where |H|^2 = 1/(1+ε^2). Writing a_n = ε^2/ωp^(2n) makes that true by construction, and gives the formula in its final form:

∣H(jω)∣2=11+ε2(ωωp)2n\left|H(j\omega)\right|^2 = \dfrac{1}{1 + \varepsilon^2 \left(\dfrac{\omega}{\omega_p}\right)^{2n}}

ε (epsilon) is the one number the passband spec turns into. At ω = ωp the bracket is 1, so the loss there is 10log(1+ε^2), and requiring that to equal Amax gives:

10log⁡10 ⁣(1+ε2)=Amax ⇒ ε=10Amax/10−1=103/10−1=0.997610\log_{10}\!\left(1 + \varepsilon^2\right) = A_{max} \ \Rightarrow\ \varepsilon = \sqrt{10^{A_{max}/10} - 1} = \sqrt{10^{3/10} - 1} = 0.9976

Two sanity checks: at DC the bracket is 0 and the gain is exactly 1; far above ωp the ω^(2n) term dominates and the loss grows by 20n dB per decade, which is why a higher order gives a steeper wall.

A magnitude formula is not a circuit yet: a circuit is built from poles. Replacing ω by s/j turns |H(jω)|^2 back into H(s) times its mirror H(-s), and the j^(2n) becomes (-1)^n:

H(s) H(−s)=11+ε2(sjωp)2n=11+(−1)n ε2(sωp)2nH(s)\,H(-s) = \dfrac{1}{1 + \varepsilon^2 \left(\dfrac{s}{j\omega_p}\right)^{2n}} = \dfrac{1}{1 + (-1)^n\,\varepsilon^2 \left(\dfrac{s}{\omega_p}\right)^{2n}}

Its 2n poles are the solutions of (s/ωp)^(2n) = (-1)^(n+1)/ε^2. Taking the 2n-th root of a number of size 1/ε^2 gives 2n solutions that all have the same size and angles spaced π/n apart: they sit on a circle of radius ω0, mirrored about both axes. Half of them have a negative real part (stable): those belong to H(s), the other half to H(-s). Measuring the angle θ from the imaginary axis, the stable ones are:

ω0=ωp ε−1/n,si=ω0(−sin⁡θi+jcos⁡θi),θi=(2i+1)π2n,i=0,1,…,n−1\omega_0 = \omega_p\, \varepsilon^{-1/n}, \qquad s_i = \omega_0\left(-\sin\theta_i + j\cos\theta_i\right), \qquad \theta_i = \dfrac{(2i+1)\pi}{2n}, \quad i = 0, 1, \ldots, n-1

The radius ω0 is also the frequency where exactly 3 dB is lost (put ω = ω0 in the response: the bracket becomes ε^2 ε^(-2) = 1, so |H|^2 = 1/2). Only when Amax = 3.0103 dB is ε = 1 and ω0 = ωp; here ε = 0.9976, so the pole circle sits at 1.0006 times past fp. The stages below work in the normalized prototype, ω0 = 1, which is the "unit circle" they refer to; the real frequency scale is put back in by the denormalization step of each stage. Each pair of poles at ± θ_i becomes one second-order stage; for odd n the pole at θ = 90° (s = -1) has no partner and becomes the first-order stage.

Stagef0 = ωn/2πQ
110.0 kHz1.3066
210.0 kHz0.5412
Show the math for every stage

Stage 1

Every second-order stage realizes one pair of poles from the pole formula at the top of this panel, in the normalized prototype (frequencies in units of the cutoff rather than Hz). A pair of poles is the same thing as a second-degree denominator, so the stage has the form:

H(s)=1s2+as+bH(s) = \dfrac{1}{s^2 + as + b}

a and b are the two numbers this step has to find. Stage 1 takes the pole pair at the 1st angle of the formula:

θ=(2×0+1)π2×4=0.3927 rad=22.50°\theta = \dfrac{(2 \times 0 + 1)\pi}{2 \times 4} = 0.3927\ \text{rad} = 22.50°

σ (sigma) and ω (omega) are the pole's real and imaginary parts, the point σ + jω in the s-plane. Its distance from the imaginary axis, σ, is what damps the stage; ω is roughly where its resonance sits. On the Butterworth unit circle:

σ=−sin⁡(θ)=−0.3827,ω=cos⁡(θ)=0.9239\sigma = -\sin(\theta) = -0.3827, \qquad \omega = \cos(\theta) = 0.9239

A pole never comes alone: σ + jω always pairs with its mirror image σ - jω (a real circuit cannot have just one), and multiplying out (s - pole)(s - mirror) gives exactly the s^2 + as + b this stage is trying to build:

(s−σ−jω)(s−σ+jω)=s2−2σ s+(σ2+ω2)(s-\sigma-j\omega)(s-\sigma+j\omega) = s^2 - 2\sigma\, s + (\sigma^2+\omega^2)
a=−2σ=0.7654a = -2\sigma = 0.7654
b=σ2+ω2=sin⁡2θ+cos⁡2θ=1b = \sigma^2 + \omega^2 = \sin^2\theta + \cos^2\theta = 1

b is the squared distance of the pole from the origin, and every Butterworth pole sits on the unit circle, so b is exactly 1 for every stage of every order; only a changes from stage to stage.

Denormalizing puts the real frequency scale back in: replacing s by s/ωc stretches the prototype so that its cutoff of 1 rad/s lands at ωc. Multiplying top and bottom by ωc^2 gives a denominator in the standard second-order form, from which the two numbers a circuit stage is built around, the corner frequency ωn and the quality factor Q, are read off by matching coefficients. (The constant on top is dropped: every stage here is built with unity gain in its passband, so only the denominator matters.)

1(sωc)2+a(sωc)+b=ωc2s2+a ωc s+b ωc2⟷ωn2s2+ωnQ s+ωn2\dfrac{1}{\left(\frac{s}{\omega_c}\right)^2 + a\left(\frac{s}{\omega_c}\right) + b} = \dfrac{\omega_c^2}{s^2 + a\,\omega_c\, s + b\,\omega_c^2} \quad\longleftrightarrow\quad \dfrac{\omega_n^2}{s^2 + \frac{\omega_n}{Q}\, s + \omega_n^2}
ωn2=b ωc2 ⇒ ωn=ωcb,ωnQ=a ωc ⇒ Q=ba\omega_n^2 = b\,\omega_c^2 \ \Rightarrow\ \omega_n = \omega_c\sqrt{b}, \qquad \dfrac{\omega_n}{Q} = a\,\omega_c \ \Rightarrow\ Q = \dfrac{\sqrt{b}}{a}

For a Butterworth response the pole circle derived at the top of this panel has radius ω0 = ωp ε^(-1/n), not ωp itself (they only coincide for Amax = 3.0103 dB). That radius is what the normalized prototype gets scaled by, so this is the step where Amax reaches the component values; for a smaller Amax the poles move outward:

ωc=ω0=2πfp ε−1/n=2π×10000×0.9976−1/4=62831.85×1.0006=62869.16 rad/s  (f3 dB=10.0kHz)\omega_c = \omega_0 = 2\pi f_p \, \varepsilon^{-1/n} = 2\pi \times 10000 \times 0.9976^{-1/4} = 62831.85 \times 1.0006 = 62869.16\ \text{rad/s}\ \ (f_{3\,dB} = 10.0 kHz)
ωn=ωcb=62869.16×1.0000=62869.16 rad/s  (f0=10.0kHz)\omega_n = \omega_c \sqrt{b} = 62869.16 \times \sqrt{1.0000} = 62869.16\ \text{rad/s}\ \ (f_0 = 10.0 kHz)
Q=ba=1.00000.7654=1.3066Q = \dfrac{\sqrt{b}}{a} = \dfrac{\sqrt{1.0000}}{0.7654} = 1.3066

Stage 2

Every second-order stage realizes one pair of poles from the pole formula at the top of this panel, in the normalized prototype (frequencies in units of the cutoff rather than Hz). A pair of poles is the same thing as a second-degree denominator, so the stage has the form:

H(s)=1s2+as+bH(s) = \dfrac{1}{s^2 + as + b}

a and b are the two numbers this step has to find. Stage 2 takes the pole pair at the 2nd angle of the formula:

θ=(2×1+1)π2×4=1.1781 rad=67.50°\theta = \dfrac{(2 \times 1 + 1)\pi}{2 \times 4} = 1.1781\ \text{rad} = 67.50°

σ (sigma) and ω (omega) are the pole's real and imaginary parts, the point σ + jω in the s-plane. Its distance from the imaginary axis, σ, is what damps the stage; ω is roughly where its resonance sits. On the Butterworth unit circle:

σ=−sin⁡(θ)=−0.9239,ω=cos⁡(θ)=0.3827\sigma = -\sin(\theta) = -0.9239, \qquad \omega = \cos(\theta) = 0.3827

A pole never comes alone: σ + jω always pairs with its mirror image σ - jω (a real circuit cannot have just one), and multiplying out (s - pole)(s - mirror) gives exactly the s^2 + as + b this stage is trying to build:

(s−σ−jω)(s−σ+jω)=s2−2σ s+(σ2+ω2)(s-\sigma-j\omega)(s-\sigma+j\omega) = s^2 - 2\sigma\, s + (\sigma^2+\omega^2)
a=−2σ=1.8478a = -2\sigma = 1.8478
b=σ2+ω2=sin⁡2θ+cos⁡2θ=1b = \sigma^2 + \omega^2 = \sin^2\theta + \cos^2\theta = 1

b is the squared distance of the pole from the origin, and every Butterworth pole sits on the unit circle, so b is exactly 1 for every stage of every order; only a changes from stage to stage.

Denormalizing puts the real frequency scale back in: replacing s by s/ωc stretches the prototype so that its cutoff of 1 rad/s lands at ωc. Multiplying top and bottom by ωc^2 gives a denominator in the standard second-order form, from which the two numbers a circuit stage is built around, the corner frequency ωn and the quality factor Q, are read off by matching coefficients. (The constant on top is dropped: every stage here is built with unity gain in its passband, so only the denominator matters.)

1(sωc)2+a(sωc)+b=ωc2s2+a ωc s+b ωc2⟷ωn2s2+ωnQ s+ωn2\dfrac{1}{\left(\frac{s}{\omega_c}\right)^2 + a\left(\frac{s}{\omega_c}\right) + b} = \dfrac{\omega_c^2}{s^2 + a\,\omega_c\, s + b\,\omega_c^2} \quad\longleftrightarrow\quad \dfrac{\omega_n^2}{s^2 + \frac{\omega_n}{Q}\, s + \omega_n^2}
ωn2=b ωc2 ⇒ ωn=ωcb,ωnQ=a ωc ⇒ Q=ba\omega_n^2 = b\,\omega_c^2 \ \Rightarrow\ \omega_n = \omega_c\sqrt{b}, \qquad \dfrac{\omega_n}{Q} = a\,\omega_c \ \Rightarrow\ Q = \dfrac{\sqrt{b}}{a}

For a Butterworth response the pole circle derived at the top of this panel has radius ω0 = ωp ε^(-1/n), not ωp itself (they only coincide for Amax = 3.0103 dB). That radius is what the normalized prototype gets scaled by, so this is the step where Amax reaches the component values; for a smaller Amax the poles move outward:

ωc=ω0=2πfp ε−1/n=2π×10000×0.9976−1/4=62831.85×1.0006=62869.16 rad/s  (f3 dB=10.0kHz)\omega_c = \omega_0 = 2\pi f_p \, \varepsilon^{-1/n} = 2\pi \times 10000 \times 0.9976^{-1/4} = 62831.85 \times 1.0006 = 62869.16\ \text{rad/s}\ \ (f_{3\,dB} = 10.0 kHz)
ωn=ωcb=62869.16×1.0000=62869.16 rad/s  (f0=10.0kHz)\omega_n = \omega_c \sqrt{b} = 62869.16 \times \sqrt{1.0000} = 62869.16\ \text{rad/s}\ \ (f_0 = 10.0 kHz)
Q=ba=1.00001.8478=0.5412Q = \dfrac{\sqrt{b}}{a} = \dfrac{\sqrt{1.0000}}{1.8478} = 0.5412
04

Components

multiple feedback

Stage 1 · multiple feedback

ComponentValue
R110.0 kΩ
R28.20 kΩ
R310.0 kΩ
C16.80 nF
C2470 pF
f0 actual9.83 kHz (-1.75%)
Q actual1.3047 (-0.14%)

1% error on any one component moves Q by roughly 0.80% (root-sum-square across all of them).

VinVoutR1 10.0 kΩR2 8.20 kΩC1 6.80 nFR3 10.0 kΩC2 470 pF

Pick different C1 and C2 values if the ones above do not match what is in stock; the resistors above are recalculated to fit.

Show the math for this stage's components

The MFB (multiple-feedback) low-pass has one internal node, call it S: R1 from the input to S, C1 from S to ground, R2 from S to the op-amp's inverting input, R3 from the output back to S, and C2 from the inverting input to the output. The non-inverting input is grounded, so with negative feedback the inverting input is a virtual ground (0 V, no current into it). Two current balances (KCL) describe the whole circuit, one at S and one at the inverting input:

at S:Vin−VSR1=sC1VS+VSR2+VS−VoutR3,at the (-) input:VSR2=−sC2 Vout\text{at S:}\quad \dfrac{V_{in} - V_S}{R_1} = sC_1 V_S + \dfrac{V_S}{R_2} + \dfrac{V_S - V_{out}}{R_3}, \qquad \text{at the (-) input:}\quad \dfrac{V_S}{R_2} = -sC_2\, V_{out}

The second equation gives V_S in terms of V_out; substituting it into the first and collecting powers of s gives the transfer function, already in the s^2 + as + b shape of the Stages panel:

H(s)=cs2+as+b,a=1C1 ⁣(1R1+1R2+1R3),b=1R2R3C1C2,c=−1R1R2C1C2H(s) = \dfrac{c}{s^2 + as + b},\quad a = \dfrac{1}{C_1}\!\left(\dfrac{1}{R_1}+\dfrac{1}{R_2}+\dfrac{1}{R_3}\right),\quad b = \dfrac{1}{R_2 R_3 C_1 C_2},\quad c = -\dfrac{1}{R_1 R_2 C_1 C_2}

So a and b play the same role as the a and b already found for this stage, just written in terms of R1, R2, R3, C1 and C2 instead of pole positions. This stage's target is f0 = 10.0 kHz (ωn = 62869.16 rad/s), Q = 1.3066; matching a and b to that target is what picks the component values:

a=ωnQ=62869.161.3066=48117.97a = \dfrac{\omega_n}{Q} = \dfrac{62869.16}{1.3066} = 48117.97
b=ωn2=62869.162=3.9525×109b = \omega_n^2 = 62869.16^2 = 3.9525 \times 10^{9}

Five parts, two equations: three choices are free. Choosing R1 = R3 forces the DC gain c/b to exactly -1 (the stage inverts, which does not matter for a low-pass magnitude), and picking C1 and C2 leaves two equations in two unknowns, R1 and R2. Writing x = 1/R1 = 1/R3 and y = 1/R2, the a equation says 2x + y = aC1 and the b equation says xy = bC1C2; eliminating y gives one quadratic in x:

2x2−(aC1) x+bC1C2=02x^2 - (aC_1)\,x + bC_1C_2 = 0

A quadratic only has a real solution when its discriminant is positive, which here means C1/C2 >= 8Q^2. This tool searches a preferred capacitor series for a pair that clears that bar and lands both resistors in a sane 200 ohm to 2 megohm range:

C1=6.80nF,  C2=470pF  (ratio 14.5:1, needs≥8Q2=13.7:1)C_1 = 6.80 nF,\ \ C_2 = 470 pF\ \ \left(\text{ratio } 14.5\text{:1, needs} \geq 8Q^2 = 13.7\text{:1}\right)
Δ=(aC1)2−8bC1C2=6.0030×10−9\Delta = (aC_1)^2 - 8bC_1C_2 = 6.0030 \times 10^{-9}
x=aC1+Δ4=1.0117×10−4  ⇒  R1=R3=1x=9.88kΩx = \dfrac{aC_1 + \sqrt{\Delta}}{4} = 1.0117 \times 10^{-4}\ \ \Rightarrow\ \ R_1 = R_3 = \dfrac{1}{x} = 9.88 kΩ
R2=1y=1aC1−2x=8.01kΩR_2 = \dfrac{1}{y} = \dfrac{1}{aC_1 - 2x} = 8.01 kΩ

Real resistors only come in standard values, so R1 and R2 get rounded to the nearest E24 value: 10.0 kΩ and 8.20 kΩ. Plugging those rounded values back into a and b (not the target ones) gives what this stage will actually do, which is what the "actual" row above and the Bode plot further down are built from:

f0′=9.83kHz,Q′=1.3047f_0' = 9.83 kHz,\quad Q' = 1.3047

Stage 2 · multiple feedback

ComponentValue
R16.80 kΩ
R211.0 kΩ
R36.80 kΩ
C13.30 nF
C21.00 nF
f0 actual10.1 kHz (+1.24%)
Q actual0.5455 (+0.80%)

1% error on any one component moves Q by roughly 0.85% (root-sum-square across all of them).

VinVoutR1 6.80 kΩR2 11.0 kΩC1 3.30 nFR3 6.80 kΩC2 1.00 nF

Pick different C1 and C2 values if the ones above do not match what is in stock; the resistors above are recalculated to fit.

Show the math for this stage's components

The MFB (multiple-feedback) low-pass has one internal node, call it S: R1 from the input to S, C1 from S to ground, R2 from S to the op-amp's inverting input, R3 from the output back to S, and C2 from the inverting input to the output. The non-inverting input is grounded, so with negative feedback the inverting input is a virtual ground (0 V, no current into it). Two current balances (KCL) describe the whole circuit, one at S and one at the inverting input:

at S:Vin−VSR1=sC1VS+VSR2+VS−VoutR3,at the (-) input:VSR2=−sC2 Vout\text{at S:}\quad \dfrac{V_{in} - V_S}{R_1} = sC_1 V_S + \dfrac{V_S}{R_2} + \dfrac{V_S - V_{out}}{R_3}, \qquad \text{at the (-) input:}\quad \dfrac{V_S}{R_2} = -sC_2\, V_{out}

The second equation gives V_S in terms of V_out; substituting it into the first and collecting powers of s gives the transfer function, already in the s^2 + as + b shape of the Stages panel:

H(s)=cs2+as+b,a=1C1 ⁣(1R1+1R2+1R3),b=1R2R3C1C2,c=−1R1R2C1C2H(s) = \dfrac{c}{s^2 + as + b},\quad a = \dfrac{1}{C_1}\!\left(\dfrac{1}{R_1}+\dfrac{1}{R_2}+\dfrac{1}{R_3}\right),\quad b = \dfrac{1}{R_2 R_3 C_1 C_2},\quad c = -\dfrac{1}{R_1 R_2 C_1 C_2}

So a and b play the same role as the a and b already found for this stage, just written in terms of R1, R2, R3, C1 and C2 instead of pole positions. This stage's target is f0 = 10.0 kHz (ωn = 62869.16 rad/s), Q = 0.5412; matching a and b to that target is what picks the component values:

a=ωnQ=62869.160.5412=116167.06a = \dfrac{\omega_n}{Q} = \dfrac{62869.16}{0.5412} = 116167.06
b=ωn2=62869.162=3.9525×109b = \omega_n^2 = 62869.16^2 = 3.9525 \times 10^{9}

Five parts, two equations: three choices are free. Choosing R1 = R3 forces the DC gain c/b to exactly -1 (the stage inverts, which does not matter for a low-pass magnitude), and picking C1 and C2 leaves two equations in two unknowns, R1 and R2. Writing x = 1/R1 = 1/R3 and y = 1/R2, the a equation says 2x + y = aC1 and the b equation says xy = bC1C2; eliminating y gives one quadratic in x:

2x2−(aC1) x+bC1C2=02x^2 - (aC_1)\,x + bC_1C_2 = 0

A quadratic only has a real solution when its discriminant is positive, which here means C1/C2 >= 8Q^2. This tool searches a preferred capacitor series for a pair that clears that bar and lands both resistors in a sane 200 ohm to 2 megohm range:

C1=3.30nF,  C2=1.00nF  (ratio 3.3:1, needs≥8Q2=2.3:1)C_1 = 3.30 nF,\ \ C_2 = 1.00 nF\ \ \left(\text{ratio } 3.3\text{:1, needs} \geq 8Q^2 = 2.3\text{:1}\right)
Δ=(aC1)2−8bC1C2=4.2611×10−8\Delta = (aC_1)^2 - 8bC_1C_2 = 4.2611 \times 10^{-8}
x=aC1+Δ4=1.4744×10−4  ⇒  R1=R3=1x=6.78kΩx = \dfrac{aC_1 + \sqrt{\Delta}}{4} = 1.4744 \times 10^{-4}\ \ \Rightarrow\ \ R_1 = R_3 = \dfrac{1}{x} = 6.78 kΩ
R2=1y=1aC1−2x=11.3kΩR_2 = \dfrac{1}{y} = \dfrac{1}{aC_1 - 2x} = 11.3 kΩ

Real resistors only come in standard values, so R1 and R2 get rounded to the nearest E24 value: 6.80 kΩ and 11.0 kΩ. Plugging those rounded values back into a and b (not the target ones) gives what this stage will actually do, which is what the "actual" row above and the Bode plot further down are built from:

f0′=10.1kHz,Q′=0.5455f_0' = 10.1 kHz,\quad Q' = 0.5455
05

Bode plot

43.7 dB at fs

The top of the passband is at +0.11 dB: a response with passband ripple (Chebyshev, elliptic) built from stages of unity gain ripples above 0 dB when its order is even. The spec's limits are measured from that top, so the amber Amax and Amin lines and the figures below sit 0.11 dB higher than they would from 0 dB.

simulated response (rounded components) Amax / Amin / fp / fs targets

Meets the spec: 43.7 dB of attenuation at fs, at least 40 dB required.

Passband edge with rounded parts: 3.11 dB at fp, against Amax = 3 dB. The ideal design sits exactly at Amax; the excess is the rounding to the E24 series, smaller than the shift the parts' own tolerance produces on a real board.

06

Download

A standalone JavaScript file with this exact design: the same order, pole-placement, denormalization and component-search code as this page, parameterized at the top so it can be edited and rerun with node filter-design.js. It also prints the same report shown above, plus notes on simulating, building and testing the result.

An LTspice schematic with the same component values as the tables above and the AC analysis already set up: open it, press Run, plot V(vout). Each stage is drawn wire by wire, the way a textbook draws it. Each op-amp is the TL082 with its supply pins showing, on +15 V and -15 V rails (the two sources under the drawing, nets v++ and v--); its model is written into the file, so it runs with no library to install. The simulation shows what the part does to the response, which the ideal maths on this page cannot.

07

Next steps

This tool only gets to a paper design. Before trusting it on a bench:

  1. Simulate before building. Every number above comes from an ideal op-amp: infinite gain-bandwidth, no slew rate limit. The LTspice download runs the design with the op-amp picked next to it (a TL082 or LM741 model, or the single-pole one), so run its AC sweep with the part that will be built. That part's gain-bandwidth should be well above the sharpest stage's needs: at least 100 times its Q times its f0 as a rule, 400 times for a Tow-Thomas stage, whose Q rises as Q / (1 - 4 Q f0 / f_T) (the topology note in panel 04 gives the figure for this design). Below that it rolls off before the filter does, and the passband and stopband figures stop holding.
  2. Build and test one stage at a time. Confirm each stage's measured f0 and Q against this design's actual values before wiring the next stage on, instead of assembling the whole cascade and hoping.
  3. Match impedances between stages. The output impedance of one stage should stay well below the input impedance of the next (Zout << Zin), otherwise the second stage loads the first and both f0 and Q drift from what was computed. This matters most between the last filter stage and whatever it feeds.
  4. Measure a real Bode plot. Compare it to the simulated response above: a handful of points swept from fp/10 to fs*10 with a function generator and a scope (or an audio analyzer) is enough to catch a wiring mistake or a component that is the wrong value.
  5. If the measured response drifts, check sensitivity first. The sensitivity numbers above say how much a single component being off by 1% moves Q: that is usually the first place to look before assuming the design itself is wrong.