RC Filter Calculator — Cutoff Frequency & Bode Plot
Cutoff frequency, time constant and rise time for a single-pole RC low-pass or high-pass, with the gain and phase at any test frequency plotted on a live Bode chart.
Inputs
Filter type
Low-pass: series R, shunt C, output across C. High-pass: series C, shunt R, output across R.
Ω
Accepts 4k7, 1k, 220, 2M2. Include the source impedance if it is significant.
F
Accepts 100n, 1u5, 10p, 4n7 — the codes printed on the part.
Hz
The frequency the gain and phase readouts are evaluated at. Accepts 1k, 22k05, 50.
Results
Cutoff frequency1.592 kHzfc = 1 / (2πRC)
Time constant
100 µsτ = R × C
Gain at test frequency
-1.45 dB20 log₁₀ |H(f)|
Phase at test frequency
-32.1 °φ = ∓arctan(f/fc)
Rise time (10–90 %)
219.7 µstr = ln(9)·τ ≈ 0.35/fc
Cutoff (−3 dB) at 1.592 kHz, where the output is 1/√2 = 70.7 % of the input in amplitude and exactly half the power. Time constant τ = 100 µs.
One pole: above the corner the response falls at 20 dB/decade (6 dB/octave). A decade above 1.592 kHz the filter is roughly 20 dB down; two decades above, 40 dB. If you need a steeper skirt you need more poles, not a bigger capacitor.
At 1.000 kHz the low-pass gives -1.45 dB (×0.847) with -32.1° of phase lag.
Step response: the output settles exponentially with τ = 100 µs, reaching 63 % in one τ and 99 % in five. The 10 %–90 % rise time is ln(9)·τ = 220 µs, the usual 0.35/fc rule.
Figures assume an ideal voltage source and an unloaded output. A real source resistance adds to R, and a real load resistance shunts it — either one moves the corner.
The test frequency sits within an octave of the corner, where the response is curved and the asymptotes are a poor guide. Phase is changing fastest here — about 65° per decade.
Diagram
Worked examples
Anti-alias filter for a 44.1 kHz audio ADC
A 1 kΩ / 8.2 nF section in front of an audio converter, set to pass the 20 kHz audio band. Checked at the 22.05 kHz Nyquist frequency, which is where aliasing starts.
fc = 19.4 kHz, but only −3.60 dB at 22.05 kHz — a single pole is a guard, not a real anti-alias filter. Oversample or use a higher-order filter.
Arduino ADC noise filter (1 kΩ + 1 µF)
Cleaning up a slow sensor signal before an ATmega ADC input. 1 kΩ keeps the source impedance well inside the 10 kΩ the sample-and-hold capacitor needs.
fc = 159 Hz, τ = 1 ms. 1 kHz switching noise is knocked down 16.1 dB (×0.157) and the reading settles in about 5 ms.
PWM to analogue: smoothing 490 Hz PWM
Turning the default Arduino 490 Hz PWM output into a DC level. The corner has to sit far below the PWM frequency, and the price is settling time.
fc = 1.59 Hz, so the 490 Hz ripple is cut by 49.8 dB (×0.0032) — but the output needs 220 ms to slew 10–90 %, and half a second to fully settle.
Switch debounce (10 kΩ + 100 nF)
The classic RC debounce ahead of a Schmitt-trigger input. Mechanical contact chatter typically lasts 1–5 ms, so τ has to be the same order.
τ = 1 ms, fc = 159 Hz. Bounce energy around 500 Hz is attenuated 10.4 dB, and a genuine press takes 2.2 ms to cross the threshold — invisible to a human, decisive to a microcontroller.
AC coupling a microphone preamp (high-pass)
A 1 µF series capacitor into a 100 kΩ bias resistor, blocking DC offset while passing the audio band. Checked at 20 Hz, the bottom of hearing.
fc = 1.59 Hz, so 20 Hz passes at −0.03 dB with only 4.6° of phase lead, and DC is blocked completely.
How an RC filter works
When to use this: reach for an RC filter whenever you need to get rid of something that is faster than the signal you care about, or slower than it. Smoothing PWM into a DC level, keeping switching noise out of an ADC, debouncing a mechanical switch, AC coupling a microphone, cleaning up a sensor line — all of them are the same two components and the same single equation.
The whole thing rests on one property of a capacitor: its opposition to current depends on frequency. At DC a capacitor is an open circuit. At very high frequency it behaves like a piece of wire. In between, its reactance is X_C = 1/(2πfC) — halving every time the frequency doubles. Put a resistor in series with a capacitor and you have built a voltage divider whose ratio changes with frequency, which is the definition of a filter.
Where you take the output decides which half you keep. Tap the junction across the capacitor and you get a low-pass: at low frequency the capacitor’s reactance is enormous compared with R, so almost the whole input appears at the output; at high frequency the reactance collapses and the capacitor drags the output towards ground. Tap across the resistor instead — with the capacitor in series — and you get a high-pass, with DC blocked completely and fast signals passed through.
The transition is not a cliff. It is a smooth bend, and the conventional place to say the filter “starts working” is the cutoff or corner frequency, where the resistance and the reactance happen to be equal. Set R = 1/(2πfC), solve for f, and the entire calculator falls out of that one line.
The formula, with every variable defined
fc = 1 / (2 × π × R × C) τ = R × C fc = 1 / (2 × π × τ)
Symbol
Quantity
Unit
What it means in practice
fc
Cutoff (corner, −3 dB) frequency
hertz (Hz)
Where output amplitude has fallen to 70.7 % of input and power to 50 %
R
Series (or shunt) resistance
ohms (Ω)
Includes the source impedance if that is not negligible
C
Capacitance
farads (F)
Real parts are nF and µF; type 100n or 1u5 directly
τ
Time constant, “tau”
seconds (s)
Time to cover 63.2 % of a step change
f
Test frequency
hertz (Hz)
The frequency you are asking about — the noise, the carrier, the signal edge
|H|
Voltage gain magnitude
ratio (or dB)
Output amplitude ÷ input amplitude at frequency f
φ
Phase shift
degrees (°)
How far the output lags (low-pass) or leads (high-pass) the input
The frequency response itself, in the two arrangements:
Substitute f = fc into either one and you get |H| = 1/√2 = 0.7071, which in decibels is 20 · log₁₀(0.7071) = −3.0103 dB, with a phase of exactly −45° for the low-pass and +45° for the high-pass. That is not a rounded figure or an engineering approximation; it is what the algebra returns. If a filter calculator gives you anything else at the corner, it is wrong.
Reading the Bode plot
The plot above is drawn the way filter responses have been drawn since Hendrik Bode’s work at Bell Labs in the 1930s: magnitude in decibels on a linear axis, frequency on a logarithmic one. Doing it that way turns the response into two straight lines and a bend, which is why engineers can sketch a filter response on a napkin.
The dashed asymptotes are those straight lines. On the passband side the asymptote is flat at 0 dB. On the stopband side it falls at 20 dB per decade — equivalently 6.02 dB per octave — and the two meet exactly at fc. The real curve hugs both asymptotes and sags 3 dB below their intersection. One decade past the corner the curve and the asymptote agree to within 0.04 dB, so past that point the straight line is the response for all practical purposes.
The phase panel is the part people forget. Phase shift starts a full decade before the corner (about 5.7°), passes through ∓45° at fc, and has still not quite reached ∓90° a decade after. It changes fastest at the corner, at roughly 65° per decade. If your filter sits inside a feedback loop, that phase — not the attenuation — is what eats your phase margin and makes the loop ring or oscillate.
Worked design examples
Smoothing PWM into an analogue voltage
An Arduino outputs 8-bit PWM at 490 Hz on most pins. To turn that into a usable DC level you need the ripple down far enough that the remaining wobble is smaller than one LSB — roughly 1/256, or −48 dB. Picking 10 kΩ and 10 µF:
So the ripple is comfortably below one LSB — and the output takes about half a second to settle after a duty-cycle change. That trade is unavoidable with one pole: ripple rejection and response time pull in opposite directions. If you need both, raise the PWM frequency (the far cheaper fix) or use two cascaded sections.
An anti-alias filter that is not good enough
A 1 kΩ / 8.2 nF section in front of a 44.1 kHz audio ADC gives fc = 19.4 kHz, which sounds right — it passes the audio band. But check it at the 22.05 kHz Nyquist frequency:
Three and a half decibels. Anything above Nyquist folds back into the audio band essentially unattenuated. This is the single most instructive thing about first-order filters: a −20 dB/decade skirt cannot separate a signal from noise that sits nearby in frequency. Real converters solve it by oversampling — sample at 4× or 64× the rate, put the corner far below the new Nyquist point, and let a digital filter do the sharp work.
Debouncing a switch
Mechanical contacts chatter for 1–5 ms after they close. A 10 kΩ / 100 nF network gives τ = 1 ms and fc = 159 Hz, so bounce energy around 500 Hz is attenuated 10.4 dB and, more to the point, the voltage takes 2.2 ms to cross from 10 % to 90 %. That is slow enough to ride straight over the chatter and fast enough that no human notices. Feed it into a Schmitt-trigger input (a 74HC14 or a microcontroller pin configured for it) — a slow edge into an ordinary logic input can oscillate as it crosses the threshold, which reintroduces the exact problem you were trying to remove.
Common values reference
Pairs you will meet constantly. Everything here is E12/E24 resistor values with E6 capacitors, so all of it is buildable from a normal parts drawer:
R
C
fc
τ
Typical use
1 kΩ
10 nF
15.9 kHz
10 µs
Ultrasonic / RF noise off an audio line
4.7 kΩ
10 nF
3.39 kHz
47 µs
Speech-band roll-off, I²C rise-time shaping
10 kΩ
10 nF
1.59 kHz
100 µs
General signal conditioning — the default here
10 kΩ
100 nF
159 Hz
1 ms
Switch debounce, slow sensor smoothing
1 kΩ
1 µF
159 Hz
1 ms
Same corner, low impedance — better ahead of an ADC
10 kΩ
1 µF
15.9 Hz
10 ms
Mains-hum rejection, thermistor smoothing
100 kΩ
1 µF
1.59 Hz
100 ms
AC coupling an audio stage (high-pass)
10 kΩ
10 µF
1.59 Hz
100 ms
PWM-to-analogue smoothing
Notice that 10 kΩ + 100 nF and 1 kΩ + 1 µF give the identical corner. Only the product RC sets fc — but the split matters enormously for how the circuit behaves in a real board, which is the next section.
Choosing R and C: what the split costs you
Given a target fc there are infinitely many R/C pairs. Three constraints usually decide it.
What drives the filter. A small R loads the previous stage. An op-amp output or a logic pin generally wants to see 1 kΩ or more; below about 100 Ω you are asking for current the driver may not have.
What the filter drives. Any load resistance sits in parallel with the capacitor and shifts the corner. If the next stage is a 10 kΩ input and your R is 10 kΩ, you have built something quite different from what you calculated. Buffer it, or make R at least ten times smaller than the load.
Noise and leakage. A resistor generates Johnson noise proportional to √R — about 13 nV/√Hz for 10 kΩ at room temperature, and four times that for 160 kΩ. Large resistors also let op-amp bias current and board leakage create DC offsets. Above roughly 1 MΩ, be deliberate about it.
Capacitor type matters as much as value. C0G/NP0 ceramics and film capacitors are stable and low-loss and belong in signal paths. X7R ceramics can lose 30–70 % of their rated capacitance under DC bias and are microphonic — usable for supply decoupling, poor for setting a corner frequency. Electrolytics are polarised, tolerate −20 %/+80 %, and have meaningful ESR. And remember that a ±20 % capacitor with a ±1 % resistor still gives you a ±20 % cutoff frequency: it is nearly always the capacitor that moves your corner.
RC versus LC versus active filters
RC (passive)
LC (passive)
Active (op-amp)
Roll-off per section
20 dB/decade
40 dB/decade
40 dB/decade per stage
Power required
None
None
Supply rails needed
Loading sensitivity
High — source and load shift fc
High — designed for a fixed impedance
Low — buffered in and out
Resonance / Q control
None; Q is fixed at 0.5
Yes, can peak or ring
Yes, set by resistor ratios
Practical frequency range
DC to hundreds of MHz
Best above ~100 kHz
DC to a few MHz (op-amp limited)
Cost and size
Two parts, cents
Inductors are big and pricey
IC plus 4–6 passives
Best for
Noise removal, debounce, AC coupling, anti-alias guard
Note the row about Q. A single RC section cannot peak, cannot ring and cannot overshoot — which is sometimes a feature. It also means no amount of cleverness gets you a sharper knee from two components. Cascading two RC sections gives 40 dB/decade far out, but the second stage loads the first, so the combined −3 dB point moves up (to about 1.55 × fc for two identical buffered sections) and the response near the corner is soggier than a proper two-pole design. If you need a defined Butterworth or Bessel response, use an active filter and set the Q deliberately.
The time-domain view
Everything above has a mirror image in the time domain, and for digital work that view is often the useful one. Feed the low-pass a step and the output rises exponentially: V(t) = V·(1 − e^(−t/τ)). It reaches 63.2 % of the way in one τ, 86.5 % in two, 95.0 % in three and 99.3 % in five. “Five time constants” is the standard settled-enough rule, and it is what limits how fast you can multiplex a filtered ADC input.
The 10 %–90 % rise time follows exactly: tr = τ · ln(9) = 2.197 τ, which is where the famous tr ≈ 0.35 / fc comes from — 0.35 × 2π = 2.199, agreeing to within 0.1 %. Oscilloscope manufacturers use the same relation in reverse: a 100 MHz scope cannot show an edge faster than about 3.5 ns, and if the signal edge and the scope rise time are comparable you are measuring your instrument as much as your circuit.
Practical tips
Add the source impedance to R. A 600 Ω source ahead of a 1 kΩ filter resistor makes the effective R 1.6 kΩ and drops fc by 37 %. This is the number-one reason a built filter does not match the spreadsheet.
Put the corner a decade clear of what you care about. A decade of margin costs 0.04 dB of passband error and buys you tolerance headroom; sitting an octave away costs a full 1 dB.
Choose the capacitor from E6, the resistor from E24. Capacitors come in far fewer values, so fix C to something you can buy and then trim R.
Watch the DC path in a high-pass. The shunt resistor sets bias as well as fc. If the next stage needs a specific bias point, R is already spoken for and only C is free.
Filter close to the source of the noise. A filter at the far end of a long trace does nothing about the noise coupled into that trace after the filter.
How to use this calculator
Choose low-pass or high-pass
Low-pass passes DC and slow signals and rejects high frequencies — noise filtering, anti-aliasing, PWM smoothing. High-pass blocks DC and passes fast signals — AC coupling, removing sensor offset.
Enter R and C
Type values the way they are printed on the part: 4k7, 100n, 1u5, 10p. Everything is stored in ohms and farads internally, so the prefixes never bite you.
Read the cutoff frequency
fc = 1/(2πRC) is the −3 dB point, where output amplitude is 70.7 % of input. On the Bode plot it is the marked frequency where the real curve departs from the straight-line asymptotes.
Set a test frequency that matters
Enter the frequency you actually care about — the noise you want gone, the PWM carrier, the lowest signal you must keep — and read how much attenuation and phase shift it gets.
Sanity-check the time domain
Check τ and the rise time. A filter that looks right in the frequency domain can still be far too slow for the loop or the sample rate it sits in.
Snap to real parts and re-check
Round R and C to E12/E24 and E6 values, re-enter them, and confirm fc is still where you need it. Capacitor tolerance, not arithmetic, is what moves the corner in practice.
Frequently asked questions
How do you calculate the cutoff frequency of an RC filter?
Use fc = 1 / (2πRC), with R in ohms, C in farads and fc in hertz. A 10 kΩ resistor with a 10 nF capacitor gives 1 / (2π × 10 000 × 10⁻⁸) = 1591.5 Hz. The same formula applies to both low-pass and high-pass arrangements — swapping R and C changes which side of the corner is passed, not where the corner sits.
Why is the cutoff defined at −3 dB and not at 0 dB?
Because −3 dB is where the filter delivers exactly half the power of the input. The voltage magnitude there is 1/√2 = 0.7071, and 20·log₁₀(0.7071) = −3.0103 dB. The response has no sharp edge to point at, so the half-power point was adopted as the conventional definition. It also happens to be where the real curve is furthest from its straight-line asymptotes, which makes it a useful anchor when sketching a Bode plot by hand.
What is the difference between an RC low-pass and an RC high-pass filter?
Only the position of the two components. Low-pass puts the resistor in series and the capacitor to ground, taking the output across the capacitor — at high frequency the capacitor is a short, so the output falls. High-pass puts the capacitor in series and the resistor to ground, taking the output across the resistor — at DC the capacitor is an open circuit, so nothing gets through. Both have the same fc for the same R and C, and their phase shifts are mirror images: −45° versus +45° at the corner.
How steep is an RC filter roll-off?
20 dB per decade, equivalently 6 dB per octave. One pole, one slope. A decade past the corner you have 20 dB of attenuation, two decades gives 40 dB, and the only way to get steeper is more poles: a two-pole filter gives 40 dB/decade, three poles 60 dB/decade. Cascading two RC sections gets you closer to 40 dB/decade but the second stage loads the first, so the corner shifts and the response near fc sags unless you buffer between them.
What is the time constant of an RC filter, and how does it relate to cutoff?
τ = R × C, in seconds. It is the time the output takes to cover 63.2 % of the remaining distance to a step input, and it is tied to the corner by fc = 1/(2πτ). A 1 ms time constant is a 159 Hz corner. Thinking in τ is usually more natural for digital and control work, thinking in fc for signal work — they are the same fact in two costumes.
How do I calculate the rise time of an RC filter?
The 10 %–90 % rise time of a first-order step response is tr = τ·ln(9) = 2.197τ, which is where the well-known tr ≈ 0.35/fc comes from (0.35 × 2π = 2.199). So a 1 ms time constant gives a 2.2 ms rise time, and a 1 MHz corner limits you to about 350 ns. This is the rule oscilloscope makers use to relate probe bandwidth to displayed edge speed, and it is why a slow scope makes fast edges look sluggish.
Should I pick a big resistor and small capacitor, or the other way round?
Only their product sets fc, but the split matters a lot in practice. A large R makes the filter a high-impedance node: more Johnson noise, more susceptibility to bias current and PCB leakage, and it loads whatever drives it less. A small R with a large C loads the source harder and may need an electrolytic, with its wide tolerance and ESR. For general signal filtering, 1 kΩ–100 kΩ with a C0G/NP0 or film capacitor is the comfortable middle. Above roughly 1 MΩ, op-amp bias current starts shifting your DC level.
Does the source or load impedance change the cutoff frequency?
Yes, and it is the most common reason a built filter does not match the calculation. Source resistance adds directly to R in a low-pass; a 600 Ω source in front of a 1 kΩ filter resistor makes the effective R 1.6 kΩ and drops fc by 37 %. A finite load resistance sits in parallel with the capacitor and pulls the corner the other way. Buffer the output with an op-amp follower, or include the source impedance in R when you calculate.