RC Low-Pass Filter Calculator

JJ Ben-Joseph headshot JJ Ben-Joseph

Introduction to first-order RC low-pass filtering

A series resistor followed by a shunt capacitor, with the output taken across the capacitor, is the most widely deployed filter in electronics. It sits in front of almost every analogue-to-digital converter as an anti-alias filter, it cleans up the pulse-width-modulated output of a microcontroller into a smooth analogue level, it de-glitches sensor lines, and it rolls the high-frequency hiss off an audio buffer. Because the capacitor's impedance falls as frequency rises, the network behaves as a frequency-dependent voltage divider: at low frequencies the capacitor looks like an open circuit and the output tracks the input, while at high frequencies it looks like a short and the output collapses.

Everything that matters about this circuit follows from one complex transfer function, and the whole design job reduces to picking a corner frequency and then choosing an R and C pair that lands on it with parts you can actually buy. This calculator does that end to end. It accepts resistance in ohms, kilohms or megohms and capacitance in picofarads, nanofarads, microfarads or millifarads, because mixing prefixes by hand is where most first-order filter arithmetic goes wrong. It reports the corner both as a frequency in hertz and as an angular frequency in radians per second, so the factor of 2π that separates them can never be lost. It plots magnitude and phase against a logarithmic frequency axis together with the straight-line asymptotes, and it snaps your design onto the IEC 60063 preferred value series so the result is a real bill of materials rather than an unbuildable decimal.

How to use this RC low-pass calculator step by step

  1. Enter the series resistance in the R field and pick its unit (Ω, kΩ or MΩ) from the adjacent menu. The value is converted to ohms internally.
  2. Enter the shunt capacitance in the C field and pick pF, nF, µF or mF. A 100 nF part and a 0.1 µF part are the same component; either entry gives the same answer.
  3. Enter the input signal amplitude in volts. This scales the predicted output amplitude and the time-domain trace but never affects the cutoff, because the network is linear.
  4. Enter the test frequency and its unit (Hz, kHz or MHz). This is the single frequency at which gain, phase and output amplitude are reported; the Bode plot always covers four decades either side of the corner.
  5. Optionally add a source resistance and a load resistance. Leave the source at 0 Ω and the load blank for the textbook ideal case; fill them in when you want the real, loaded response.
  6. Press Calculate. Press Play to animate the time-domain waveform, Reset to restore the defaults, and Download CSV to export the swept response for a spreadsheet or report.

Every field validates independently. Blank, non-numeric, zero and negative entries for R, C and the amplitude are rejected with a specific message rather than being allowed to produce a division by zero, an infinity or a stale number left over from a previous run.

Circuit variables and modelling assumptions

The filter is a series resistor R feeding a shunt capacitor C returned to ground, with the output taken across the capacitor. Units follow NIST SP 811: resistance in ohms (Ω), capacitance in farads (F), frequency in hertz (Hz), and angular frequency in radians per second. The prefix menus apply the SI decimal factors p = 10−12, n = 10−9, µ = 10−6, m = 10−3, k = 103 and M = 106 before any arithmetic happens, so the internal computation is always in coherent SI units and a 100 nF part gives exactly the same answer as a 0.1 µF part.

In the time domain the capacitor voltage vC obeys a first-order linear differential equation driven by the source voltage vs:

Formula: (d v_C) / (d t) = (v_s − v_C) / (R C)

dvCdt=vsvCRC

The product RC carries units of seconds and is the time constant τ. Every other quantity on this page — corner frequency, phase, rise time, roll-off — is a restatement of that one number. The ideal model assumes a source of zero output impedance, a load of infinite input impedance, a linear capacitor with no leakage or dielectric absorption, a resistor that does not drift with temperature, and lumped elements with no lead inductance or stray capacitance. The optional source and load fields relax the first two of those assumptions exactly; the rest are discussed under limitations further down.

Formula set: corner frequency, magnitude and phase

Replace the capacitor by its impedance ZC=1/(jωC) and the circuit becomes an ordinary voltage divider, so the transfer function is the ratio of the capacitor impedance to the total series impedance:

Formula: H(j ω) = Z_C / (R + Z_C) = 1 / (1 + j ω R C)

H(jω)=ZCR+ZC=11+jωRC

