Bode plot construction decomposes a transfer function G(s) into its constituent first-order and second-order factors and plots the asymptotic magnitude and phase contributions of each factor separately in dB and degrees versus log frequency. Each real pole at s = −a contributes a −20 dB/decade slope break at the corner frequency ω = a, with phase transitioning from 0° to −90° over roughly a decade on either side of the corner. Each real zero contributes the mirror image: +20 dB/decade and +90° of phase. Complex conjugate pole pairs produce a −40 dB/decade break at ω = ωn with a resonant peak whose height depends on the damping ratio ζ, and the phase drops by 180° centered at ωn. The composite Bode plot is obtained by summing all individual magnitude (in dB) and phase (in degrees) contributions, leveraging the logarithmic property that multiplication in the frequency domain becomes addition in dB. A pure gain K shifts the magnitude curve vertically by 20 log₁₀|K| dB, and integrators (poles at origin) contribute a −20 dB/decade slope starting from ω = 0 with a constant −90° phase.
Start with simple transfer functions containing one or two real poles and zeros, drawing the asymptotic magnitude and phase plots entirely by hand. Then progress to transfer functions with complex poles, comparing your asymptotic sketch against MATLAB's bode() or Python's control.bode() to develop intuition for where asymptotic approximations deviate most — particularly near underdamped resonances. Practice decomposing a fifth- or sixth-order transfer function into its individual factors and reconstructing the composite plot by summation.
From your work with transfer functions, you know that G(s) encodes how a system responds to different input frequencies when s = jω. A Bode plot is simply a graph of that frequency response — |G(jω)| in decibels and ∠G(jω) in degrees — both plotted against log₁₀(ω). The logarithmic frequency axis is not cosmetic: it spreads out decades of frequency uniformly, making it possible to see behavior from 0.1 rad/s to 10,000 rad/s on a single readable plot. The decibel scale for magnitude — 20 log₁₀|G| — turns the multiplication of transfer function factors into addition, so the composite plot is literally the sum of individual factor plots.
The construction method exploits this additivity. First, write G(s) in time-constant form by factoring each numerator and denominator polynomial so the constant term is 1: G(s) = K · ∏(τ_i s + 1) / ∏(τ_j s + 1). The isolated gain K contributes a flat horizontal line at 20 log₁₀|K| dB. Each first-order factor (τs + 1) in the denominator (a real pole at s = −1/τ) contributes: flat at 0 dB for ω ≪ 1/τ, then a −20 dB/decade downward slope for ω ≫ 1/τ, with the corner frequency at ω = 1/τ. The phase contribution transitions from 0° to −90° centered on that corner, spread over roughly two decades. A numerator factor (zero) gives the mirror image: +20 dB/decade slope and +90° phase.
Complex conjugate pole pairs (from second-order factors s² + 2ζω_n s + ω_n²) produce a −40 dB/decade break at ω = ω_n with a phase drop of 180°. The wrinkle is the resonant peak: for small damping ratio ζ, the magnitude near ω_n rises well above the asymptote before falling — the asymptotic approximation is worst exactly where the response is most dramatic. The peak height is approximately −20 log₁₀(2ζ) dB above the asymptote, which becomes very large as ζ → 0.
To sketch a composite Bode plot: draw the low-frequency asymptote starting from K (adjusted for any integrators), then at each corner frequency apply the appropriate slope change (+20 or −20 dB/decade per zero or pole), and sum the phase contributions from all factors at each frequency. The resulting asymptotic sketch is not exact — every real-pole corner is 3 dB low, every resonance can deviate substantially — but it gives the right shape everywhere and the correct slope asymptotes, which is usually sufficient for stability analysis and compensator design. Software tools like MATLAB or Python's `control` library give exact plots; the hand sketch gives insight into which poles and zeros dominate at which frequencies.