Skip to content
ScienceQuest
Electricity Visualiser Undergraduate

Bode Plot and Filter Visualiser

See the Bode plot of an RC or RLC low-pass, high-pass or band-pass filter: gain and phase against frequency, with the cutoff, slopes, −3 dB point and Q.

Visualiser

Drag sideways across the plot to move the test frequency, or use the arrow keys. Page Up and Page Down move it a decade, and Home puts it on the corner.

Bode plot of an RC low-pass filter from 1 Hz to 1 MHz. The gain is flat at 0 dB up to the 1.592 kHz corner and falls at 20 dB per decade above it. The phase falls from 0° to −90°, passing −45° at the corner. At the 10 kHz test frequency the gain is −16.07 dB, a ratio of 0.1572, and the phase is −80.96°.

Corner frequency fc
fc = 1/(2πRC) = 1/(2π × 100 µs). There the gain is −3.010 dB, a ratio of 0.7071, and the phase is −45°.
1.592 kHz
Gain
20 log₁₀ |H| at the test frequency, where |H| is the output amplitude over the input. The straight lines give −15.96 dB here, 0.1086 dB above the curve.
−16.07 dB
Gain ratio |H|
Vout/Vin, which is 10 to the power of the gain over 20. A ratio of 0.7071 is −3.010 dB, half the power; 0.1 is −20 dB and 0.01 is −40 dB.
0.1572
Phase
How far the output sine wave leads the input; a negative phase is a lag. The straight-line phase is −80.92° here.
−80.96°
Test frequency
Drag sideways across the plot to move it, or use the Test frequency slider, the arrow keys on the focused plot, or the buttons under the plot.
10 kHz
Slope here
The gradient of the gain curve at the test frequency. Far from every corner it settles on the straight line’s slope: 20 dB per decade for each first-order factor and 40 for a resonant pair.
−19.51 dB/decade
Time constant τ
τ = RC, and fc = 1/(2πτ). The same RC charges a capacitor to 63.2 percent of its final voltage in one τ.
100 µs
Parameters

RC: the output across C is a low-pass and across R a high-pass. Series RLC: across C, L or R it is a low-pass, a high-pass or a band-pass.

Ω

1 kΩ is 1000 Ω. The slider steps through the E12 values sold in every decade, 1.0, 1.2, 1.5 and so on to 8.2; the box takes any value.

nF

In nanofarads: 1 µF is 1000 nF and 470 pF is 0.47 nF.

Hz

Where the gain, phase and slope are read. The slider spans the plot, a hundred steps to each decade.

Bode’s approximation: flat, then 20 dB per decade for each first-order factor, with the phase drawn as straight ramps over two decades.

The exact gain and phase at each decade of the plot, with the corner marked.
FrequencyGain (dB)|H|Phase
1 Hz 0.0010.0°
10 Hz 0.001−0.4°
100 Hz −0.020.998−3.6°
1 kHz −1.450.8467−32.1°
1.592 kHz fc, −3 dB−3.010.7071−45.0°
10 kHz −16.070.1572−81.0°
100 kHz −35.960.01591−89.1°
1 MHz −55.960.001592−89.9°

Citing this tool

Last updated . Add the date you accessed it as well, which a citation of a page that can change asks for. If a specific result matters, cite the permalink from the tool’s share row instead of this page: it reproduces the exact parameters.

Teaching with this? You can put it on a class page or LMS for free, with no ads inside the frame. Get the embed code.

The equation

G=−10log⁡10[1+(ffc)2],fc=12πRCG = -10\log_{10}\left[1 + \left(\frac{f}{f_c}\right)^{2}\right],\quad f_c = \frac{1}{2\pi RC}

Horowitz and Hill, The Art of Electronics, 3rd edition (2015)

What is a Bode plot?

A Bode plot is a pair of graphs showing how a circuit treats a sine wave at every frequency: the gain in decibels, G = 20 log₁₀ |H|, and the phase shift in degrees, both drawn against frequency on a logarithmic axis. Here |H| is the output amplitude divided by the input amplitude. For the RC low-pass the visualiser opens on, |H| = 1/√(1 + (f/fc)²), where the corner frequency is fc = 1/(2πRC).

