An active first order low pass filter is an electronic circuit that uses an operational amplifier (op-amp) alongside a single resistor-capacitor (RC) network to pass low-frequency signals while attenuating high-frequency signals above a specific cutoff point, providing voltage gain and preventing load impedance from altering the filter's response. If you are trying to strip high-frequency switching noise off a slow-moving analog sensor before it hits your microcontroller's ADC, or if you need to buffer a DAC output, this is the exact topology you build on the bench.
The Core Spec Sheet: Component Values and Cutoff Frequencies
Before we run the math, here is a data-dense reference table for standard E24 resistor and E6 capacitor combinations. Use this to quickly select your physical components based on your target cutoff frequency ($f_c$). The formula governing these values is $f_c = \frac{1}{2 \pi R C}$.
| Target Cutoff ($f_c$) | Resistor (R) | Capacitor (C) | Actual $f_c$ | Primary Application Context |
|---|---|---|---|---|
| 10 Hz | 160 kΩ | 100 nF | 9.95 Hz | DC sensor stabilization, thermocouple filtering |
| 160 Hz | 10 kΩ | 100 nF | 159.1 Hz | Mains hum (50/60Hz) harmonic rejection |
| 1 kHz | 16 kΩ | 10 nF | 994.7 Hz | Audio crossovers, ADC anti-aliasing |
| 20 kHz | 8.2 kΩ | 1 nF | 19.4 kHz | Ultrasonic noise rejection, DAC smoothing |
Worked Numeric Example: Designing a 1 kHz Anti-Aliasing Filter
Let’s build a practical filter for an ESP32 microcontroller. The ESP32’s internal ADC is notoriously noisy due to its internal sampling capacitor kicking back charge onto the input pin. We need an active first order low pass filter set to roughly 1 kHz to smooth the signal and provide a low-impedance drive to the ADC pin.
Step 1: Choose the Capacitor
For a 1 kHz audio-range filter, we want to avoid electrolytic capacitors due to their poor tolerance and leakage. We will select a standard C0G/NP0 ceramic capacitor. Let’s choose C = 10 nF (0.01 μF).
Step 2: Calculate the Resistor
Rearranging the cutoff formula to solve for R:
$R = \frac{1}{2 \pi f_c C}$
$R = \frac{1}{2 \times \pi \times 1000 \text{ Hz} \times 10 \times 10^{-9} \text{ F}}$
$R = 15,915 \Omega$
Step 3: Select Standard Values and Verify
The closest standard E24 resistor value is 16 kΩ. Plugging this back in gives us an actual cutoff frequency of 994.7 Hz, which is well within the typical 5% tolerance of our components.
Step 4: Configure the Op-Amp for Gain and Buffering
We will use a non-inverting amplifier configuration. To set a voltage gain of 2 (useful if our sensor outputs a 0-1.5V signal and we want to scale it to the ESP32's 0-3.0V range), we use the gain formula $A_v = 1 + \frac{R_f}{R_g}$. By setting both the feedback resistor ($R_f$) and the ground resistor ($R_g$) to 10 kΩ, we achieve a stable gain of 2.
Physics Analogy: Think of the capacitor in the RC network like a flexible rubber membrane in a water pipe. Slow, steady pressure changes (low frequencies/DC) push the membrane and transfer energy to the other side, but rapid, high-frequency vibrations just bounce off the membrane without passing through.
Where You Meet This In Practice
You will encounter this topology anywhere a clean, isolated signal is required before digitization or amplification. According to Analog Devices Tutorial MT-070, failing to properly filter and buffer signals before an ADC results in aliasing, where high-frequency noise folds back into your measurement band as false low-frequency data.
- ADC Anti-Aliasing: Placed directly before a microcontroller's analog input. The op-amp provides the instantaneous burst of current required to charge the ADC's internal sample-and-hold capacitor without causing the input voltage to droop.
- Audio Subwoofer Crossovers: Used to strip high-frequency treble signals before they reach a power amplifier driving a subwoofer. (Note: Audio often uses 2nd-order filters for steeper roll-off, but 1st-order is used in minimalist or specific phase-aligned designs).
- PWM to DAC Smoothing: If you are using an Arduino or ESP32 to generate a pseudo-analog voltage via PWM, a 1st-order active filter smooths the square wave into a relatively clean DC voltage, while the op-amp ensures the voltage doesn't sag when you connect a motor driver or LED array.
Common Confusions and the Passive vs. Active Showdown
The most common mistake hobbyists make is confusing an active filter with a passive RC filter, or assuming a first-order filter will completely eliminate high-frequency noise. A first-order filter has a roll-off of -20 dB per decade (or -6 dB per octave). This means if your cutoff is 1 kHz, a 10 kHz noise signal is only attenuated to about 10% of its original amplitude. If you need aggressive noise rejection, you need a second-order (-40 dB/decade) Sallen-Key topology.
| Feature | Passive 1st Order RC | Active 1st Order (Op-Amp) | Active 2nd Order (Sallen-Key) |
|---|---|---|---|
| Components | 1 Resistor, 1 Capacitor | 1 R, 1 C, 1 Op-Amp, Gain Resistors | 2 R, 2 C, 1 Op-Amp |
| Voltage Gain | None (Always < 1) | Adjustable (e.g., 1 to 100+) | Adjustable |
| Load Isolation | Poor (Load shifts $f_c$) | Excellent (Op-amp buffers) | Excellent |
| Roll-off Rate | -20 dB/decade | -20 dB/decade | -40 dB/decade |
| Power Required | No | Yes (VCC/VEE rails) | Yes |
Frequently Asked Questions
Can I chain two first-order active filters together to get a second-order response?
Yes, but it is generally inefficient. Cascading two identical first-order filters does not yield a standard Butterworth or Chebyshev response; the -3dB point shifts, and the Q-factor is fixed at 0.5, resulting in a sluggish roll-off near the cutoff frequency. If you need a proper second-order response, use a dedicated Sallen-Key topology, which allows you to tune the Q-factor by adjusting the component ratios (All About Circuits provides excellent Sallen-Key design tables).
Why is my active filter outputting a DC offset when the input is grounded?
This is caused by the op-amp's input bias current flowing through your high-value resistors, creating a voltage drop that the op-amp amplifies. If your filter uses a 1 MΩ resistor, even a tiny bias current of 100 nA will generate a 100 mV offset. To fix this, scale your R and C values down (e.g., use 10 kΩ and 100 nF instead of 1 MΩ and 1 nF) to keep the impedance low, or select an op-amp with CMOS inputs that feature picoamp-level bias currents.






