Active low-pass filter
Second-order low-pass with an op amp: pick the corner, the shape and one capacitor, and get the resistors, what the E24 values actually give you, the peaking to expect, and how fast the op amp has to be.
Sallen-Key is non-inverting and easy to follow, but its Q is sensitive to component spread. Multiple feedback inverts, gives gain in the same stage, and holds Q better — at the cost of a virtual-ground node that is fussier about op-amp bandwidth.
Butterworth is flat in the passband and the safe default. Bessel has the best step response and the gentlest roll-off — use it where overshoot matters. Chebyshev rolls off hardest and ripples in the passband to pay for it.
The −3 dB corner for Butterworth. Chebyshev and Bessel define theirs differently, so the f0 and Q in the results will not equal this number.
Pick the capacitor first and let the resistors fall out — capacitors come in far fewer values than resistors. 1–100 nF keeps the resistors in the sensible few-kΩ to few-hundred-kΩ range.
A frequency to report the attenuation at. This is how you check a two-pole section actually kills your aliasing or your ripple, rather than assuming it does.
- C1 (junction to output)
- 20.0 nF
- C2 (+ input to ground)
- 10.0 nF
- R1 = R2, exact
- 11.3 kΩ → E24 11.0 kΩ
- With E24: f0 / Q
- 1.02 kHz · 0.707
- Designed f0 / Q
- 1.00 kHz · 0.7071
- Response at fc = 1.00 kHz
- -2.82 dB
- Op amp GBW, at least
- 72.3 kHz
Flat passband, −3 dB at fc.
What it computes
A second-order low-pass around one op amp, from a corner frequency, a response shape and a capacitor you already have. Sallen-Key is the unity-gain, equal-resistor form: R1 = R2 = R, C1 from the resistor junction to the op-amp output, C2 from the + input to ground. MFB (multiple feedback) is the inverting form with gain K = R2/R1, C1 to ground at the summing node and C2 in the feedback.
Sallen-Key (unity gain, R1 = R2 = R)
ω0 = 1 / (R √(C1 C2)) Q = ½ √(C1 / C2)
C1 = 4 Q² · C2 R = 1 / (2π f0 √(C1 C2))
MFB (inverting, K = R2 / R1)
ω0 = 1 / √(R2 R3 C1 C2)
Q = √(R2 R3 C1 C2) / (C2 (R2 + R3 + R2 R3 / R1))
real resistors need C1 ≥ 4 Q² (1 + K) C2 (tool defaults to 1.1× that)
Any second-order section, u = f / f0
|H| = 1 / √((1 − u²)² + (u / Q)²)
peak (Q > 0.707) at f0 √(1 − 1/2Q²), height Q / √(1 − 1/4Q²)
op amp GBW ≥ 100 · K · f0 · QThe shape sets Q and where the pole f0 sits relative to the corner you asked for. Butterworth: Q 0.7071, f0 = fc. Bessel: Q 0.5773, f0 = 1.2736 fc. Chebyshev 0.5 dB: Q 0.8637, f0 = 1.2313 fc. Chebyshev 1 dB: Q 0.9565, f0 = 1.05 fc. For Butterworth and Bessel fc is −3 dB; for Chebyshev it is the ripple-band edge. Equations from TI SLOA049. The tool rounds resistors to E24 and reports the f0 and Q you actually get.
Worked example
Sallen-Key, 1 kHz Butterworth, starting from a 10 nF C0G on the reel.
Q = 0.7071, f0 = 1000 Hz
C1 = 4 × 0.7071² × 10 nF = 20.0 nF
R = 1 / (2π × 1000 × √(20n × 10n)) = 1 / (2π × 1000 × 14.14n) = 11.25 kΩ
E24: 11 kΩ → f0 = 1 / (2π × 11k × 14.14n) = 1023 Hz, Q = ½ √(20/10) = 0.707 (unchanged)Q depends only on the capacitor ratio, so resistor rounding moves the corner 2 % and leaves the shape alone. Ask for Bessel at the same 1 kHz and the tool puts the pole at 1273.6 Hz, Q 0.5773: C1 = 13.3 nF, R = 10.8 kΩ. The soft Bessel roll-off needs the pole up there for −3 dB to land on 1 kHz.
MFB, 1 kHz Butterworth, gain 2, from C2 = 1 nF.
min C1 = 4 × 0.7071² × (1 + 2) × 1 nF = 6.0 nF tool uses 1.1× = 6.6 nF
a = 1 / (2π × 1000) = 1.5915e-4
p = a² / (C1 C2) = 2.533e-8 / 6.6e-18 = 3.838e9 (= R2 R3)
b = a / (Q C2) = 1.5915e-4 / 0.7071e-9 = 2.2508e5 (= R2 + R3 (1+K))
disc = √(b² − 4 (1+K) p) = √(5.066e10 − 4.606e10) = 6.786e4
R3 = (b − disc) / (2 (1+K)) = 1.5722e5 / 6 = 26.2 kΩ
R2 = p / R3 = 3.838e9 / 26 203 = 146.5 kΩ
R1 = R2 / K = 73.2 kΩ
E24: R1 75 kΩ, R2 150 kΩ, R3 27 kΩ
f0 = 1 / (2π √(150k × 27k × 6.6n × 1n)) = 973 Hz
Q = 0.708, gain = 150/75 = 2.00
GBW wanted: 100 × 2 × 1000 × 0.707 = 141 kHzThe 6 nF minimum is the discriminant reaching zero; the 10 % back-off keeps tolerance from making the design unsolvable. A bigger C1spreads the resistors apart, which is fine until R3 gets small enough to load the source.
Where it stops being valid
The op amp is part of the filter. Once loop gain at f0 drops toward the section's own gain, the pole moves and Q rises. 100·K·f0·Q keeps the error near 1 %; at a tenth of that the shape is visibly off. High-Q sections at tens of kHz want megahertz op amps.
Sallen-Key comes back up. C1 dumps the stop-band signal into the op-amp output, and the output is not a short: its closed-loop impedance rises with frequency as loop gain falls. The response flattens out a decade or two above fc and then rises again; floors of 40 to 60 dB are typical. MFB's feedback capacitor works into a virtual ground and keeps falling until parasitics take over, which is why it is the better anti-alias filter when the aliasing band is far above fc.
Sensitivity. Unity-gain SK sets Q by the capacitor ratio and barely notices the resistors. Add gain (the tool does not) and the equal-component form has Q = 1/(3 − K): K of 2.9 is Q 10, K of 3 oscillates, and 1 % in the gain leg is 10 % in Q. MFB spreads the sensitivity over resistor ratios instead, so nothing blows up but every 1 % resistor contributes, and C1/C2 ratios of 10 or more pull the two capacitors from different decades.
Fourth order is not two of these. Two Butterworth sections in series give Linkwitz-Riley, −6 dB at fc. A true fourth-order Butterworth is two sections at the same f0 with Q 0.5412 and 1.3066; Bessel and Chebyshev spread f0 as well. Take the pair from the pole tables in SLOA049, run the tool once per section, and put the higher-Q section last so it does not clip on the peaking.
Common mistakes
- X7R capacitors. ±15 % over temperature plus DC-bias loss goes straight into Q (the ratio) and f0 (the product). C0G/NP0 for both, film above what C0G stocks.
- Picking resistors first. Resistors come in E96; C0G capacitors in E6 or E12. Pick C2 from stock, let the tool derive C1, fit the resistors last. If C1 lands off-series, parallel two parts or let f0 move.
- Forgetting the MFB inverts. Gain is −K; either the next stage inverts again or the firmware flips the sign. On a single supply the + input needs a mid-rail reference that can sink the signal current through R1.
- Driving an MFB from a high-impedance source. Its input impedance is R1, 73 kΩ in the example and often much less; a few kΩ of source resistance changes gain and Q. Buffer first, or use Sallen-Key.
- Trusting the SK stop-band for anti-aliasing. Measure the floor or use MFB. Either way the filter goes directly in front of the ADC, after the gain stages, with a small RC on its output as the converter's charge reservoir.
- Reading the Chebyshev fc as −3 dB. It is the ripple-band edge. The 1 dB design's Q of 0.9565 peaks 1.0 dB at 0.67 f0; that is the ripple, not a fault.
Further reading
- TI SLOA049, Active Low-Pass Filter Design — the Sallen-Key and MFB equations used here, pole tables for higher orders, GBW discussion.
- TI SBOA093, Filter Design in Thirty Seconds — the cookbook version, good for sanity-checking values.
- TI SLOA024, Analysis of the Sallen-Key Architecture — the derivation, gain sensitivity, and why the stop-band comes back up.
- ADI Basic Linear Design, chapter 8: Analog Filters — topology comparison, sensitivity, full pole tables to tenth order.