A Butterworth filter transfer function is a mathematical model that describes an analog or digital filter designed to yield a maximally flat magnitude response in the passband with zero ripple. In a real circuit or installation, applying this transfer function changes how your system handles noise by smoothly attenuating unwanted frequencies beyond the cutoff point without altering the amplitude of your desired passband signals. Engineers and hobbyists most commonly confuse the Butterworth response with the Chebyshev filter, which trades passband ripple for a steeper roll-off, or the Bessel filter, which prioritizes linear phase and step-response preservation over amplitude flatness.
The Mathematics of the Butterworth Transfer Function
The core promise of the Butterworth topology is amplitude preservation. If you are passing a 500 Hz audio tone through a 1 kHz low-pass filter, you want that tone to arrive at the output at the exact same voltage it entered, just stripped of high-frequency hiss. The squared magnitude response of an analog Butterworth filter is defined as:
|H(jω)|² = 1 / [1 + (ω/ω_c)^(2n)]
Where:
- ω is the angular frequency of the input signal (2πf).
- ω_c is the cutoff angular frequency (-3 dB point).
- n is the order of the filter (number of poles).
To build this in the real world, we map this continuous-time Laplace transfer function, H(s), to physical resistors, capacitors, and operational amplifiers. For a 2nd-order (n=2) low-pass filter, the normalized transfer function becomes H(s) = 1 / (s² + √2s + 1). That √2 term (approximately 1.414) is the damping factor that dictates the component ratios in your active filter topology.
Worked Numeric Example: 2nd-Order Low-Pass Sallen-Key
Let's design a 2nd-order Butterworth low-pass filter with a cutoff frequency (f_c = 1 kHz) and a unity DC gain. We will use the Sallen-Key topology because it requires only one op-amp and is highly stable on a breadboard.
For a unity-gain Sallen-Key to achieve the Butterworth damping ratio (Q = 0.707), we cannot use equal capacitors. The standard design equations require C1 = 2 * C2 when R1 = R2 = R.
- Select Capacitors: Let's choose C2 = 10 nF. Therefore, C1 = 20 nF. (In practice, you would parallel two 10 nF C0G/NP0 capacitors for C1 to maintain tight 1% tolerance and low dielectric absorption).
- Calculate Resistors: The cutoff frequency formula for this specific Sallen-Key variant is
f_c = 1 / (2π * R * √(C1 * C2)). - Solve for R:
1000 = 1 / (2π * R * √(20e-9 * 10e-9))1000 = 1 / (2π * R * 1.414e-8)R ≈ 11,254 Ω - Select Standard Components: The closest E96 series 1% resistor value is 11.3 kΩ.
Using 11.3 kΩ resistors and our 20nF/10nF capacitor pair, the actual realized cutoff frequency will be 996 Hz, which is well within acceptable margins for most audio and sensor applications. For the op-amp, a TL072 or OPA2134 is ideal here due to their low noise and sufficient gain-bandwidth product (GBW).
Where You Meet This in Practice
You will encounter the Butterworth transfer function whenever signal integrity in the passband is more critical than the absolute sharpest cutoff transition.
- ADC Anti-Aliasing: When feeding a 16-bit ADC like the ADS1115 (max sampling rate 860 SPS), Nyquist dictates you must filter out everything above 430 Hz. A 2nd or 4th-order Butterworth ensures your DC and low-frequency sensor readings (like a load cell or thermocouple) are not distorted by passband ripple before digitization. See Analog Devices MT-223 for deep-dive anti-aliasing theory.
- Audio Crossovers: The famous Linkwitz-Riley crossover used in PA speakers and studio monitors is literally just two cascaded Butterworth filters. This specific arrangement yields a flat amplitude response at the crossover frequency while maintaining safe phase alignment between the woofer and tweeter.
- Motor Control Feedback: In BLDC and servo drives, current sense amplifiers output PWM switching noise. A 3rd-order Butterworth low-pass filter cleans up the current feedback signal for the microcontroller's ADC without introducing the phase lag that a Bessel filter might push outside the control loop's stability margin.
Filter Topology Comparison Matrix
Choosing the right transfer function requires trading off roll-off steepness against passband behavior. Here is how the Butterworth stacks up against other standard approximations:
| Filter Type | Passband Ripple | Roll-off Steepness | Phase Linearity | Step Response |
|---|---|---|---|---|
| Butterworth | None (Maximally Flat) | Moderate (-20n dB/dec) | Non-linear | Moderate overshoot |
| Chebyshev Type I | Yes (Adjustable) | Steep | Highly non-linear | Significant ringing |
| Bessel (Thomson) | None | Slow (Gentle) | Excellent (Linear) | No overshoot |
| Elliptic (Cauer) | Yes (Pass & Stop) | Extremely Steep | Poor | Severe ringing |
Frequently Asked Questions
How do I calculate the required order for a Butterworth filter transfer function?
You calculate the order (n) based on your required stopband attenuation (A_s in dB) and the ratio of your stopband frequency (ω_s) to your cutoff frequency (ω_c). The formula is: n ≥ log10(√(10^(A_s/10) - 1)) / log10(ω_s / ω_c). For example, if you need 40 dB of attenuation at 2 kHz, and your cutoff is 1 kHz, the math yields n ≥ 3.32. Since you cannot build a fractional-order analog filter, you round up to a 4th-order design (two cascaded 2nd-order Sallen-Key stages).
Why does my active Butterworth filter circuit oscillate or ring on the bench?
The most common culprit is ignoring the op-amp's Gain-Bandwidth Product (GBW). The Texas Instruments SLOA024 application note details this extensively. For an active filter to behave according to its theoretical transfer function, the op-amp's GBW must be at least 100 times the filter's cutoff frequency for a 2nd-order stage. If you try to build a 100 kHz Butterworth filter using an LM358 (GBW ≈ 1 MHz), the op-amp runs out of open-loop gain, the phase margin collapses, and the circuit will likely oscillate or severely peak at the cutoff. Upgrade to a higher-speed op-amp like the OPA350 (GBW ≈ 38 MHz).
Can I implement an analog Butterworth transfer function in an ESP32 or microcontroller?
Yes, by converting the continuous-time Laplace transfer function H(s) into a discrete-time Z-domain transfer function H(z). This is typically done using the Bilinear Transform (Tustin's method). Once you have H(z), you extract the coefficients and implement the filter as an IIR (Infinite Impulse Response) biquad in your C++ or MicroPython code. If you are using an ARM Cortex-M based MCU, look into the CMSIS-DSP library, which includes highly optimized, pre-calculated Butterworth biquad functions that handle the math and prevent the integer overflow issues common in naive DIY DSP implementations. For deeper theory on digital conversions, the DSP Guide Chapter 19 is the definitive free resource.