On logarithmic axes those curves are nearly straight lines: flat below the corner and falling at 20 dB per decade above it. So a filter’s whole response can be sketched with a ruler, and how much any frequency is cut can be read at a glance. The plots carry the name of Hendrik Bode, who used them at Bell Telephone Laboratories in his 1940 paper on feedback amplifier design and in his 1945 book, Network Analysis and Feedback Amplifier Design.

Every circuit here is a voltage divider in which one or two of the parts are a capacitor or an inductor, whose impedance depends on frequency: 1/(j2πfC) for a capacitor and j2πfL for an inductor. So the share of the input that reaches the output, and its timing, change with frequency. The formulas are the standard ones, as set out in Horowitz and Hill’s The Art of Electronics.

Using the visualiser

Pick one of five circuits from the Filter menu: an RC low-pass or high-pass, or a series RLC low-pass, high-pass or band-pass. Set the components with the sliders, which step through the E12 values that resistors and capacitors are sold in (1.0, 1.2, 1.5, 1.8 and so on up to 8.2 in every decade), or type an exact value in ohms, nanofarads or millihenries in the box beside each slider. Inductance appears only for the RLC circuits.

The upper plot is the gain and the lower one the phase. The solid curves are exact. The dashed lines are Bode’s straight-line approximations, labelled with their slopes, and the dashed vertical line marks the corner. Open circles mark the −3 dB points and a filled dot marks any resonance peak. The plot spans six decades and moves a whole decade at a time, so the gridlines always fall on 1, 10, 100 and so on, with the corner between 2.5 and 3.5 decades from the left edge.

The solid vertical line is the test frequency: one sine wave in, its gain and phase out. Drag sideways across the plot to move it, or focus the plot and use the arrow keys, which move it 4.7 percent a press. Page Up and Page Down move it a decade and Home puts it on the corner, and the buttons under the plot do the same on a phone. The readouts give the gain in decibels and as a ratio, the phase and the local slope there, and the table under the plot lists the exact values at each decade.

Worked example: a 1 kΩ, 100 nF low-pass at 10 kHz

The visualiser opens on an RC low-pass with R = 1 kΩ and C = 100 nF, tested at 10 kHz. Working it by hand:

  • The time constant is RC = 1000 × 100 × 10⁻⁹ = 1 × 10⁻⁴ s, which is 100 µs.
  • The corner is fc = 1/(2π × 10⁻⁴) = 1591.5 Hz, the 1.592 kHz in the readouts.
  • At the test frequency, f/fc = 10000/1591.5 = 6.283. That is exactly 2π, because f/fc = 2πfRC = 2π × 10⁴ × 10⁻⁴.
  • The ratio is |H| = 1/√(1 + 6.283²) = 1/√40.48 = 0.1572, so a 1 V sine wave comes out at 0.157 V.
  • In decibels, G = 20 log₁₀ 0.1572 = −16.07 dB.
  • The phase is φ = −arctan 6.283 = −80.96°: the output lags the input by just under a quarter of a cycle.
  • The straight line gives −20 log₁₀ 6.283 = −15.96 dB, which is 0.11 dB above the true value.
  • The slope there is −20 × 39.48/40.48 = −19.51 dB/decade, nearly the straight line’s 20 dB per decade.

Press Up a decade and the test frequency moves to 100 kHz, where the gain is −35.96 dB: 19.89 dB lower for ten times the frequency. One more decade, at 1 MHz, gives −55.96 dB. Far above the corner the RC low-pass takes 20 dB off for every decade, which is a factor of ten in amplitude.

Bode’s straight lines, and how far off they are

The straight-line gain of a first-order low-pass has two pieces: 0 dB up to the corner, then a line falling at 20 dB per decade, which is 6.02 dB per octave. The true curve hugs both and parts from them only near the corner, where the gap is largest: 3.01 dB at fc itself, 0.97 dB an octave either side, at fc/2 and 2fc, and 0.04 dB a decade away. At 10fc the gain is −20.04 dB, against the line’s −20 dB.

