Formula sheet
Every formula this tool uses, in the same order as its own sections: from a spec down to real component values and a frequency response. Each one has what it is and how to use it, not just the equation on its own.
Symbols that recur through every section below: Amax is the passband ripple or attenuation limit (dB), Amin the stopband attenuation requirement (dB), fp the passband edge (Hz), fs the stopband edge (Hz), n the filter order, and k the transition ratio. They all come from the Specification step of the tool.
For the band types: fl and fh are the passband edges, fsl and fsh the stopband edges, f0 = √(fl fh) the centre of the band, B = fh − fl its width, and Ω the frequency of the low-pass prototype that a band frequency lands on when the band filter is built by transformation (sections 25 and 26).
For the narrow band-pass (sections 28 and 29): f0 is the centre, B the bandwidth between the two points 3 dB below the peak, Q = f0/B, K the gain wanted at f0, N the number of identical stages, and Qs, Ks the Q and the gain of one of them.
Boctor notch sections
One op-amp, six resistors and two capacitors realize a second-order section with stopband zeros. Inverse Chebyshev and elliptic responses can use it in place of a Tow-Thomas notch. Sections without finite zeros retain the ordinary Tow-Thomas or first-order circuit.
An exact notch needs b1 = 0. Rounded resistor ratios generally leave a nonzero b1; the tool keeps this term in its Bode plot and spec checks.
Low-pass notch
The target zero is above the pole frequency. The search chooses unequal capacitors and balances the ideal resistor ratios for unity DC gain.
High-pass notch
The equal-capacitor high-pass form needs gain above one and positive resistors. A section outside this limit needs Tow-Thomas. Gain is included in the complete circuit response.
Circuit reference: Analog Devices, Basic Linear Design, figures 8.78 and 8.79.
Specification and order
Transition ratio
How close the stopband edge sits to the passband edge. Closer to 1, the harder the filter has to work to transition from passing to blocking.
How to use: compute this first; every order formula below needs it.
Butterworth minimum order
The smallest integer order n that meets the Amax/Amin/fp/fs spec with a Butterworth response: the flattest possible passband, at the cost of a slower rolloff than Chebyshev at the same order.
How to use: plug in Amax, Amin and k, then round the result up to the next integer. That integer is n: half of it (rounded down) is the number of second-order stages, plus one leftover first-order stage if n is odd.
Chebyshev minimum order
The same minimum-order calculation for a Chebyshev Type I response, which allows up to Amax dB of ripple inside the passband in exchange for a steeper rolloff than Butterworth at the same order.
How to use: same rounding as the Butterworth case above.
Where both order formulas come from
Every design here is built on one magnitude response (section 3 and section 4 say where each comes from). At fp it loses exactly Amax dB by the definition of epsilon; the only condition left is the stopband, at least Amin dB at fs, and that condition contains n. At fs the frequency ratio is 1/k.
How to use: isolate n (divide by 2 log(1/k), or take acosh of both sides and divide by acosh(1/k)) and substitute epsilon squared = 10^(Amax/10) - 1: that is exactly the two formulas above. Rounding n up is what puts the stopband margin in.
Pole placement, both responses
Where the poles come from
A magnitude formula is not a circuit; a circuit is built from poles. Replacing omega by s/j turns |H(j omega)| squared into H(s) times H(-s). For Butterworth (normalized so that the pole circle has radius 1) its 2n poles are the 2n-th roots of a single number: all the same size, angles spaced pi/n apart, mirrored about both axes. The stable half (negative real part) belongs to H(s). Measuring the angle from the imaginary axis gives the theta formula below; n = 4, for example, puts poles at 22.5 and 67.5 degrees.
For Chebyshev the same substitution into 1 + epsilon squared C_n squared gives cos(n phi) = plus or minus j / epsilon with a complex angle phi = theta + j beta; its real part forces the same theta values, its imaginary part gives beta (section 4).
Pole angle
The n poles of the filter sit evenly spaced by this angle around a curve in the normalized (omega_c = 1 rad/s) s-plane: a circle for Butterworth, an ellipse for Chebyshev. Each second-order stage of the filter is built from one of these angles.
How to use: i is the stage index, starting at 0. Compute one theta per second-order stage; a leftover real pole (odd n) does not need one, it sits at a fixed spot instead (see the response-specific sections below).
Pole coordinates
The real part (sigma) and imaginary part (omega) of the pole at that angle: its coordinates in the s-plane. sh and ch scale the circle into an ellipse for Chebyshev.
How to use: for Butterworth, sh = ch = 1. For Chebyshev, sh = sinh(beta) and ch = cosh(beta) (section 4 below). Compute sigma and omega for a stage's theta, then a and b follow directly.
Stage coefficients a, b
The two coefficients of the stage's normalized quadratic denominator s^2 + as + b, found by multiplying the pole by its complex conjugate: a real circuit always produces both, or the stage's output would not be real-valued.
How to use: feed a and b into the denormalization formulas in section 5 to get a real corner frequency and Q for this stage.
Butterworth specifics
Unit-circle simplification
Because every Butterworth pole sits exactly on the unit circle (sh = ch = 1), b collapses to exactly 1 for every stage: only a changes from stage to stage.
How to use: equivalent to the general sigma/omega formula in section 2, but needs only one trig call. Use this directly for a Butterworth design.
Leftover real pole (odd n)
The one pole with no partner when n is odd. For Butterworth it always sits at exactly s = -1 in the normalized plane, no matter the order: the unit circle only crosses the real axis at one point.
How to use: used only when n is odd, as the b value for the first-order denormalization formula in section 5.
Chebyshev specifics
Epsilon
Controls how deep the passband ripple is allowed to go: a bigger epsilon means more ripple. It comes directly from the Amax spec alone, exactly as for Butterworth. The Chebyshev magnitude response, with C_n the order-n Chebyshev polynomial (which swings between -1 and 1 below the ripple edge and grows like a hyperbolic cosine above it):
At the ripple edge C_n is 1, so exactly Amax dB is lost there and epsilon follows the same way as for Butterworth:
How to use: compute once per design, before beta.
Beta
Controls how squashed the pole ellipse is compared to the unit circle: it folds epsilon and the order n together into the number the ellipse's half-axes need.
Where it comes from: the poles solve 1 + epsilon squared C_n squared (s/j) = 0. Writing s/j = cos(phi) with a complex angle phi = theta + j beta turns C_n into cos(n phi), and expanding the cosine of a complex angle splits the equation in two:
The first part gives the same theta angles as Butterworth (section 2); the second is the beta formula above.
How to use: compute once per design, right after epsilon. sinh(beta) and cosh(beta) are the sh and ch scale factors used in every stage's pole coordinates (section 2).
Leftover real pole (odd n)
Same idea as the Butterworth leftover pole, but on the ellipse: at theta = 90 degrees its position simplifies to just sinh(beta).
How to use: used only when n is odd, as the b value for the first-order denormalization formula below.
Denormalization
Cutoff
Converts the passband edge from Hz to radians per second and places the pole circle. The Butterworth magnitude response (low-pass; a high-pass swaps the fraction to omega_p over omega):
At the passband edge the fraction is 1, so losing exactly Amax dB there fixes the ripple factor:
The n poles sit on a circle of radius omega_0, the frequency where the bracket equals one over epsilon squared, which is also where exactly 3 dB is lost. That circle sits at omega_p only when Amax = 3.0103 dB (epsilon = 1); for a smaller Amax the poles move past fp so that only Amax dB is lost there (inward for a high-pass). Every normalized stage is scaled by this omega_c. A Chebyshev prototype is already normalized to its ripple edge, so it needs no factor.
How to use: compute once per design, then reuse it below. With the common Amax = 3 dB the Butterworth factor is within 0.1% of 1, which is why fp is so often called the 3 dB cutoff; at Amax = 1 dB and n = 5 it is already 1.145.
Second-order stage
Turns a stage's normalized a and b into a real corner frequency omega_n (rad/s) and quality factor Q, the two numbers a real second-order circuit stage is built around.
How to use: f0 = omega_n / (2 pi) is the corner frequency in Hz. Both omega_n and Q feed directly into the MFB or Sallen-Key formulas in sections 6 and 7.
First-order stage
The time constant of the leftover real-pole stage, in seconds.
How to use: feeds directly into the first-order RC formula in section 8; the stage's corner frequency is 1 / (2 pi tau).
Standard second-order form
The form every second-order stage of this filter is built to realize once denormalized: a unity-DC-gain low-pass with corner omega_n and quality factor Q.
How to use: this is the target the MFB or Sallen-Key component search matches against.
MFB components
Transfer function
The multiple-feedback (MFB) topology's transfer function in terms of its five components: R1 from the input to the summing node S, C1 from S to ground, R2 from S to the inverting input, R3 from the output back to S, C2 from the inverting input to the output. Two current balances describe it, at S and at the virtual-ground inverting input:
Eliminating V_S and collecting powers of s gives the transfer function:
How to use: match a and b against the stage's target (a = omega_n / Q, b = omega_n squared) to solve for the components.
Gain-forcing and the resistor quadratic
Choosing R1 = R3 fixes the DC gain c/b to exactly -1 and reduces the two equations in a and b to one quadratic in x = 1/R1 = 1/R3.
How to use: pick C1 and C2 from a preferred series first (subject to the ratio constraint below), then solve this quadratic for x: R1 = R3 = 1/x, and R2 follows from a.
Capacitor ratio constraint
The quadratic above only has a real solution when this holds. It is the practical limit on how high a Q an MFB stage can realize with a given capacitor pair.
How to use: when searching capacitor values, discard any C1/C2 pair that fails this before attempting to solve for resistors.
Sallen-Key components
Defining equations
The unity-gain Sallen-Key topology's two defining equations, in terms of its three free components: two equal resistors R, a grounded capacitor Cbottom, and a feedback capacitor Ctop from the output back to the R-R junction.
How to use: Q depends only on the capacitor ratio, so pick that first (below), then R follows from the omega_n equation once both capacitors are known.
Capacitor ratio
Because Q depends only on this ratio, it is fixed the moment the target Q is known, before any component value is chosen.
How to use: pick Cbottom from a preferred series, multiply by this ratio to get Ctop, then solve R from the equation below.
Resistor value
The value used for both equal resistors, that makes the pair meet the target omega_n once Cbottom and the ratio-derived Ctop are fixed.
How to use: round R and Ctop to the nearest preferred values afterward; recompute the actual omega_n and Q the built stage gives from those rounded values, not the targets.
First-order RC
Single-pole low-pass
The circuit used for the leftover real pole of an odd-order filter: one resistor, one capacitor, output taken across the capacitor. tau is the time constant found in section 5.
How to use: pick C from a preferred series, solve R = tau / C, then round R to the nearest preferred value.
Sensitivity
Definition
How many percent Q moves for every 1 percent a single component x is off by. Lower magnitude is better: less sensitive to real-world component tolerance.
How to use: look up (or compute) one sensitivity per component, then combine them with the root-sum-square formula below.
Sallen-Key sensitivities (fixed)
Fixed values for the unity-gain, equal-R Sallen-Key form: they do not depend on the actual component values, only on the topology.
How to use: multiply each by the component tolerance (in percent) and combine with the root-sum-square formula. With equal resistors Q follows the capacitor ratio alone, so a 5 % capacitor moves Q by 2.5 %. What makes Sallen-Key impractical at high Q is that ratio, 4Q², not its sensitivity. Since ωn/Q is the s coefficient divided by the s² coefficient, skipping that division gives S_R^Q = -2, which is wrong.
MFB sensitivities
Depends on the stage's actual resistor values, but stays under 1/2 in magnitude for every component as long as no single resistor dominates the other two, which is why MFB is the safer default at higher orders.
How to use: compute from the stage's actual (rounded) R1, R2, R3, then combine with C1 and C2's fixed +-1/2 using the root-sum-square formula.
Root-sum-square
Combines every component's individual sensitivity and tolerance into one worst-case estimate of how far Q can realistically drift, assuming the errors are independent.
How to use: use a tolerance of 1 percent for typical E24/E12 resistors and E6 capacitors, unless the actual parts on hand are known to be tighter or looser.
Frequency response (Bode)
Per-stage gain, second order
The complex gain of one second-order stage at a real frequency omega = 2 pi f, evaluated from its actual (rounded) omega_n, Q and DC gain g, not the ideal targets: this is what would actually show up on a bench.
How to use: multiply, as complex numbers, the per-stage gains of every stage in the cascade to get the full filter's response at that frequency.
Per-stage gain, band-pass
A band-pass stage of a band filter built by transformation (sections 25 and 27) has s on top instead of a constant. Its gain peaks at its own centre omega_n, where it equals K, the centre gain of its actual (rounded) parts; the circuits here invert, so K is negative.
How to use: it multiplies into the same cascade product as every other stage. Each band-pass stage is designed so that its gain at the band centre omega_0 is 1, which makes the whole product 1 there.
Per-stage gain, first order
The complex gain of the leftover first-order stage, from its actual (rounded) tau.
How to use: multiplies into the same cascade product as the second-order stages above.
Magnitude and phase
Converts the cascade's complex response at one frequency into the two numbers a Bode plot actually shows.
How to use: sweep omega (or f) log-spaced from below fp to above fs to trace the full curve, and check that the dB value at fs meets Amin. The angle formula gives degrees; drop the 180/pi factor for radians.
Low-pass to high-pass transform
Prototype substitution
A high-pass filter starts from the exact same pole placement as a low-pass one (sections 2 to 4 above are shared by both) and applies one extra step before denormalizing: substituting s with 1/s in the normalized prototype.
How to use: read the new coefficients directly off the denominator on the right.
New coefficients
a_hp and b_hp replace a and b for every step downstream (denormalization, component synthesis). Q comes out identical to what the low-pass version of this same stage would have had - sqrt(b_hp)/a_hp reduces algebraically back to sqrt(b)/a - only the corner frequency moves, to the other side of the cutoff.
How to use: feed a_hp and b_hp into the same denormalization formulas as section 5, in place of a and b.
Leftover real pole (odd n)
The same 1/s substitution applied to the leftover real-pole stage (odd n): a real pole at b_real becomes a real pole at 1/b_real.
How to use: use b_real,hp in place of b_real in the first-order denormalization formula (section 5), then in the first-order high-pass RC formula (section 14).
Standard second-order high-pass form
The high-pass counterpart of section 5's standard low-pass form: same denominator, a numerator that scales with s^2 instead of being constant, so H(0) = 0 and H(infinity) is what is finite.
How to use: this is the target the MFB or Sallen-Key high-pass component search in sections 12 and 13 matches against.
MFB high-pass components
Transfer function
The R-C dual of the low-pass MFB circuit (section 6): C1 from the input to the summing node, R1 from that node to ground, C2 from the summing node to the inverting input, and two separate feedback paths back to the output - C3 from the summing node, R2 from the inverting input.
How to use: match a and b against the stage's target (a = omega_n / Q, b = omega_n squared) to solve for the components.
Equal-capacitor resistor formulas
Setting C1 = C2 = C3 = C forces the gain c to exactly 1 (so the stage's magnitude matches the input at high frequency) and, unlike the low-pass version, always has a real solution regardless of Q - there is no capacitor ratio to clear. With C fixed, a and b reduce to two direct formulas for the two resistors.
How to use: pick C from a preferred series, then solve directly for R2 and R1 in that order (R2 needs only a and C, R1 needs R2 too).
Sallen-Key high-pass components
Defining equations
The R-C dual of the low-pass Sallen-Key circuit (section 7): two equal capacitors C in series from the input to the non-inverting input, a resistor R_bottom from the C-C junction to ground, and a feedback resistor R_top from the output back to that junction.
How to use: Q depends only on the resistor ratio, so pick that first (below), then both resistors follow directly once C is known.
Resistor ratio
Because Q depends only on this ratio, it is fixed the moment the target Q is known, before any component value is chosen - the resistor-ratio dual of section 7's capacitor ratio.
How to use: pick C from a preferred series, then solve R_top and R_bottom directly from the equations below - unlike low-pass, there is nothing left to search once C is chosen.
Resistor values
The two resistor values that meet the target Q and omega_n for the chosen C.
How to use: round both resistors to the nearest preferred values afterward; recompute the actual omega_n and Q from those rounded values, not the targets.
First-order high-pass RC
Single-pole high-pass
The same series RC as the low-pass version (section 8), just with the output taken across the resistor instead of the capacitor. tau is still RC, computed the same way (section 11, using b_real,hp in place of b_real).
How to use: pick C from a preferred series, solve R = tau / C, then round R to the nearest preferred value - identical procedure to the low-pass case.
High-pass sensitivity
MFB high-pass sensitivities
With C1 = C2 = C3 fixed by design, Q works out to a pure power-law in the two resistors alone (no C dependence) - fixed constants, unlike the low-pass MFB's value-dependent ones. C1, C2 and C3 do still drift independently in a real build, so each keeps its own term (they sum to exactly 0, since moving all three together by the same percent leaves Q unchanged).
How to use: combine all five with the root-sum-square formula (section 9) the same way as low-pass MFB's.
Sallen-Key high-pass sensitivities (fixed)
The R-C dual of section 9's low-pass Sallen-Key sensitivities: the equal input capacitors take over the equal resistors' role (and, like them, turn out to have zero sensitivity by symmetry), while the two resistors get the direct power-law exponents from Q's sqrt(Rbottom/Rtop) factor.
How to use: component tolerance barely moves Q for this topology either way - the practical limit on Q is the resistor ratio itself getting impractically large, not sensitivity.
High-pass frequency response (Bode)
Per-stage gain, second order
The high-pass counterpart of section 10's low-pass per-stage gain: same denominator, a numerator proportional to -omega^2 (from s^2 with s purely imaginary) instead of constant.
How to use: multiply into the same cascade product as any other stage to get the full filter's response at that frequency.
Per-stage gain, first order
The complex gain of a leftover first-order high-pass stage, from its actual (rounded) tau.
How to use: multiplies into the cascade product the same way as the low-pass first-order gain in section 10.
Band-pass, first method: high-pass and low-pass in a row
Two independent order calculations
This tool builds a band-pass in one of two ways, and by default takes the one that needs fewer op-amps. This first one cascades a high-pass section (passband edge fl, stopband edge fsl) with a low-pass section (passband edge fh, stopband edge fsh). It suits edges well apart, more than about two octaves; for a narrow band the second way, one low-pass prototype moved onto the band (section 25), usually needs far fewer stages. Here each section gets its own transition ratio and minimum order, from the same formulas as sections 1 and 11, with fl/fsl or fh/fsh in place of fp/fs.
How to use: plug each k into the same Butterworth or Chebyshev order formula from section 1 to get that section's own minimum order, independently of the other section.
Everything else is unchanged
Every stage in either section is an ordinary low-pass or high-pass second-order (or leftover first-order) block, denormalized, synthesized into components and evaluated in the Bode response exactly as sections 2 through 16 already describe. Cascading the two sections, each output feeding the next input exactly like stacking more low-pass or high-pass stages, turns two separate responses into one band-pass response; there is no new per-stage math to learn.
How to use: design and build the high-pass section and the low-pass section as two completely independent filters, then wire the first section's output into the second section's input.
Band-stop, first method: low-pass and high-pass summed
Two independent order calculations
A band-stop (notch) is also built in one of two ways, and by default the tool takes the one that needs fewer op-amps. This first one sums a low-pass branch (passband edge fl, stopband edge fsl) with a high-pass branch (passband edge fh, stopband edge fsh) in an extra op-amp. The edges come in the mirror order of a band-pass, fl < fsl < fsh < fh: the stopband sits inside the two passband edges instead of outside them. The second way, a chain of notch stages from one low-pass prototype with no summing amplifier, is section 26.
How to use: plug each k into the same order formula as section 1 to get that branch's own minimum order, independently of the other branch.
Why summing works
Every stage of the two branches has an exactly known, rounding-independent gain in its own passband: MFB is always exactly -1 (forced by R1 = R3), Sallen-Key is always exactly +1, a unity-gain follower. Summing a fully-passing branch with a fully-attenuated one reliably reconstructs the original signal outside the stopband; the notch depth in between is set by the same Amin-driven order search as everywhere else in this tool, not by matching any component pair precisely (unlike, say, a Twin-T notch).
How to use: design the low-pass branch and the high-pass branch as two completely independent filters running in parallel from the same input, each feeding its own output into the summing amplifier below, never cascaded in series.
Summing amplifier
A plain inverting summing amplifier combines the two branch outputs into the final notch output. Making all three resistors equal gives an exact, rounding-proof unity-magnitude sum - any equal value works, there is nothing to search for here.
How to use: wire the low-pass branch's output through Ra, the high-pass branch's output through Rb, both into the same summing node, with Rf in feedback around the op-amp.
Parallel-sum frequency response
Unlike every other filter type in this tool (where stage gains multiply in a single cascade), a band-stop's two branches must be evaluated as separate cascades and then added, not multiplied - matching what the summing amplifier physically does.
How to use: compute each branch's own cascade product (section 10 or 16, stage by stage within that branch only) at a given frequency, then add the two complex results together before converting to dB - never multiply the two branches together.
Tow-Thomas biquad
Transfer functions
Two integrators in a loop with one damping resistor: A1 is an inverting integrator with Rd across its capacitor, fed by R1 from the input and by Ra from the inverter; A2 is an inverting integrator (Rb, C2); A3 is a unity inverter (r, r) that closes the loop. KCL at the two virtual grounds, with V3 = -V2, gives one denominator for every output.
Design with equal parts
C1 = C2 = C and Ra = Rb = R make the three knobs independent: R sets the corner, Rd alone sets Q, R1 alone sets the gain (unity for R1 = R). No ratio grows with Q, unlike the 8Q² capacitor ratio of MFB or the 4Q² ratio of Sallen-Key.
How to use: pick C from a preferred series so R lands near 10 kilo-ohm, round R, then solve Rd against the rounded R and round it; the realized Q is exactly Rd/R and the gain exactly 1.
High-pass form (feedforward)
Feed the input into A1's node through a capacitor Cin instead of R1: the input term gains a factor s, A1's output becomes the high-pass and A2's the band-pass. Cin = C gives unity magnitude, inverting.
Sensitivities
Q is a product of powers of the parts, so every sensitivity is a fixed exponent, independent of Q and of the values. The input element and the inverter's matched pair do not enter Q.
Compared with MFB and Sallen-Key
Better: independent tuning of f0, Q and gain; any Q with standard values (Rd = Q R); fixed sensitivities of magnitude 1/2 or 1; low-pass, band-pass and high-pass outputs from one circuit; a non-inverting low-pass. Worse: three op-amps per stage instead of one (parts, supply current, noise, board space), and the loop's extra phase lag raises the realized Q above the design value when the op-amps are slow (Q enhancement), so the gain-bandwidth product has to be well above Q times f0.
How to use: reach for the Tow-Thomas when Q is high (past about 5 the one-op-amp ratios stop being buildable), when the filter has to be tuned on the bench, or when the band-pass or notch output is wanted too. For an ordinary low-Q stage, MFB or Sallen-Key does the same job with one op-amp.
Legendre (optimum L)
Response
Butterworth's form with the power (ω/ωp)^(2n) replaced by a polynomial L_n of the same degree that starts at 0, reaches 1 at the edge, never decreases (its derivative is a perfect square) and has the largest slope at the edge of all such polynomials: the steepest roll-off without ripple. ε is Butterworth's, so exactly Amax is lost at fp.
How to use: the poles are the stable roots of 1 + ε² L_n(-s²/ωp²), found numerically. There is no closed order formula: the loss at fs is computed for n = 1, 2, ... until it reaches Amin.
Bessel (Thomson)
Response
The delay -dφ/dω made as flat as possible at DC, so a pulse keeps its shape. The denominator is the reverse Bessel polynomial; this H(s) delays by exactly 1 s at DC.
How to use: the poles are the roots of θ_n, found numerically, then scaled in frequency until exactly Amax is lost at fp. The order is counted like Legendre's, from the loss at fs. As n grows the response tends to a Gaussian, whose loss in dB grows with the square of the frequency, so a sharp spec may be out of reach at any order.
Inverse Chebyshev (Chebyshev II)
Response, zeros and poles
Flat passband, ripple in the stopband between zeros of transmission. Written with the stopband edge ωs as the reference; the poles are Chebyshev I poles for ε = 1/εs, inverted.
Order and stopband ripple
The same order formula as Chebyshev I. With ωs placed at fs and exactly Amax lost at fp, the stopband ripple follows; rounding n up makes it deeper than Amin.
Elliptic (Cauer)
Response and order
Equal ripple in both bands, zeros in the stopband: the steepest transition for a given order. R_n is the elliptic rational function; k = ωp/ωs is the selectivity and k1 = εp/εs the discrimination. K is the complete elliptic integral of the first kind, K'(k) = K(√(1-k²)).
How to use: with n rounded up, the degree equation is solved for k1 at the spec's k, through the nomes q = exp(-πK'/K): q1 = q^n. The stopband then loses Amin' ≥ Amin.
Zeros and poles
From the Jacobi elliptic functions sn, cn, dn at n equally spaced points of the quarter period, the poles shifted off the axis by v0, which carries Amax (F is the incomplete integral of the first kind).
Stages with zeros (notch stages)
Stage and denormalization
Each pole pair of an elliptic or inverse Chebyshev prototype carries a pair of zeros ±j√z. The stage has gain 1 at DC (low-pass) or far above the zero (high-pass); s → s/ωc denormalizes it, and s → 1/s moves a low-pass zero z to 1/z for a high-pass.
Tow-Thomas notch (feed-forward)
The Tow-Thomas high-pass (Cin into A1) plus Rz from the input into A2: an s² term and a constant on top, no s term, so the zeros sit on the jω axis. Output at A1.
How to use: on the low-pass side round Cin to a stocked capacitor, then solve Rz = 1/(C Cin R ωz²) against the parts used: the zero stays put and the rounding becomes a small DC gain error, R/Rz. The zero's sensitivity is -1/2 to each of C, Cin, R and Rz; Q's are the Tow-Thomas's (section 19).
Checking the spec, and the band-stop combiner
Amax and Amin are measured from the top of the passband, and the stopband over its whole width, since an elliptic or inverse Chebyshev response comes back up between its zeros. In a band-stop, a low-pass branch whose DC gain is G gets its combiner input resistor scaled by G.
Band-pass, second method: transformation of a low-pass
Centre, bandwidth and the substitution
One low-pass prototype, with its passband edge at the bandwidth B, is moved onto the band by replacing every s in its transfer function. The new variable is zero at the centre f0 and grows on both sides of it, so the prototype's DC lands on f0. On the frequency axis a band frequency f behaves like the prototype frequency Omega (in units of its passband edge), and since f0 squared is fl fh, both passband edges land on |Omega| = 1, where the prototype loses exactly Amax.
How to use: the last equation is the geometric symmetry: f and f0²/f lose the same, so the band filter is symmetric on a log axis about f0, not about the arithmetic middle of fl and fh.
Stopband edges and the order
Each stopband edge lands on its own Omega, above 1, and the prototype is counted like any low-pass with k = 1/Omega (sections 1, 20 to 23), each edge with its own Amin. For a response whose loss keeps growing past the passband (Butterworth, Chebyshev, Legendre, Bessel) the order is the larger of the two counts. For inverse Chebyshev and elliptic the stopband stays at one floor from the prototype's stopband edge on, so the count takes the closer edge with the larger Amin; when the closer edge needs less, lower orders are tried with the prototype's stopband edge moved between the two, keeping the first that holds both.
How to use: the band filter has order 2n: n prototype poles give n second-order stages. Panel 02 shows both edge counts and the op-amp count of both methods.
Poles and zeros to stages
At the prototype's real scale the substitution is (s² + omega_0²)/s. Each prototype pole p (rad/s) turns into the two roots of one quadratic. They multiply to omega_0², so a pole pair gives two stages on either side of f0, symmetric on a log axis, with one shared Q. The real pole of an odd order gives one stage on f0. A prototype zero at ±j omega_z gives two zeros with the same product: the upper one goes with the upper stage (a low-pass notch), the lower one with the lower stage (a high-pass notch).
Gain of each stage
Every stage is set for gain 1 at f0, so the whole filter is exactly 1 there. A band-pass stage centred off f0 has lost gain by f0, so its centre gain K is raised to make up for it; a notch stage gets the gain far above its zero, K∞, that does the same. With an even order of Chebyshev or elliptic, f0 sits in a ripple trough and the passband peaks Amax above it, measured from the peak as always. Bessel's flat delay does not survive: Omega is not proportional to f.
How to use: build each band-pass stage as a multiple-feedback band-pass (section 27, one op-amp) or at A1 of a Tow-Thomas (section 19, three op-amps, centre gain -Rd/R1, so R1 = Rd/K), and each notch stage as a Tow-Thomas notch with Cin = K∞ C (section 24) or a Boctor section. Boctor keeps its own gain, which moves the level at f0, so the tool keeps it only where its gain at f0 lands within 1 dB of 1 and its zero on target; elsewhere the stage is a Tow-Thomas notch.
Band-stop, second method: transformation of a low-pass
The substitution and the order
The same prototype idea, with the inverse substitution: zero at DC and far above the band, infinite at f0. The prototype's passband lands on both outer passbands, fl and fh land on |Omega| = 1, and its stopband folds into the middle of the band. The order is counted per stopband edge as for the band-pass (section 25), with the one Amin of the band-stop.
Poles and zeros to notch stages
Each prototype pole p gives two roots with product omega_0² and one shared Q, now from the quadratic with omega_B²/p in place of p. The prototype's zeros at infinity land where the substitution is infinite, at ±j omega_0: every stage is a notch at f0, the lower stage of a pair a low-pass notch and the upper one a high-pass notch. The real pole of an odd order gives a symmetric notch, poles and zero both on f0. A finite prototype zero splits like a pole, with r = omega_B²/omega_z.
Gain of each stage, and no summing amplifier
Every notch stage is set for gain 1 at DC, whichever side of its poles the zero is on, so far above the band it passes (omega_n/omega_z)². In each pair the poles and the zeros both multiply to omega_0², so those factors cancel pair by pair: the whole chain passes exactly 1 at DC and far above the band, and needs no summing amplifier.
How to use: build each stage as a Tow-Thomas notch with Rz = R (DC gain 1 on either side of the zero, section 24) or as a Boctor section. Boctor keeps its own gain, which moves the level of both passbands together, so the tool keeps it only where its DC gain lands within 1 dB of 1 and its zero on target. Elsewhere, and for the symmetric notch Boctor cannot build, the stage is a Tow-Thomas notch. Evaluate the Bode response as one cascade (section 10), not as the parallel sum of section 18.
Multiple-feedback band-pass (Delyiannis-Friend)
Circuit and transfer function
One op-amp: R1 from the input to a node A, R2 from A to ground (an input attenuator with R1), C2 from A to the inverting input M, C1 from the output back to A, R3 from M to the output, the non-inverting input grounded. KCL at the virtual ground M gives V_A = -V_out/(s C2 R3); KCL at A then gives a band-pass.
Design for omega_0, Q and the centre gain
With the capacitors chosen, R3 alone sets the bandwidth, R1 then the gain, and R2 only moves omega_0. R2 must stay positive, which caps the gain at Q²(1 + C2/C1), 2Q² with equal capacitors: a stage with Q under about 0.7 needs C2 larger than C1 to reach gain 1. At the centre the op-amp runs at a noise gain just above that ceiling, and a single-pole op-amp of gain-bandwidth f_T keeps the peak gain but pulls f0 down and Q up by the factor below.
How to use: a narrow band moves with every percent of f0, so round in steps: R3 first, then R1 solved against the rounded R3, then R2 against both, which keeps the realized f0 close. The resistor spread R3/R2 grows like 4Q². Designed for an ideal op-amp, the stage needs a gain-bandwidth of ten times NG f0 or more; designed ahead of the op-amp (below), a loop gain T of 2 will do. Past that, the Tow-Thomas band-pass (section 19) keeps every ratio small for three op-amps.
Designing ahead of the op-amp
With a single-pole op-amp, A(s) = omega_t/s and omega_t = 2 pi GBW, the denominator is a cubic: one fast real pole near omega_t and the pole pair the band sees. To put that pair on a target (omega_n, q), the circuit alone is designed at a higher omega_0 and a lower Q. Splitting the cubic around the target leaves the op-amp's pole p as the one unknown.
How to use: the last of the three equations in p has one root past omega_t when omega_t² - (omega_n/q) omega_t + omega_n² > 0, always so when GBW is above f_n/q; found by bisection. With no root the op-amp is too slow for any circuit. The root gives omega_0 and Q, the gain at omega_n gives R1 C1 and so the centre gain |H0|, and the parts follow from the formulas above. Score what the rounded parts do with the op-amp, not alone, and count an f0 miss 2q times: near its band edges a stage moves about 2q times as much for 1 % of f0 as for 1 % of Q. Keep only capacitor pairs whose loop gain T at f0 is 2 or more; under 3 the correction leans on the exact GBW. Use the part's single-pole figure: 3.45 MHz for the TL082 model, 1 MHz for the LM741. Another op-amp needs another correction.
Narrow band-pass: one peak, one stage or N identical ones
The second-order band-pass and its gain at f0
A narrow band-pass picks out one frequency, f0, with one second-order band-pass stage. The denominator is the standard second-order one, damping ξ = 1/(2Q); the numerator is proportional to s, which makes the gain zero at DC and far above f0. At s = jω0 the s² term and the constant cancel, so the stage gives exactly K there, with no phase shift. Far from f0 it falls 20 dB per decade on each side.
How to use: read f0, Q and K straight off a stage's H(s) once its denominator is in this form. Mind the numerator: with ω0² on top instead of 2ξω0 s, the same denominator is a low-pass, not a band-pass.
Q, the bandwidth B and the band edges
B is the width between the two points 3 dB below the peak. The edges are symmetric on a log axis: their product is f0² and their difference is B.
How to use: the spec gives either Q or B, and the other follows. At f0 = 10 kHz and Q = 5, B = 2 kHz and the edges sit at 9.05 kHz and 11.05 kHz, not at f0 ± 1 kHz.
N identical stages: the shrink factor
N identical stages in series multiply their responses. With x = Q_s (f/f0 − f0/f), one stage gives |H|² = K_s²/(1 + x²), and the chain is 3 dB down where (1 + x²)N = 2. The edges keep f0 at their geometric centre, and the band is narrower than one stage's by a factor that depends on N alone.
How to use: give every stage the same f0, the lower Q_s and the gain K1/N. The factor is 1, 0.6436, 0.5098, 0.4350, 0.3856 and 0.3499 for N = 1 to 6: two stages at Q = 5 take Q_s = 3.218 each. The cost is N times the op-amps; the gain is steeper skirts for the same bandwidth, 27.7 dB down an octave off with two stages against 17.6 dB with one. A stage Q of 5 to 10 builds reliably: tolerances move f0 and lower Q, more so the higher the Q.
Narrow band-pass circuits
Six circuits build one stage. Every example below is the same stage: f0 = 10 kHz, Q = 5, C = 10 nF, so the capacitor's reactance at f0 is X = 1/(ω0 C) = 1.592 kΩ. The tool picks C from the stock first, as here, then solves and rounds the resistors.
Passive RLC, the principle
R from the input to the output node P, L and C both from P to ground. At f0 the currents in L and C cancel, their parallel impedance is very large, and P follows the input: gain 1.
How to use: mind which way up the square root goes. R = Q sqrt(C/L) is a slip: sqrt(C/L) is a conductance, so that product is not in ohms. For a gain α under 1, split R into Ra from the input to P and Rb from P to ground, with Ra || Rb = R: Ra = R/α, Rb = R/(1 − α). No real inductor is used: one of the two circuits below takes its place, and P, a high impedance, ends in a follower or in the gain stage.
Gyrator inductor (one op-amp)
R1 from P to a follower's output, Cg from P to its + input X, R2 from X to ground. The follower copies V_X, and the impedance seen from P is close to an inductor with a series loss R1:
With R1 = 50 Ω and Cg = C = 10 nF, the plain recipe gives R2 = L/(R1 Cg) = 50.66 kΩ and R = 7.958 kΩ. The exact Z_in then moves the peak to 10.03 kHz, drops Q to 3.82 and the gain to −2.4 dB. The exact stage is still second order, with a zero at 1/(R2 Cg):
How to use: solve R2 and R from the exact expression, the smaller root h (the larger R2) for the smaller loss: R2 = 50.88 kΩ and R = 11.58 kΩ put f0 and Q on target, with 0.688 (−3.3 dB) left at f0 for a gain stage to make up. Keep R1 small next to X and R2 large next to it, but not too small: a real op-amp's lag works in Z_in as a capacitance 1/(2π GBW R1) across the tank, which moves f0 down by about 1/(2 ωT R1 C), ωT = 2π GBW. The tool weighs both and keeps the worse of the two misses, from the parts and on a TL082, as small as it can. At 10 kHz, Q = 5 that leaves the TL082 within 2 % of f0.
Antoniou's generalized impedance converter (two op-amps)
A chain from P to ground: R1, R2, R3, Cg, R4. Op-amp 1: + on P, − between R2 and R3, output between R3 and Cg. Op-amp 2: + between Cg and R4, − on the same node as op-amp 1's, output between R1 and R2. Ideal op-amps hold every input node at V_P, and the currents follow one another up the chain:
How to use: an exact, lossless grounded inductor with ideal op-amps. With Cg = C and all four resistors equal to X = 1.592 kΩ, L = X/ω0 = 25.33 mH exactly. Build R1 = R3 at a stocked value, R4/R2 as the stocked ratio closest to the one L asks for, then solve R = Q sqrt(L/C) against the L built. Every part enters Q as a plain power: sensitivities of 1/2, and 1 for R.
Sallen-Key band-pass (one op-amp)
A non-inverting amplifier of gain K = 1 + Rf/Rg. Ra from the input to X, C1 from X to ground, C2 from X to the + input P, R2 from P to ground, R3 from X to the output. With G1 = 1/Ra (plus 1/Rb when the input is divided):
How to use: K sets Q and must stay under K_lim, where ω0/Q falls to zero and the circuit oscillates: 4 with equal parts, closer once they are rounded (3.62 for R3 = 5.1 kΩ, R2 = 5.6 kΩ and Ra || Rb = 6.4 kΩ, for example). The circuit's own gain at f0 is 13.14 (+22.4 dB) at Q = 5, not 1, and Q moves 13.14 % for 1 % on K: Rf/Rg = 2.717 has to be held to a fraction of a percent. For a gain K0 under the circuit's own, split the input into Ra = 13.14 R/K0 and Rb = R/(1 − K0/13.14), so that Ra || Rb = R; above it, a gain stage follows. Round R3 first, then the input, then R2 for f0, then Rf/Rg for Q.
Multiple feedback band-pass (one op-amp)
The three-resistor form of section 27 sets f0, Q and the gain. Without R2 to ground it is the two-resistor form, whose gain is fixed: the ceiling of the three-resistor one.
How to use: the two-resistor form gives −50 (+34 dB, inverting) at Q = 5, not 1. For any gain under the ceiling Q²(1 + C2/C1), use the three-resistor form of section 27 (R2 divides the input); past it, build the stage for gain 1 and add a gain stage. The spread, R3/R1 = 4Q² here and R3/R2 about the same in the three-resistor form, and the noise gain 1 + Q²(1 + C2/C1) at f0 grow fast with Q.
State variable, KHN (three op-amps)
A1 integrates (R1 in from A3, C1 across): its output is the band-pass. A2 integrates it again (R2 in, C2 across): its output is the low-pass. A3 sums: on its − input R3 from the input, R4 from A2 and R7 from its own output; on its + input R5 from the band-pass and R6 to ground. A3's output is the high-pass. These labels follow from the circuit: one more integration of the band-pass can only give the low-pass.
How to use: R sets f0 (R = X = 1.592 kΩ), R3 the gain and R5/R6 the Q: for K = 1, R3 = 5 R0 and R5/R6 = 10. The gain at f0 is positive. The other way to unity gain, R5/R6 = 2 with R3 = R4 = R7, leaves Q = sqrt(R1 C1/(R2 C2)): with equal capacitors R1 = Q/(ω0 C) = 7.958 kΩ and R2 = 1/(Q ω0 C) = 318.3 Ω, a Q² spread. Every sensitivity stays at 1 or under.
Tow-Thomas band-pass (three op-amps)
The two-integrator loop of section 19, the band-pass taken at the output of A1: Rd across C1 sets the damping, R1 brings the input in.
How to use: three independent knobs, R for f0, Rd for Q, R1 for the gain, and sensitivities of 1/2 and 1 whatever the Q. The stage inverts. Round R, then Rd against the rounded R, then R1 against the rounded Rd.
The gain stage, and choosing a circuit
When the stages cannot reach K by their form (an RLC, a Sallen-Key with its own gain under K, a multiple feedback stage past its ceiling), a non-inverting amplifier follows the last stage. It takes the rounding of every stage into its target, and its + input buffers an RLC tank, so that stage needs no follower of its own.
How to use: the tool builds all six from the stock and measures each from its parts with ideal op-amps and on a single-pole op-amp of the TL082's measured gain-bandwidth, 3.45 MHz, whose poles it also checks for an oscillation. A circuit qualifies when, both ways, it keeps f0 within a tenth of the bandwidth and Q and K within 10 %, when it does not oscillate, and when its Q moves at most 2 % for 1 % on any one part. The fewest op-amps win among those, then the closest fit, then the fewest parts; when none qualifies, the closest fit that does not oscillate. A gain stage of gain g on that op-amp keeps 1/√(1 + (g·f0/GBW)²) of it at f0, so a large gain at a high f0 is split over two or three identical stages, each with g·f0 under GBW/10.