The response falls to 1/2 of the passband value — half the power — when the imaginary part equals the real part, that is when ωRC=1. That defines the corner, and it is worth writing it twice because the two forms differ by a factor of 2π:

Formula: ω_c = 1 / (R C) rad/s, f_c = ω_c / (2 π) = 1 / (2 π R C) Hz

ωc=1RC rad/s,    fc=ωc2π=12πRC Hz

This is the single most common mistake in RC filter work. 1/(RC) is the corner in radians per second; 1/(2πRC) is the corner in hertz. Quoting the first as though it were the second overstates the cutoff by 6.283 times. The results panel prints both so the distinction stays visible.

Writing x=f/fc=ω/ωc for the normalised frequency, the magnitude and phase of the transfer function are:

Formula: | H(j ω) | = 1 / (sqrt(1 + (f/f_c)^2))

|H(jω)|=11+(f/fc)2

Formula: φ = − arctan(f /f_c)

φ=arctan(f/fc)

Both expressions are exact for the ideal network; there is no approximation anywhere in them. The gain in decibels is a voltage ratio, so it uses the factor 20 rather than 10:

Formula: A_dB = 20 log_10 | H | = − 10 log_10 (1 + (f/f_c)^2)

AdB=20log10|H|=10log10(1+(f/fc)2)

Decibels, roll-off and the −3 dB point versus the asymptote knee

Substituting f=fc gives |H|=1/2=0.707107, and 20log10(0.707107)=3.0103 dB. The familiar “−3 dB point” is that exact number rounded to two significant figures, and the phase there is exactly −45°. Those two values are a reliable sanity check on any filter calculation: if a tool does not return −3.01 dB and −45° when the test frequency equals the corner, something is wrong.

Far above the corner, f/fc1, the magnitude simplifies to |H|fc/f, so a tenfold rise in frequency costs a factor of ten in amplitude:

Formula: 20 log_10(10) = 20 dB/decade = 20 log_10(2) = 6.0206 dB/octave

20log10(10)=20 dB/decade = 20log10(2)=6.0206 dB/octave

A first-order section therefore rolls off at −20 dB per decade, which is the same slope as −6.02 dB per octave. Pages that claim “−6 dB per decade” or “−20 dB per octave” have swapped the two: an octave is a doubling and a decade is a tenfold change, and the ratio between the slopes is log2(10)=3.3219.

The Bode plot drawn by this calculator shows the true magnitude curve together with its two straight-line asymptotes: a flat 0 dB line in the passband and a −20 dB/decade line in the stopband. Those asymptotes intersect exactly at fc, so for a single RC section the knee frequency and the −3 dB frequency are the same frequency. They are emphatically not the same gain: the asymptotes predict 0 dB at the corner while the real response is 3.0103 dB lower, and that 3 dB gap is the largest error the straight-line approximation ever makes. Treating the knee as the point where attenuation begins, rather than the point where it has already reached 3 dB, is a classic way to under-specify an anti-alias filter.

Step response, time constant and 10–90% rise time

Drive the same network with a step of height V0 instead of a sinusoid and the solution of the differential equation is the familiar exponential charge:

Formula: v_C(t) = V_0 (1 − e^−t/τ), τ = R C

vC(t)=V0(1et/τ),τ=RC

The output reaches 10% of the final value at t=τln(10/9) and 90% at t=τln(10), so the 10–90% rise time is the difference:

Formula: t_r = τ ln(9) = 2.1972 R C = ln(9) / (2 π f_c) = 0.3497 / f_c

tr=τln(9)=2.1972RC=ln(9)2πfc=0.3497fc

That derivation is the origin of the ubiquitous bench rule tr0.35/BW. The calculator prints the exact value, not the rounded rule, and it prints the settling times to 1% and 0.1% (4.6τ and 6.9τ) because those are what actually matter when a filter sits in front of a multiplexed ADC that must settle between channel switches.

Worked example: 1 kΩ and 100 nF in front of an ADC

Take R=1 kΩ and C=100 nF. Convert first: 1 kΩ = 1000 Ω and 100 nF = 100 × 10−9 F = 1 × 10−7 F. Then

Formula: τ = R C = 1000 × 10^−7 = 100 µs

τ=RC=1000×107=100 µs

Formula: ω_c = 1 / τ = 10000 rad/s, f_c = 10000 / (2 π) = 1591.55 Hz

