A low pass filter is an electronic circuit that allows signals with a frequency lower than a specific cutoff point to pass through while attenuating frequencies higher than that point. In a real circuit or installation, it changes a jagged, noisy, or pulsed voltage into a smooth, steady DC level or a clean baseline waveform by shunting high-frequency AC components to ground. Whether you are cleaning up a sensor reading on an Arduino or building an audio crossover, understanding how to manipulate frequency response is a foundational bench skill.

The Core Mechanism: How a Passive RC Low Pass Filter Works

The most common and simplest implementation is the passive RC (Resistor-Capacitor) low pass filter. In this configuration, the resistor is placed in series with the signal path, and the capacitor is placed in parallel, bridging the signal line and ground.

To visualize the physics, think of the resistor as a narrow pipe restricting water flow, and the capacitor as a flexible rubber bladder tank attached to the side of the pipe. Slow, steady changes in water pressure (low frequency) easily fill and empty the bladder, passing through the system downstream. But rapid, high-frequency pressure spikes just bounce off the bladder's inertia, getting absorbed and smoothed out rather than passing down the line.

Electrically, this works because of capacitive reactance ($X_c$). The formula for reactance is $X_c = 1 / (2\pi f C)$. Notice that frequency ($f$) is in the denominator. As the frequency of the signal increases, the capacitor's resistance to AC current drops. At high frequencies, the capacitor acts almost like a short circuit to ground, draining the high-frequency noise away from your output. At DC (0 Hz) or very low frequencies, the capacitor's reactance is essentially infinite, allowing the signal to pass through the resistor to the output unimpeded.

Bench Tip: Always check the dielectric type of your capacitor. For audio or precision sensor filtering, use C0G/NP0 ceramic or film capacitors. Avoid X7R or Y5V ceramics in the signal path, as their capacitance drops significantly under applied DC bias voltage and they introduce microphonic noise.

Worked Numeric Example: Designing a 3.4 kHz Audio Filter

Let's design a first-order RC low pass filter to act as an anti-aliasing filter for a voice audio signal feeding into an ADC (Analog-to-Digital Converter). Human speech intelligibility mostly sits below 3.4 kHz, so we want to set our cutoff frequency ($f_c$) exactly there to prevent higher-frequency noise from folding back into our digital sample.

The governing equation for the -3dB cutoff frequency is:

$f_c = 1 / (2\pi R C)$

First, we select a standard resistor value that won't load down our previous op-amp stage but won't introduce excessive thermal (Johnson-Nyquist) noise. Let's choose R = 10 kΩ (10,000 Ω).

Now, we rearrange the formula to solve for the capacitor (C):

$C = 1 / (2\pi \times R \times f_c)$

$C = 1 / (2\pi \times 10,000 \times 3,400)$

$C = 1 / 213,628,300 \approx 4.68 \times 10^{-9}$ Farads, or 4.68 nF.

Design Result: Target Cutoff: 3,400 Hz | Resistor: 10 kΩ | Nearest Standard Capacitor: 4.7 nF (C0G Ceramic)
Actual Cutoff with 4.7 nF: $f_c = 1 / (2\pi \times 10,000 \times 4.7 \times 10^{-9}) = $ 3,386 Hz

Because this is a first-order filter, it has a roll-off rate of -20 dB per decade (or -6 dB per octave). Here is how the signal degrades as frequency increases past our 3,386 Hz cutoff:

Frequency Multiple Actual Frequency Attenuation (dB) Voltage Output (% of Input)
0.1 × $f_c$ 338 Hz -0.04 dB 99.5%
1.0 × $f_c$ (Cutoff) 3,386 Hz -3.01 dB 70.7%
10 × $f_c$ 33,860 Hz -20.0 dB 10.0%
100 × $f_c$ 338,600 Hz -40.0 dB 1.0%

For deeper attenuation, engineers cascade multiple stages or use active topologies like the Sallen-Key architecture to achieve -40 dB/decade or steeper roll-offs.

Where You Meet This in Practice

