Personal Projects

1 kHz Sallen-Key Low-Pass Filter

I designed and simulated a second-order, unity-gain Sallen-Key low-pass filter using LTspice. The goal was to place the cutoff frequency at 1 kHz and verify the result using an AC sweep and an automated measurement.

Why I built it

I wanted practice turning a target frequency response into component values, and then verifying that the circuit behaves the way the calculation predicts.

Circuit design

LTspice schematic of a unity-gain Sallen-Key low-pass filter with R1 = R2 = 10 kΩ, C1 = 22 nF, C2 = 11 nF, and a ±5 V op-amp supply

Figure 1. LTspice schematic of the Sallen-Key low-pass filter. The component values and op-amp supply connections are shown.

The math

For the values, I used R1 = R2 = 10kΩ, C1 = 22nF, and C2 = 11nF. With these values, the calculated cutoff frequency is about 1.02 kHz.

Handwritten calculation of the Sallen-Key cutoff frequency using R1 = R2 = 10 kΩ, C1 = 22 nF, and C2 = 11 nF, giving about 1.02 kHz

Figure 2. Hand calculation of the filter’s expected frequency using the selected resistor and capacitor values, giving approximately 1.02kHz.

Verification

I ran an AC sweep in LTspice to see how the filter responds as the input frequency increases. The full-range plot shows that the output stays relatively steady at low frequencies, then decreases at higher frequencies. This is the expected behavior of a low-pass filter.

I then zoomed in around the transition near 1 kHz. This view makes it easier to inspect where the output begins to fall toward the cutoff level, but the graph alone is not the most precise way to report the cutoff frequency.

LTspice Bode plot from 1 Hz to 100 kHz: the output is flat at low frequencies and rolls off above about 1 kHz

Figure 3. Full frequency response. The output is relatively flat at low frequencies and falls as frequency increases.

LTspice output log showing the .meas result: cutoff where mag(V(out)) = 0.70710678 at 1023.06 Hz

Figure 5. LTspice output log showing mag(V(out)) = 0.70710678 at 1,023.06 Hz.

Close-up LTspice Bode plot from 100 Hz to 10 kHz showing the magnitude falling through about −3 dB near 1 kHz

Figure 4. Close-up of the response near the cutoff, making the approximately −3 dB region easier to inspect.

Cutoff-frequency measurement

To measure the cutoff accurately, I used an LTspice .meas command to find the frequency where the output magnitude reached 0.70710678. That is approximately 70.7% of the passband amplitude, the usual −3.01 dB cutoff point. LTspice reported 1,023.06 Hz (1.023 kHz), which is close to my hand-calculated value of 1.02 kHz and the 1 kHz design target.

Enlarged line from the LTspice log: cutoff: mag(V(out)) = 0.70710678 at 1023.05854255 Hz

What I learned

  • How to choose component values from a target cutoff frequency.

  • How to draw a circuit in LTspice, run an AC sweep, and read the frequency response.

  • How to use a .meas command to get exact results instead of estimating from a graph.

  • How comparing simulation against hand calculations confirms a design.