A resistor and a capacitor in series make the most useful filter in electronics: the RC low-pass filter. It passes low frequencies almost untouched and steadily blocks higher ones — it smooths power-supply ripple, removes noise from sensor signals, and sets the treble roll-off in audio circuits. This post explains why it works, derives the cutoff frequency, and works a complete example with a 1 kHz cutoff.
Figure 1: The RC low-pass filter (a), and its frequency response (b). The gain is flat at low frequency, −3 dB at the cutoff, then falls 20 dB for every ×10 of frequency. (Schematic, not to scale.)
Why it works — capacitive reactance
The capacitor's reactance depends on frequency: XC = 1 / (2Ï€fC). At low frequency XC is huge, so almost all of the input voltage appears across the capacitor — the output. At high frequency XC is tiny, so the output collapses toward zero. The resistor and capacitor form a frequency-dependent voltage divider, with Vout taken across the capacitor:
Gain = Vout / Vin = XC / √(R² + XC²)
The cutoff frequency
The cutoff (or −3 dB) frequency is where XC equals R. At that point the gain is 1/√2 = 0.707, the output power is half the input power, and the output lags the input by 45°:
fc = 1 / (2Ï€RC)
The same R and C also set the time constant Ï„ = R × C, which is how the filter responds to sudden changes — the step-response twin of the frequency response.
Worked example — a 1 kHz low-pass filter
Design a filter with R = 1.6 kΩ and C = 100 nF, driven by a 1 V sine wave.
Step 1 — cutoff frequency: fc = 1 / (2Ï€ × 1600 × 100 × 10−9) = 1 / (1.005 × 10−3) = 995 Hz — about 1 kHz. The time constant is Ï„ = 1600 × 100 × 10−9 = 160 µs.
Step 2 — 100 Hz (well below cutoff): XC = 1 / (2Ï€ × 100 × 100 × 10−9) = 15,915 Ω. Gain = 15915 / √(1600² + 15915²) = 0.995 (−0.04 dB), so Vout = 0.995 V. The 100 Hz signal passes almost untouched; it lags the input by only arctan(2Ï€ × 100 × 1600 × 100 × 10−9) = 5.7°.
Step 3 — 1 kHz (at the cutoff): XC = 1 / (2Ï€ × 1000 × 100 × 10−9) = 1,592 Ω, almost exactly R. Gain = 1592 / √(1600² + 1592²) = 0.705 (−3.03 dB), so Vout = 0.705 V, and the phase lag is 45°.
Step 4 — 10 kHz (ten times the cutoff): XC = 159 Ω. Gain = 159 / √(1600² + 159²) = 0.099 (−20.1 dB), so Vout = 0.099 V — the signal is cut to a tenth. The phase lag is now 84.3°. Every ×10 of frequency past the cutoff costs another 20 dB: at 100 kHz the output would be about 0.01 V.
Design notes
To design a filter, pick the cutoff you need and choose R and C from fc = 1 / (2Ï€RC). A practical starting point is C = 100 nF, then R = 1 / (2Ï€ × fc × C). Keep R between about 1 kΩ and 100 kΩ: below 1 kΩ the filter loads the source, above 100 kΩ stray capacitance and noise start to matter. If you need a sharper cut-off than 20 dB per decade, cascade two RC stages — but put a buffer (an op-amp follower) between them, or the second stage will load the first and shift the cutoff.
Key points to remember
- An RC low-pass filter takes the output across the capacitor: low frequencies pass, high frequencies are blocked, because XC = 1 / (2Ï€fC) falls with frequency.
- Cutoff frequency fc = 1 / (2Ï€RC); at fc the gain is 0.707 (−3 dB) and the phase lag is 45°.
- Worked example: R = 1.6 kΩ, C = 100 nF → fc = 995 Hz, Ï„ = 160 µs; a 1 V input gives 0.995 V at 100 Hz, 0.705 V at 1 kHz and 0.099 V at 10 kHz.
- Beyond the cutoff the gain falls 20 dB per decade — ×10 frequency, ÷10 output.
- Design with R between 1 kΩ and 100 kΩ, and buffer between stages if you cascade two filters.