You will encounter low pass filters constantly across different domains of electronics. Here are the three most common real-world applications:

  • PWM to Analog DAC Conversion: Microcontrollers like the ESP32 or ATmega328P (Arduino Uno) often lack true analog outputs. Instead, they output a high-frequency Pulse Width Modulation (PWM) square wave. If you output a 5 kHz PWM signal at a 50% duty cycle, it toggles rapidly between 0V and 3.3V. By passing this through a low pass filter (e.g., a 1 kΩ resistor and a 10 µF capacitor), the high-frequency 5 kHz carrier is shunted to ground, leaving behind a smooth, steady 1.65V DC analog signal.
  • Sensor Signal Conditioning: When reading a slow-changing DC signal from a thermistor or a strain gauge load cell, long wire runs act as antennas, picking up 50/60 Hz mains hum and high-frequency radio frequency interference (RFI). A low pass filter set to a 10 Hz cutoff will completely ignore the 60 Hz AC noise while perfectly tracking the slow temperature or weight changes.
  • Active Audio Crossovers: In powered speaker systems, an active low pass filter built around an op-amp (like the NE5532 or TL072) feeds the subwoofer amplifier. It aggressively cuts off all frequencies above 80 Hz, ensuring the subwoofer only receives the bass energy it was designed to reproduce, protecting the voice coil from thermal damage caused by mid-range frequencies.

Common Confusions: What People Get Wrong

When diagnosing circuits, it is critical to separate true low pass filters from other components that look similar on a schematic but behave differently.

Confusion 1: Ferrite Beads vs. RC Low Pass Filters. Many hobbyists assume a ferrite bead on a USB cable or power line is a low pass filter. It is not. A ferrite bead is a lossy, frequency-dependent inductor. Instead of shunting high frequencies to ground via capacitive reactance, a ferrite bead converts high-frequency EMI into trace amounts of heat. It suppresses noise, but it does not create a predictable -3dB cutoff frequency like an RC network.

Confusion 2: 'Blocking DC' vs 'Passing DC'. Beginners frequently mix up low pass and high pass filters. Remember: a low pass filter passes DC (0 Hz) perfectly because the capacitor blocks DC from bleeding to ground. A high pass filter blocks DC by placing a capacitor in series with the signal path.

Confusion 3: The Cutoff Frequency is a 'Brick Wall'. The cutoff frequency ($f_c$) does not mean the signal drops to zero volts. As shown in the table above, at the exact cutoff frequency, the signal is only attenuated by -3dB (meaning the voltage drops to 70.7% of its original value). If you need a signal completely eliminated at a specific frequency, your cutoff must be set significantly lower than the target noise frequency.

Frequently Asked Questions

What's a low pass filter used for in an ESP32 or Arduino circuit?

In microcontroller projects, a low pass filter is primarily used to convert digital PWM outputs into smooth analog DC voltages for driving analog gauges, controlling motor speeds via external drivers, or generating basic sine waves. It is also used on analog inputs (like the ESP32's ADC pins, which are notoriously noisy) to average out high-frequency switching noise from onboard Wi-Fi radios or switching regulators before the microcontroller samples the voltage.

How do I calculate the cutoff frequency for an LC low pass filter?

While RC filters are standard for low-current signals, LC (Inductor-Capacitor) filters are used in high-current power supplies because inductors do not drop DC voltage like resistors do. The formula for an LC low pass filter cutoff frequency is $f_c = 1 / (2\pi\sqrt{LC})$. For example, a 10 µH inductor and a 100 µF capacitor yield a cutoff of roughly 5,032 Hz, making it ideal for filtering the 100 kHz+ switching noise from a buck converter while passing the high-current DC load.

Why does my low pass filter output look like a triangle wave instead of flat DC?

If your output looks like a triangle or sawtooth wave, your filter's cutoff frequency is too close to the frequency of the input signal, meaning you are seeing the capacitor's charge/discharge curve (ripple). To fix this, you must lower the cutoff frequency by increasing either the resistor or the capacitor value. As a rule of thumb for PWM smoothing, the RC time constant ($\tau = R \times C$) should be at least 10 times longer than the period of the PWM signal to achieve a visually flat DC line on an oscilloscope.

Can I just use a bigger capacitor to make the DC smoother?

Increasing the capacitor value will lower the cutoff frequency and smooth the output, but there are trade-offs. A massive capacitor (e.g., 1000 µF) paired with a high-value resistor will result in a very slow 'step response'—meaning if your microcontroller changes the PWM duty cycle, it might take several seconds for the output voltage to settle at the new level. Furthermore, large electrolytic capacitors have high Equivalent Series Resistance (ESR) and poor high-frequency performance. It is almost always better to use a smaller, high-quality ceramic capacitor and add a second RC stage (a two-stage filter) than to simply drop in a massive electrolytic capacitor.