The straight-line phase is a ramp: 0° up to fc/10, then falling 45° per decade through −45° at the corner to −90° at 10fc, and flat after that. Its largest error is 5.71° at the two ends of the ramp, because arctan 0.1 = 5.71°. At 10 kHz the opening circuit’s phase line gives −80.92°, within 0.04° of the true −80.96°.

The same rules build any filter from its factors. Every real pole bends the gain line down by 20 dB per decade at its corner and takes 90° off the phase over the two decades around it. Every factor of frequency in the numerator, which a high-pass or a band-pass has, adds 20 dB per decade and 90°. A resonant pair of poles bends the line by 40 dB per decade at once and swings the phase through 180°, which the visualiser draws as a ramp from f₀/10 to 10f₀, the rule Nise gives in Control Systems Engineering.

Why the corner is the −3 dB point

At f = fc the capacitor’s reactance, 1/(2πfC), is exactly equal to R: for the opening circuit, 1/(2π × 1591.5 × 100 × 10⁻⁹) = 1000 Ω. The voltages across the resistor and the capacitor are then equal in size and a quarter of a cycle apart, so each is the input divided by √2. The output is 1/√2 = 0.7071 of the input and lags it by 45°.

In decibels that ratio is 20 log₁₀ 0.7071 = −3.010 dB, and because power goes as the square of voltage, the output delivers half the power it would at low frequency. That is why the corner is also called the half-power point, the cutoff frequency or the −3 dB frequency: four names for one number. It is also why fc = 1/(2πRC) and the time constant τ = RC carry the same information, and the RC Time Constant Calculator works between the two directly.

The high-pass filter is the mirror image

Take the output across the resistor instead of the capacitor and the same two parts make a high-pass, |H| = (f/fc)/√(1 + (f/fc)²). Its straight lines are the low-pass’s turned round, rising at 20 dB per decade up to the corner and flat above it, and its phase runs from +90° down to 0°, passing +45° at the corner. The corner is unchanged at 1.592 kHz.

At 10 kHz the default high-pass passes a ratio of 0.9876, −0.1086 dB, with the output leading by 9.043°. That loss is exactly the low-pass’s gap from its straight line at the same frequency, because the high-pass response is the low-pass response multiplied by jf/fc. High-pass filters block a steady voltage while passing a changing one: a coupling capacitor between two amplifier stages is one, with the next stage’s input resistance as its R.

Second-order filters and Q

A series RLC circuit is second order: with the inductor and the capacitor together, the gain falls at 40 dB per decade beyond the resonant frequency f₀ = 1/(2π√(LC)), twice as steeply as one RC section. What happens near f₀ is decided by the quality factor, Q = (1/R)√(L/C). With the defaults, R = 1 kΩ, L = 100 mH and C = 100 nF, f₀ = 1/(2π√(0.1 × 10⁻⁷)) = 1591.5 Hz and Q = √(0.1/10⁻⁷)/1000 = 1.

For the RLC low-pass, with the output across the capacitor, the gain at f₀ is exactly 20 log₁₀ Q, and above Q = 1/√2 = 0.7071 the response peaks before it falls. At Q = 1 the peak is 1.249 dB at 1.125 kHz, which is f₀√(1 − 1/(2Q²)), and the −3 dB point is at 2.024 kHz, above f₀. Lower R to 200 Ω and Q rises to 5: the peak grows to 14.02 dB at 1.576 kHz, and a signal at f₀ comes out five times larger than it went in. At 10 kHz the RLC low-pass is down 31.82 dB, against 16.07 dB for the RC one.

