A basic low pass filter is a circuit that allows low-frequency signals to pass through while attenuating (reducing) frequencies above a specific cutoff point.
The Core Mechanism: How a Basic Low Pass Filter Changes Your Signal
At the bench, the most common iteration of this circuit is the passive RC (Resistor-Capacitor) network. You place a resistor in series with your signal path and a capacitor in parallel (shunting to ground). What this changes in a real circuit is the frequency-dependent impedance profile. The resistor provides a fixed opposition to current, but the capacitor's reactance ($X_c$) drops as frequency increases.
When a high-frequency signal hits the circuit, the capacitor acts almost like a short circuit to ground, draining that high-frequency energy away from your load. When a low-frequency signal or DC voltage arrives, the capacitor acts like an open circuit, forcing the signal straight through to the output.
The Water Tank Analogy: Imagine a water supply pipe (the resistor) filling a large pressurized tank (the capacitor) that feeds a faucet (the load). If the supply pressure spikes rapidly up and down (high frequency), the tank absorbs those rapid fluctuations, and the water flowing out the faucet remains steady. But if the supply pressure slowly rises over an hour (low frequency), the tank tracks that change, and the faucet pressure rises with it.
The Math: Calculating Cutoff Frequency with Real Components
The cutoff frequency ($f_c$) is the exact point where the signal power drops by half, or roughly -3dB in voltage amplitude. The formula relies entirely on your chosen resistor and capacitor values:
$f_c = \frac{1}{2 \pi R C}$
Let's run a worked numeric example using standard bench components. Suppose you need to filter out high-frequency switching noise from a 5V analog sensor line, and you want to preserve signals up to roughly 150 Hz.
- Resistor (R): 10 kΩ (10,000 ohms)
- Capacitor (C): 100 nF (0.1 µF, or 0.0000001 Farads)
Plugging these into the formula:
$f_c = \frac{1}{2 \times 3.14159 \times 10000 \times 0.0000001}$
$f_c = \frac{1}{0.006283}$
Cutoff Frequency = 159.15 Hz
Any signal above 159.15 Hz will be progressively attenuated at a rate of -20 dB per decade (a first-order roll-off). For a deeper dive into the derivation of this transfer function, the All About Circuits AC theory chapter on filters provides an excellent mathematical breakdown.
Where You Meet This in Practice
You will rarely build an RC filter just for the sake of theory. Here is where they solve actual hardware problems:
- PWM to Analog Conversion: Microcontrollers like the ESP32 or Arduino output Pulse Width Modulation (PWM) to simulate analog voltages. A low pass filter smooths the square wave's rapid transitions into a flat DC voltage proportional to the duty cycle.
- Anti-Aliasing for ADCs: Before feeding a noisy analog sensor into an Analog-to-Digital Converter, a low pass filter strips out RF interference and high-frequency noise that could fold back into your digital sampling band.
- Audio Crossovers: In speaker builds, inductors and capacitors form low pass filters to route only bass frequencies to the subwoofer, protecting it from high-frequency distortion.
Bench Scenario: Fixing PWM Audio Hiss on an ESP32
Theory is clean; the workbench is not. Here is a real-world scenario demonstrating how a basic low pass filter behaves when subjected to physical loads.
The Setup: I was building a retro-style synthesizer using an ESP32-WROOM-32. The microcontroller generates audio via the LEDC peripheral (PWM), which I needed to convert to an analog audio signal to drive a small 8-ohm speaker through a basic amplifier stage. The raw PWM output sounded like a harsh, whining buzz overlaid on the actual music notes.
The Numbers: I configured the ESP32 LEDC timer for a 5 kHz PWM frequency. Human hearing tops out around 20 kHz, but for a lo-fi synth, I only needed to pass audio up to 3 kHz. I wanted to kill the 5 kHz carrier wave. I chose a 1 kΩ resistor and a 100 nF capacitor.
$f_c = \frac{1}{2 \pi \times 1000 \times 0.0000001} = 1591.5 \text{ Hz}$
The Outcome: I soldered the 1k resistor and 100nF cap directly to the GPIO pin and fed the output into the speaker amplifier. The 5 kHz whine vanished completely. However, the high-end audio (cymbals and high synth notes) sounded incredibly muffled and weak.
What Went Wrong: I fell victim to impedance loading. The formula $f_c = \frac{1}{2 \pi R C}$ assumes the filter is driving an infinite impedance load (like an op-amp input). Instead, I was effectively driving an 8-ohm speaker load. The 8-ohm load was in parallel with my capacitor, completely altering the circuit's voltage divider ratio and dragging the actual cutoff frequency and signal amplitude down into the mud.
The Fix: Never drive a low-impedance load directly from a passive RC filter. I removed the direct connection and added an LM358 dual op-amp configured as a unity-gain buffer between the filter and the amplifier. The op-amp's high input impedance (over 1 MΩ) allowed the RC filter to operate exactly at the calculated 1.59 kHz cutoff, while its low output impedance easily drove the amplifier stage. The audio was crisp, and the 5 kHz carrier was entirely gone.
Common Confusions: Low Pass vs. High Pass and Ferrite Beads
When troubleshooting noise, makers often grab the wrong component. Here is how the basic low pass filter compares to similar noise-reduction tactics.
| Feature | RC Low Pass Filter | Ferrite Bead (Inductive) | High Pass Filter |
|---|---|---|---|
| Primary Component | Capacitor (shunts high freq to ground) | Ferrite core (dissipates high freq as heat) | Capacitor (blocks DC, passes high freq) |
| Best Used For | Smoothing PWM, precise audio crossovers, ADC anti-aliasing | Killing broadband EMI/RFI on power cables and USB lines | Removing DC offset from audio signals, AC coupling |
| Signal Attenuation | Predictable -20dB/decade mathematical roll-off | Non-linear; depends on bead impedance curve at specific MHz ranges | Predictable roll-off of low frequencies |
| DC Behavior | Passes DC voltage perfectly | Passes DC with near-zero resistance | Completely blocks DC voltage |
People frequently confuse an RC low pass filter with a ferrite bead because both 'clean up' noisy signals. The distinction is precision. If you need a mathematically predictable cutoff to convert a 5 kHz square wave into a DC voltage, you need an RC filter. If you just want to stop a switching power supply from radiating 50 MHz noise back into your mains, you use a ferrite bead. For complex active filter topologies, the Analog Devices Filter Wizard is an invaluable tool for calculating exact component values beyond simple first-order RC networks.
Frequently Asked Questions
Can I just use a larger capacitor to make the filter 'better'?
No. Increasing the capacitor value lowers the cutoff frequency. If you are filtering a PWM signal to get a DC voltage, a massive capacitor (like 10 µF) will smooth the ripple beautifully, but it will drastically increase the 'rise time.' If your microcontroller tries to change the output voltage from 1V to 4V, a massive capacitor will take several milliseconds to charge through the resistor, turning a snappy analog response into a sluggish, sloping ramp. Always balance ripple reduction with response time.
Why does my low pass filter ring or oscillate?
A basic passive RC filter is a first-order system and is mathematically incapable of ringing or oscillating; it only rolls off. If you are seeing ringing (overshoot and bounce) on your oscilloscope, you are likely dealing with parasitic inductance from long component leads, or you have accidentally built an RLC (Resistor-Inductor-Capacitor) circuit where the inductance of your wiring or load is interacting with the capacitor. Keep lead lengths short and place the capacitor as physically close to the load or ground plane as possible.