ωc=1τ=10000 rad/s,fc=100002π=1591.55 Hz

Note the answer: 1591.55 Hz, roughly 1.59 kHz. If you had used 1/(RC) and called it hertz you would have written 10 kHz, a 6.28× overestimate that would let a large amount of out-of-band noise through to the converter.

Now evaluate the response at a 1 kHz test tone of 1 V amplitude. The normalised frequency is x=1000/1591.55=0.6283, so

Formula: | H | = 1 / (sqrt(1 + 0.6283^2)) = 0.84673 → − 1.4451 dB

|H|=11+0.62832=0.846731.4451 dB

Formula: φ = − arctan(0.6283) = − 32.14 °

φ=arctan(0.6283)=32.14°

So a 1 V amplitude tone at 1 kHz emerges at 0.8467 V, delayed by 32.14° of its own cycle, which is 89.3 µs. The 10–90% rise time is 2.1972×100 µs=219.7 µs. At ten times the corner, 15.915 kHz, the gain is −20.04 dB and the phase is −84.29°: the response has essentially joined its asymptote, which predicts −20.00 dB there, an error of only 0.04 dB.

Finally, add realism. Suppose the driving op-amp has 50 Ω of output impedance and the next stage presents 10 kΩ rather than an open circuit. Entering Rs=50 Ω and RL=10 kΩ gives an effective resistance Reff=(50+1000)10000=950.23 Ω, so the corner rises to 1674.9 Hz and the passband gain drops from 1.000 to 0.90498, a DC insertion loss of −0.867 dB. Both effects are invisible in the textbook formula and both are routine in real hardware.

Comparison table: normalised response and how to interpret it

Because the magnitude and phase depend only on the ratio f/fc, one table describes every first-order RC low-pass ever built. The last column gives the straight-line asymptote so the approximation error is visible.

Exact response of any first-order RC low-pass filter versus normalised frequency.
f / fc |H| Gain (dB) Phase (°) Asymptote (dB)
0.10.99504−0.043−5.710.00
0.20.98058−0.170−11.310.00
0.50.89443−0.969−26.570.00
1.00.70711−3.010−45.000.00
2.00.44721−6.990−63.43−6.02
5.00.19612−14.150−78.69−13.98
100.09950−20.043−84.29−20.00
1000.01000−40.000−89.43−40.00

Read the table as a design chart. Signals you want to keep should sit at f/fc0.2, where the amplitude error is under 0.2 dB and the phase lag is under 12°. Noise you want to kill needs to sit at f/fc10 before a single RC section buys you 20 dB. That narrow transition band is the fundamental weakness of first-order filtering: between 0.2 and 10 there are almost two decades of frequency in which the filter neither passes cleanly nor blocks usefully. When the specification demands a sharper edge, cascade buffered sections or move to an active Sallen-Key or multiple-feedback topology.

Interpreting a single result follows the same logic. A gain near 0 dB with a small negative phase means the frequency you entered is deep in the passband and the filter is essentially invisible to it. A gain near −3 dB with a phase near −45° means you are sitting on the corner, the worst place for a signal you care about. A gain of −20 dB or lower with a phase approaching −90° means the filter has taken over and the output is dominated by the integrated version of the input.

Choosing IEC 60063 standard component values

Solving fc=1/(2πRC) for a resistance almost never lands on a value you can buy. IEC 60063:2015 defines the preferred number series: E12 (twelve values per decade, associated with ±10% parts), E24 (twenty-four values, ±5%) and E96 (ninety-six three-digit values, ±1%). The E24 decade is 10, 11, 12, 13, 15, 16, 18, 20, 22, 24, 27, 30, 33, 36, 39, 43, 47, 51, 56, 62, 68, 75, 82, 91, and E12 is every second one of those. The calculator snaps your resistance onto each series and reports the corner you would actually get.

For the worked example, targeting fc=1 kHz with a 100 nF capacitor calls for R=1591.55 Ω. The nearest E12 value is 1.5 kΩ, which puts the corner at 1061 Hz (+6.1%); the nearest E24 value is 1.6 kΩ, which gives 994.7 Hz (−0.53%). Capacitors deserve more suspicion than resistors here: a Class 2 ceramic such as X7R can be 15% off its marked value, loses capacitance under DC bias, and drifts with temperature and age, so the corner of a real filter often sits further from the nominal than any resistor tolerance would suggest. For a corner you must hold, use a C0G/NP0 ceramic or a film capacitor and let the resistor take the tolerance.