Two values of Q have names. At Q = 0.7071, which needs R = 1414.2 Ω here, the response is the Butterworth one, the flattest passband possible, with the −3 dB point exactly at f₀. At Q = 0.5, with R = 2 kΩ, the circuit is critically damped and the gain at f₀ is −6.021 dB. Below 0.5 the two poles are real and the straight line bends twice, at two corners whose product is f₀². The phase runs from 0° to −180°, through −90° at f₀, and swings faster the higher Q is. The same Q sets how a step makes the circuit ring, which the RLC Circuit Simulator shows in time.

Band-pass filters and bandwidth

Take the output across the resistor of the series RLC circuit and it passes a band around f₀. The current, and so the voltage across R, is largest at resonance, where the inductor’s and the capacitor’s reactances cancel. The gain is 0 dB at f₀ whatever Q is, with no phase shift, and falls at 20 dB per decade either side. The width between the two −3 dB points is the bandwidth, B = f₀/Q = R/(2πL).

With the defaults, B = 1000/(2π × 0.1) = 1591.5 Hz, and the −3 dB points are at 983.6 Hz and 2.575 kHz, from f₀(√(1 + 1/(4Q²)) ∓ 1/(2Q)). They are not equally spaced about f₀: their product is f₀², so f₀ is their geometric mean, and on the logarithmic axis it sits exactly halfway between them. Lower R to 100 Ω and Q rises to 10, narrowing the band to 159.2 Hz, from 1.514 kHz to 1.673 kHz. That is how a radio’s tuned circuit picks out one station: a high Q passes a narrow band and rejects its neighbours.

Bode plots in control and sampling

Bode developed the plots for feedback amplifiers, and they remain the standard way to check whether a feedback loop is stable. Plot the gain and phase of the whole loop and read two numbers: the phase margin, which is how far the phase is above −180° at the frequency where the loop gain falls through 0 dB, and the gain margin, which is how far the gain is below 0 dB where the phase reaches −180°. A loop with little of either rings or oscillates. The PID Controller Simulator shows what too little margin looks like in time, as overshoot and ringing.

Filters also matter before a signal is digitised. Sampling at a rate fs folds every frequency above fs/2 back into the band below it, as the Sampling and Aliasing Visualiser shows, so a low-pass filter goes in front of the converter to remove them. The slope decides how well that works. A first-order RC filter takes only 20 dB off per decade, so a frequency ten times its corner still reaches the converter at about a tenth of its amplitude, 0.0995 to be exact. That is why anti-aliasing filters are usually of higher order.

What this model leaves out

  • The source and the load. The input is an ideal voltage source and nothing is connected to the output. A real load is another resistor in the divider: a 10 kΩ load on the opening low-pass lowers its passband gain to −0.83 dB and raises its corner to 1.751 kHz, because the capacitor then charges through R and the load in parallel.
  • Component tolerances. E12 parts are sold as ±10 percent, and the corner moves with them: a capacitor 10 percent high puts fc 9 percent low.
  • Parasitics. Real capacitors have series resistance and inductance, and real inductors have winding resistance and capacitance between their turns. Above a few megahertz these dominate, and a capacitor above its self-resonant frequency behaves as an inductor. In the RLC filters, R stands for all the series resistance, the inductor’s winding included.
  • Cascades. Two RC sections in a row do not give two independent corners, because the second loads the first. A buffer between them, such as an op-amp follower, restores the simple multiplication of responses that the straight-line rules assume.
  • Switching on. A Bode plot is the steady state, after the transient that follows switching on has died away. That transient lasts a few time constants: about 0.5 ms for the opening circuit, five times 100 µs.

Common mistakes

  • Using ω where f is meant. 1/(RC) is the corner in radians per second: 10,000 rad/s for the opening circuit, which is 1591.5 Hz, not 10 kHz. Divide by 2π to get hertz.
  • Mixing 10 log and 20 log. A voltage or current ratio is 20 log₁₀ of the ratio and a power ratio is 10 log₁₀. A voltage ratio of 0.1 is −20 dB, not −10 dB.
  • Reading the straight line at the corner. The asymptotes meet at 0 dB at fc, but the true gain there is −3.01 dB, the largest gap anywhere on a first-order plot.
  • Calling the slope 20 dB per octave. A first-order filter falls 20 dB per decade, which is 6.02 dB per octave. Each extra order adds the same again.
  • Expecting the RLC low-pass to be −3 dB at f₀. The gain at f₀ is 20 log₁₀ Q: 0 dB at the default Q of 1, with the −3 dB point at 2.024 kHz. Only the Butterworth Q of 0.7071 puts it at f₀.
  • Averaging the band edges. The centre of a band-pass is the geometric mean of its −3 dB points. The default band’s edges average 1779.4 Hz, not the 1591.5 Hz of f₀.
