Bode Plots
The engineer's log-scale sketch that turns a transfer function into a readable picture — with a simple straight-line trick that is surprisingly accurate.
A transfer function evaluated at a thousand frequencies gives you a thousand numbers. A Bode plot turns them into two lines you can sketch by hand in under a minute.
Why decibels and log frequency?
A transfer function's magnitude can span many orders of magnitude — from near-unity gain at low frequencies to vanishingly small values at high frequencies. Plotting this on a linear scale would crush the interesting detail. The Bode plot solves this with two tricks: magnitude is expressed in decibels (dB), defined as 20 log10|H(jω)|, and frequency is plotted on a logarithmic axis. This compresses huge dynamic ranges into a readable picture and, crucially, turns multiplicative effects into additive slopes.
Straight-line magnitude approximation
For the RC low-pass filter H(jω) = 1/(1 + jω/ωc) with ωc = 1000 rad/s, the asymptotic magnitude plot is built from two straight lines: a flat 0 dB line for ω ≪ ωc (where |H| ≈ 1, so 0 dB), and a line sloping downward at −20 dB/decade for ω ≫ ωc (where |H| ≈ ωc/ω, so the dB value drops by 20 for every decade increase in ω). These two asymptotes meet at ω = ωc. For a zero (numerator factor 1 + jω/ωz), the same logic applies but the high-frequency asymptote slopes upward at +20 dB/decade.
How good is the approximation?
The true curve is smooth, not piecewise linear. At the corner frequency ω = ωc, the true magnitude is |H| = 1/√2 ≈ 0.7071, which in dB is 20 log10(0.7071) ≈ −3.01 dB. The asymptotes predict 0 dB there, so the error is about 3 dB — the worst-case deviation. But move just one decade above the corner to ω = 10ωc = 10,000 rad/s, and the true magnitude is 1/√(1 + 100) = 1/√101 ≈ 0.0995, giving 20 log10(0.0995) ≈ −20.04 dB. The asymptote predicts exactly −20 dB at that point. The error has shrunk to about 0.04 dB — essentially negligible for engineering purposes. This rapid convergence is why the straight-line Bode plot is so useful.
- (a) At ω = ωc: true |H| = 1/√2 ≈ 0.7071, so dB = 20 log10(0.7071) ≈ −3.01 dB. The asymptote (0 dB flat line meeting the −20 dB/dec slope at ωc) predicts 0 dB. Error ≈ 3.01 dB — the maximum deviation.
- (b) At ω = 10ωc = 10,000 rad/s: true |H| = 1/√(1 + 10²) = 1/√101 ≈ 0.0995, so dB = 20 log10(0.0995) ≈ −20.04 dB.
- The asymptote at one decade above ωc: starting from 0 dB at ωc, one decade up at −20 dB/dec gives exactly −20 dB.
- Error at 10ωc: −20.04 − (−20) = −0.04 dB. The asymptotic approximation is already accurate to within about 0.04 dB just one decade from the corner.
The phase Bode plot
The phase plot shares the same log-frequency axis. For a single real pole, the true phase ∠H = −arctan(ω/ωc) varies smoothly from 0° (well below ωc) through −45° (at ωc) to −90° (well above). A common straight-line approximation places this transition over two decades — flat at 0° until 0.1ωc, then a linear −45°/decade slope reaching −90° at 10ωc — with the exact value of −45° at the corner. For a zero the phase is positive, mirroring the same shape upward.
- The flat asymptote is 0 dB for ω ≤ ωc = 1000 rad/s.
- Above ωc the slope is −20 dB/decade.
- At ω = 10,000 rad/s (one decade above ωc): 0 dB + (−20 dB/dec × 1 dec) = −20 dB.
Check your understanding
- A Bode magnitude plot shows 20 log10|H(jω)| in dB versus log10(ω); the phase plot shows ∠H(jω) in degrees on the same frequency axis.
- For a single real pole, the straight-line magnitude approximation is 0 dB below ωc and slopes downward at −20 dB/decade above it, meeting at ωc.
- At the corner the true value is −3.01 dB (about 3 dB below the asymptote), but just one decade away the error shrinks to roughly 0.04 dB.
- A real zero produces the mirror image: a +20 dB/decade upward slope above its corner frequency.