Assumptions and limitations of the ideal RC model

The closed-form results above are exact for an idealised network, and the gap between that idealisation and a soldered circuit is where filter designs fail. The main limitations are:

Use the numbers as a design starting point, then confirm the built filter on a network analyser or with a swept-sine measurement before committing to a production board.

Frequently asked questions about RC low-pass filters

Is the RC cutoff frequency 1/(2piRC) or 1/(RC)?

Both appear in textbooks because they describe the same corner in different units. The corner in hertz is f_c = 1/(2piRC); the same corner expressed as an angular frequency is omega_c = 1/(RC) radians per second, and omega_c = 2pi f_c. Quoting 1/(RC) in hertz is a factor-of-2pi error that shifts the answer by about 6.28x, so always check which quantity a formula returns before using it.

Why is the gain exactly -3.0103 dB at the cutoff frequency?

At f = f_c the ratio f/f_c equals 1, so the magnitude is 1/sqrt(1+1) = 1/sqrt(2) = 0.70711. Converting to decibels gives 20*log10(0.70711) = -3.0103 dB. The familiar -3 dB label is that number rounded. At the same frequency the output power is exactly half the passband value and the phase is exactly -45 degrees.

Does a first-order RC filter roll off at 6 dB per octave or 6 dB per decade?

Well above the corner the response falls by 20 dB per decade, which is the same slope as 6.0206 dB per octave. Writing -6 dB per decade or -20 dB per octave is wrong: a decade is a tenfold frequency change and an octave is a doubling, so the two slopes differ by log2(10) = 3.32.

Where do the straight-line asymptotes meet, and is that the -3 dB point?

The 0 dB passband asymptote and the -20 dB per decade stopband asymptote intersect exactly at f_c, so the knee frequency and the -3 dB frequency are the same frequency for a single RC section. They are not the same gain: at f_c the asymptotes predict 0 dB while the true response is 3.0103 dB lower. The calculator draws both curves so you can see the gap.

How does source resistance or a load resistor change the cutoff?

A source resistance R_s adds to R, and a load resistance R_L appears in parallel with the capacitor. The response stays first order but the effective resistance becomes R_eff = (R_s + R) parallel R_L, so the corner moves to 1/(2 pi R_eff C), and the passband gain drops to R_L/(R_s + R + R_L) instead of unity. Enter R_s and R_L in the form to see both effects.

What rise time does a given RC cutoff frequency imply?

For a step input the 10 to 90 percent rise time of a single RC section is t_r = RC*ln(9) = 2.1972*RC. Written in terms of the corner frequency that is t_r = ln(9)/(2 pi f_c) = 0.3497/f_c, the origin of the widely quoted rule of thumb t_r is about 0.35 divided by the bandwidth.

Sources and further reading for RC filter design

Sources. The transfer function, corner frequency, magnitude, phase and roll-off used by this calculator were checked against the following primary and institutional references.

Resistance of the series element.
100 nF and 0.1 µF are the same part.
Peak amplitude of the source sinusoid.
Frequency at which gain and phase are reported.
Output impedance of the driving stage; 0 for an ideal source.
Leave blank for an unloaded (infinite impedance) output.

Arcade Mini-Game: RC Low-Pass Filter Fact Check

Catch the statements that are true of a first-order RC low-pass filter and dodge the ones that are not. Every wrong token in this run is a mistake that appears on real filter pages: the corner quoted in hertz when it is really in radians per second, the roll-off slope with decades and octaves swapped, and unit prefixes mixed up.

Score: 0 Timer: 30s Best: 0

Start the game, then use your pointer or arrow keys to catch the correct filter facts and avoid the incorrect ones.

Enter R, C and a test frequency, then press Calculate.
The Bode plot will appear here after you press Calculate.
Press Play waveform to animate the steady-state time-domain response.

Energy split during the animation: striped blue is energy currently stored in the capacitor, striped orange is energy dissipated in the resistors so far. Both bars are scaled to the larger of the two.

Capacitor stored energy bar.
Resistor dissipated energy bar.