An RC filter low pass is a passive resistor-capacitor network that allows low-frequency signals to pass through while attenuating high-frequency signals above a specific cutoff threshold. In a real circuit, this simple two-component arrangement fundamentally changes signal integrity: it transforms jagged digital PWM waveforms into smooth analog DC voltages, strips high-frequency electromagnetic interference (EMI) from sensitive analog sensor lines, and prevents aliasing artifacts in analog-to-digital converter (ADC) sampling.
The Core Mechanism and the Single Analogy
The filter works by exploiting the frequency-dependent reactance of a capacitor. In a standard configuration, the resistor is placed in series with the signal path, and the capacitor is placed in parallel to ground. The capacitor's reactance ($X_C$) is inversely proportional to frequency ($X_C = \frac{1}{2 \pi f C}$). At low frequencies (and DC), the capacitor's reactance is nearly infinite, acting like an open circuit that forces the signal to the output. At high frequencies, the reactance drops toward zero, effectively shorting the high-frequency noise to ground.
The Water Tank Analogy: Think of the resistor as a narrow pipe and the capacitor as a large water tank. If you pulse the water source rapidly on and off (high frequency), the tank's water level barely ripples because the narrow pipe restricts fast flow changes. If you pour a slow, steady stream (low frequency or DC), the tank fills and tracks the input level perfectly.
Worked Numeric Example: Smoothing ESP32 PWM to Analog DC
Let's look at a concrete bench scenario. You are using an ESP32 DevKit v1 to generate a 5 kHz PWM signal to simulate a 0–3.3V analog output for a motor controller. A raw 5 kHz PWM signal will cause the motor driver to whine and overheat; you need a clean DC voltage.
The Goal: Calculate the resistor (R) and capacitor (C) values to achieve a cutoff frequency ($f_c$) that smooths the 5 kHz carrier while allowing the underlying DC control voltage to update reasonably fast.
- Choose the Resistor: We select R = 10 kΩ. This is high enough to prevent excessive current draw from the ESP32 GPIO pin (at 3.3V, 10k draws only 0.33 mA, well below the 40 mA absolute max), but low enough to drive most high-impedance loads.
- Target the Cutoff Frequency: A good rule of thumb for PWM smoothing is to set $f_c$ to roughly 1/10th to 1/30th of the PWM frequency. Let's target $f_c = 160$ Hz.
- Calculate the Capacitor: Using the cutoff formula $f_c = \frac{1}{2 \pi R C}$, we rearrange for C: $$C = \frac{1}{2 \pi \times 10,000 \times 160} \approx 99.47 \text{ nF}$$
- Select the Standard Value: We round to the nearest standard E12 value: C = 100 nF (0.1 µF).
With R = 10 kΩ and C = 100 nF, your actual cutoff frequency is 159.15 Hz. The 5 kHz PWM carrier is attenuated by roughly -30 dB (reduced to about 3% of its original amplitude), yielding a very clean DC output with less than 15 mV of peak-to-peak ripple.
Where You Meet This in Practice (And Common Confusions)
You will encounter the RC filter low pass in almost every mixed-signal design. It is the standard front-end for ADC anti-aliasing, the final stage in DIY digital-to-analog converters, and the primary defense against RF interference on long sensor cables. However, builders frequently make three critical mistakes when implementing them.
Confusion 1: The '-3dB Brick Wall' Myth
Many hobbyists assume the cutoff frequency ($f_c$) is a 'brick wall' where all signals above that point are completely blocked. In reality, $f_c$ is merely the -3dB point, where the signal amplitude drops to 70.7% of its original value. A first-order RC filter rolls off at a gentle -20 dB per decade. If you need to aggressively block a 60 Hz mains hum while passing a 50 Hz audio signal, a single RC stage will not work; you need an active filter or an LC topology.
Confusion 2: Ignoring Load Impedance
The RC filter math assumes an infinite load impedance. If your 10 kΩ series resistor feeds into an ADC or a microcontroller input that has a 10 kΩ internal pull-down or sampling impedance, you have accidentally created a 50% voltage divider. Your 3.3V signal will now read as 1.65V at the pin. Always ensure your filter's series resistor is at least 10x to 100x smaller than the load impedance, or buffer it with an op-amp.
Confusion 3: Capacitor Dielectric Non-Linearities
Not all 100 nF capacitors are created equal. If you grab a standard X7R ceramic capacitor for an audio line-level RC filter, you will introduce severe distortion. X7R dielectrics exhibit piezoelectric microphonics (they act like tiny microphones) and their capacitance drops significantly under DC bias. For audio or precision DC filtering, you must specify C0G (NP0) dielectric capacitors, which remain linear regardless of voltage or temperature.
Component Selection Decision Tree
Use this decision matrix to select your exact component values and physical part types based on your specific application. Do not blindly copy values across different use cases.
| Application Scenario | Target Cutoff ($f_c$) | Resistor (R) | Capacitor (C) | Concrete Part Recommendation |
|---|---|---|---|---|
| ESP32 PWM to slow DC control (Motor speed, LED dimming) | ~150 Hz | 10 kΩ | 100 nF | R: Yageo RC0603FR-0710KL C: Murata GRM188R71H104KA93D (X7R is fine here) |
| PWM to Audio DAC (Line-level audio output, sine waves) | ~1.5 kHz (for 15kHz+ PWM) | 10 kΩ | 10 nF | R: Vishay CRCW060310K0FKEA C: Kemet C0603C103J5GACTU (Must be C0G/NP0) |
| ADC Anti-Aliasing (Protecting SAR ADCs from RF noise) | ~1.5 MHz | 100 Ω | 1 nF | R: 100Ω 0402 C: 1nF C0G 0402 (Keep R low to charge ADC sample-and-hold cap) |
| High-Current Power Supply (Smoothing 12V DC motor rails) | N/A (Use LC) | Do not use | Do not use | Use an LC filter (Inductor + Cap). An RC filter here will burn up the resistor. |
Pro-Tip for PCB Layout: When routing an RC low pass filter on a custom PCB, place the capacitor as physically close to the receiving IC pin as possible. The trace between the resistor and the capacitor acts as an antenna; keeping it short prevents high-frequency noise from bypassing the filter and coupling directly into the load.
Frequently Asked Questions
Why not just use a massive capacitor to get a lower cutoff frequency?
Using a 100 µF capacitor with a 10 kΩ resistor gives a 0.16 Hz cutoff, but it introduces two problems. First, the inrush current when the circuit powers on can stress the driving GPIO pin. Second, large electrolytic or tantalum capacitors suffer from high Equivalent Series Resistance (ESR) and dielectric absorption—a phenomenon where the capacitor 'remembers' previous voltages and slowly releases them, causing severe settling errors in precision measurement circuits.
Can I cascade two RC filters to get a sharper roll-off?
You can, but simply wiring two RC stages in series does not give you a true second-order (-40 dB/decade) response because the second stage loads the first stage, altering the math and flattening the curve. To properly cascade them, you must place a unity-gain op-amp buffer between the two RC stages to isolate their impedances.
What is the default 'safe' pick if I am just prototyping on a breadboard?
If you are debugging a noisy sensor line or testing a PWM output and just need a quick, safe filter without doing deep math, use a 10 kΩ resistor and a 100 nF (0.1 µF) ceramic capacitor. This yields a 159 Hz cutoff, which is low enough to kill most switching noise and 50/60 Hz mains hum, while drawing negligible current from any standard microcontroller GPIO or op-amp output.
For further reading on passive filter topologies and impedance matching, refer to the All About Circuits textbook chapter on low-pass filters. Always verify your final design with an oscilloscope to ensure the chosen dielectric and component tolerances meet your specific ripple requirements.