Bode Plot and Filter Visualiser: the equation G = -10 log₁₀[1 + (f/f c)²], f c = 1/(2π RC).
The equation the visualiser is built on, with its source. Image © ScienceQuest, CC BY 4.0. Free to reuse with credit and a link to this page; how to reuse it. Download PNG

Common questions

What is a Bode plot?

A Bode plot is two graphs of a circuit’s response to sine waves, drawn against frequency on a logarithmic axis: the gain in decibels, 20 log₁₀ of the output amplitude over the input amplitude, and the phase shift in degrees. On those axes a filter’s gain is close to straight lines, flat in the passband and falling at 20 dB per decade for each order beyond the corner, so the whole response can be sketched with a ruler. It is named after Hendrik Bode of Bell Telephone Laboratories, who used it in his 1940 paper on feedback amplifier design.

How do you calculate the cutoff frequency of an RC filter?

Use fc = 1/(2πRC), with R in ohms and C in farads. A 1 kΩ resistor with a 100 nF capacitor gives RC = 100 µs and fc = 1/(2π × 10⁻⁴) = 1591.5 Hz, about 1.59 kHz. The same formula holds for the low-pass and the high-pass made from the same two parts. At fc the output is 1/√2 = 0.7071 of the input, which is −3.010 dB and half the power, and the phase is −45° for the low-pass and +45° for the high-pass.

How do you draw a Bode plot by hand?

Factor the response into its corners and draw straight lines between them. Start flat at the passband gain; at each real pole bend the gain line down by 20 dB per decade, at each zero bend it up by 20, and at a resonant pair bend it by 40. For the phase, each real pole takes 90° off in a straight ramp from a tenth of its corner frequency to ten times it. Then round off each corner: a first-order corner is 3.01 dB below the lines, and 0.97 dB below them an octave either side.

What is the slope of a low-pass filter on a Bode plot?

A first-order low-pass, such as one RC section, falls at 20 dB per decade above its corner, which is 6.02 dB per octave: ten times the frequency gives a tenth of the amplitude. A second-order low-pass such as a series RLC falls at 40 dB per decade, and each further order adds another 20. A 1 kΩ, 100 nF low-pass is at −16.07 dB at 10 kHz and −35.96 dB at 100 kHz, very nearly 20 dB lower for ten times the frequency.

What does Q do in a second-order filter?

Q sets the shape of the response near the resonant frequency f₀ = 1/(2π√(LC)), and for a series RLC circuit Q = (1/R)√(L/C). In the low-pass the gain at f₀ is 20 log₁₀ Q, and above Q = 1/√2 = 0.7071 the response peaks: Q = 1 gives a peak of 1.249 dB and Q = 5 a peak of 14.02 dB. Q = 0.7071 is the Butterworth response, the flattest passband possible, with its −3 dB point at f₀, and Q = 0.5 is critical damping. In a band-pass filter, Q is f₀ divided by the bandwidth.

How do you find the bandwidth of a band-pass filter?

The bandwidth is the distance between the two −3 dB frequencies, and for a series RLC band-pass it is f₀/Q = R/(2πL). With R = 1 kΩ, L = 100 mH and C = 100 nF, f₀ = 1591.5 Hz and Q = 1, so the bandwidth is 1591.5 Hz, from 983.6 Hz to 2575.2 Hz. The centre frequency is the geometric mean of the two edges, √(983.6 × 2575.2) = 1591.5 Hz, not their average.