# Bode plot A **Bode plot** is a graph of a linear, time-invariant system's frequency response, split into two panels that share a common logarithmic frequency axis: a magnitude plot, giving the system's gain in decibels, and a phase plot, giving the phase shift in degrees between output and input. Reading straight down from one frequency to both panels gives the complete steady-state response to a sinusoid at that frequency, gain and phase together. The pair takes its name from Hendrik Bode, who worked out the technique at Bell Telephone Laboratories in the 1930s while studying how far feedback amplifiers could be pushed before their own delay turned correction into oscillation, publishing the method in 1940.[^bode1940] Plotting frequency on a logarithmic axis turns the multiplication of a transfer function's separate pole and zero factors into addition: each factor contributes its own straight-line segment to the magnitude plot and its own smooth swing to the phase plot, and the curves for a whole system are simply the sum of the pieces. That property is what makes a Bode plot practical to sketch by hand from a transfer function alone, and it is also what a designer reads for stability margins before a loop is ever closed: how much the gain could rise, or the phase fall further, before [[Feedback|feedback]] turns destabilizing is answered directly from the two curves, a question the [[Nyquist_stability_criterion|Nyquist criterion]] answers by a different graphical route. Two sketches on this page work through numbers a Bode plot is built to show. One draws the magnitude and phase curves of a low-pass filter and lets the reader slide its corner frequency and its order, watching the −3 dB point and the roll-off slope move together. The other plots the phase curve of a system with curved, rather than straight-line, phase and separates the two delays a curved phase implies: the delay of the carrier and the delay of the envelope riding on it. ## Overview Because both axes are logarithmic, a Bode plot compresses behaviour spanning many decades of frequency and of gain onto one legible page, which is why the format displaced simple linear plots of gain against frequency once electronic amplifiers began working from audio frequencies up into the megahertz range. [[Electrical_engineering|Electrical engineers]] adopted it first, for characterising amplifiers and filters, and [[Control_theory|control theory]] adopted it soon after for the same reason: a loop's [[Frequency_response|frequency response]] says almost everything about whether closing it will settle or oscillate, and a Bode plot is the cheapest way to see that response over its whole working range at once. A Bode plot is drawn for an open loop's or a plant's [[Transfer_function|transfer function]] far more often than for a closed loop, because the open-loop response is the one an engineer can reshape directly, by adding a filter stage or a compensator, and its Bode plot shows immediately how that change moves the gain and phase margins defined below, before the loop is ever closed. For a minimum-phase system, one free of right-half-plane poles or zeros and of pure delay, the phase curve is not even independent information: it is fixed once the magnitude curve is, related to it by an integral taken over the whole frequency axis. A system with a delay or an unstable pole breaks that relationship, which is one reason the [[Nyquist_stability_criterion|Nyquist criterion]], built to handle such systems directly, complements the Bode plot rather than duplicating it. ## Definition For a linear, time-invariant system whose [[Transfer_function|transfer function]] is H(s), with s the complex frequency variable of the [[Laplace_transform|Laplace transform]], the frequency response is H(s) evaluated along the imaginary axis, at s = j·ω for [[Angular_frequency|angular frequency]] ω (or s = j·2π·f for frequency f in hertz). Writing that complex number in polar form, H(jω) = |H(jω)|·e^(jφ(ω)), splits it into exactly the two real-valued functions of frequency a Bode plot draws: the magnitude plot is `20*log10(|H(jw)|)` in [[Decibel|decibels]] against log ω, and the phase plot is φ(ω) in degrees against the same log axis. The factor of 20 rather than 10 is the ordinary decibel convention for a ratio of amplitudes rather than of powers, since power is proportional to amplitude squared and log10(x²) equals 2·log10(x). Because the two curves recover H(jω) completely at every frequency, a Bode plot loses none of the information in the frequency response; it only presents it as two real curves instead of one complex-valued one, which is what makes it possible to plot, read and sketch by hand at all. Which axis convention a field prefers is mostly historical: control theory usually plots against angular frequency in radians per second, matching the s in the transfer function directly, while electronics and audio work more often plot against frequency in hertz. ## Frequency response The [[Frequency_response|frequency response]] of a [[Linear_time-invariant_system|linear, time-invariant system]] is its steady-state output amplitude and phase shift for a sinusoidal input, as a function of the input's frequency, and it is exactly the complex number a Bode plot's two curves specify at each frequency. It is also the Fourier transform of the system's [[Impulse_response|impulse response]], so a Bode plot and an impulse response are two views of one underlying system, one naturally suited to asking how the system treats a steady tone and the other to asking how it responds to a single sharp disturbance. A handful of frequencies read directly off the magnitude curve get their own names because designers ask for them by number: the corner or cut-off frequency, where the gain has fallen 3 dB, to half its passband power, marks the edge of a [[Low-pass_filter|low-pass]] or high-pass filter's passband, and the bandwidth of a bandpass response is the width between the two frequencies where the same 3 dB drop occurs on either side of the peak. None of these numbers requires anything beyond the magnitude curve to define; the phase curve adds the separate question of how much each frequency component is delayed, which matters whenever a signal's shape, and not only its amplitude, must survive passage through the system. ## Rules for handmade Bode plot Before software made an exact curve as easy to obtain as an approximate one, engineers sketched Bode plots from a transfer function's [[Pole–zero_plot|poles and zeros]] using a small set of straight-line rules, accurate enough for design work and exact in the limit far from each break point. ### Straight-line amplitude plot Each pole of the transfer function contributes a downward break of −20 dB per decade to the magnitude asymptote at the frequency equal to its own magnitude, and each zero contributes an upward break of the same size at its own frequency; a repeated pole or zero multiplies the break by its multiplicity, so two coincident poles turn a −20 dB/decade roll-off into −40 dB/decade. The full straight-line plot is these breaks added in order of increasing frequency, flat at 0 dB until the first break and changing slope at every one after it. In the sketch built around a [[Low-pass_filter|low-pass filter]]'s order n, the flat 0 dB asymptote and the −20n dB/decade roll-off asymptote are drawn as two straight lines that cross at exactly one point, and that crossing is the corner frequency by construction, whatever n is set to. ### Corrected amplitude plot The straight-line plot is an approximation, exact only far from a break; at the break itself, for a single real pole or zero, the true curve sits 3 [[Decibel|dB]] below (a pole) or above (a zero) the corner the two asymptotes meet at, since half power is −3.01 dB, not 0 dB. One octave to either side of the break the error has fallen to about 1 dB, and by two octaves away it is under a third of a decibel, which is why hand corrections are usually applied only within about an octave of each break and ignored beyond it. ### Straight-line phase plot A common hand rule draws a single real pole's phase not as a step but as a straight line from 0° at one decade below its corner frequency to −90° at one decade above it, passing through exactly −45° at the corner itself; a zero draws the mirror image, rising through +45°. Stacking these lines for every pole and zero, exactly as for the magnitude plot, approximates the true phase curve everywhere except in the busy region where two breaks fall within a decade of each other. ## Example ### Magnitude plot Take a single real pole at a corner frequency f_c, the case the order-one setting of the [[Low-pass_filter|low-pass]] sketch on this page draws exactly. Its magnitude is flat at 0 dB for f well below f_c, falls through −3.01 dB precisely at f_c, and settles onto a −20 dB/decade asymptote for f well above f_c; in the sketch, moving f_c across its full range, from 20 Hz to 40 kHz, slides this whole curve sideways along the log axis without changing its shape at all. ### Phase plot The same pole's phase falls smoothly from 0° at low frequency, through exactly −45° at f_c, to −90° at high frequency, and in the sketch this value at the corner holds exactly regardless of where f_c is set, because the phase of a single pole depends only on frequency relative to its own corner, f/f_c, never on the corner's absolute position. ### Normalized plot Both curves depend on frequency only through the ratio f/f_c, which is why filter tables and textbook figures are almost always drawn against a normalized frequency axis, f/f_c or ω/ωc, rather than against f itself: one curve, drawn once, describes a pole or a filter section at any corner frequency, and moving the corner is nothing more than relabelling the horizontal axis. In the sketch, raising the order also raises the phase lag measured at the corner itself, in steps of exactly 45° per pole: 45° for a single pole, 90° for the two-pole Butterworth pair, and so on, alongside the extra 20 dB per decade of ultimate roll-off each additional pole adds. ## An example with zero and pole A pole on its own only ever subtracts phase and rolls gain off; a zero placed near an existing pole can cancel much of that pole's effect over a chosen band, and reshaping a two-pole response this way is a standard compensation technique in amplifier design. In one worked design for a transimpedance amplifier with poles at −1 Mrad/s and −100 krad/s, a feedback network adds a zero and a second, faster pole chosen so the zero very nearly cancels the slower of the two original poles, leaving the amplifier's loop response looking, over the frequencies that matter, like a single-pole system set by the faster pole alone.[^montagne-ex1214] With the feedback [[Capacitor|capacitor]] at 1 nF and the feedback [[Resistor|resistor]] at 10 kilohms, the design equations call for a compensating capacitor near 14 nF and a compensating resistor near 70 ohms; carried through, the approximate formulas used to place the pole and the zero land about 5 percent short of the exact cancellation the design aimed for, a gap traceable to the approximation itself rather than to any error in the arithmetic.[^montagne-ex1214] The lesson generalizes beyond this one circuit: a zero added to cancel a pole is only ever an approximate cancellation, because the equations that place it are themselves approximate, and a pole–zero pair left imperfectly matched inside the working band shows up on the Bode plot as a small tilt across that band rather than as the flat response the design intended. ## Gain margin and phase margin Two numbers read directly off a Bode plot summarise how close a feedback loop sits to instability without the loop ever being closed. The phase margin is how much additional phase lag, at the frequency where the magnitude curve crosses 0 dB, would be needed to reach −180°; the gain margin is how much the gain could rise, at the frequency where the phase curve crosses −180°, before the magnitude curve there reaches 0 [[Decibel|dB]]. Both margins are distances from the same dangerous condition, a loop gain of exactly 1 at exactly −180° of phase, approached from the two different curves a Bode plot draws, and a sound design keeps a comfortable distance on both. ### Examples using Bode plots A transimpedance amplifier compensated by cancelling its slower pole with an added zero, its faster pole left alone, reaches a phase margin of about 65.5° at a 0 dB crossover near 789 kHz, with the closed-loop response left with a pole pair near 1.23 MHz damped to the standard Q of 0.707.[^montagne-ex1215] A simpler compensation on the same amplifier, a single added [[Capacitor|capacitor]] with no attempt at exact cancellation, reaches 58.3° of phase margin at a crossover near 759 kHz instead: about seven degrees less margin, traded for a network built from one component rather than two.[^montagne-ex1216] The trade runs the other way as well, since chasing the last few degrees of margin by exact pole–zero cancellation asks more of every component's tolerance and leaves the amplifier slower to recover from an overload, a cost the extra margin does not always justify.[^montagne-ex1215] ## Bode plotter A Bode plotter is an instrument, or a piece of software standing in for one, that produces a Bode plot automatically rather than point by point: it sweeps a stimulus through the frequency range of interest, measures the output's amplitude and phase at each step, and traces the two curves directly. Early implementations swept a sine oscillator and used a phase-sensitive detector; modern circuit simulators do the same thing numerically, evaluating a modelled transfer function at a dense grid of frequencies and printing the pole, zero and margin values alongside the curve rather than leaving them to be read off a ruler by hand. The pole and margin listings behind the worked compensation examples above were produced this way, by a circuit simulator evaluating the amplifier's modelled loop gain rather than by measuring a physical prototype.[^montagne-ex1215] Where a physical amplifier or filter sits on a bench rather than only in a model, the same measurement is made with a network analyzer, routine equipment across [[Electrical_engineering|electrical engineering]] laboratories. ## Related plots A [[Nyquist_stability_criterion|Nyquist plot]] carries the same frequency response onto a single curve in the [[Complex_analysis|complex plane]], magnitude as distance from the origin and phase as angle, sweeping frequency continuously along one curve instead of splitting the two quantities across separate panels; it trades the Bode plot's ease of hand-sketching for the ability to judge stability by counting encirclements of one point, which works even for a system whose transfer function is not a ratio of polynomials at all, such as one with a pure time delay. The two plots are two views of the same complex-valued function of frequency, and a point on one has an exact counterpart on the other. The phase plot also has its own derivative plot: differentiating the phase curve with respect to frequency, and reversing the sign, gives the group delay, the time shift a narrow band of frequencies experiences passing through the system, as distinct from the phase delay, the time shift implied by the phase at a single frequency taken on its own. Where the phase plot is a straight line, the two delays agree and the system merely shifts a signal in time without changing its shape; where the phase curve bends, they split apart, and a pulse or a modulated carrier passing through the system smears as differently delayed frequency components stop lining up. ## Microsims The first sketch, *Cut-off frequency*, draws the magnitude and phase Bode plot of a low-pass filter built from poles placed on a circle of radius equal to the corner frequency, the standard Butterworth construction, computed exactly from those poles rather than approximated. An f_c slider slides the corner frequency from 20 Hz to 40 kHz; an order slider sets the number of poles from one to five; a probe line, dragged along either curve, reads out the gain in [[Decibel|decibels]] and the phase in degrees at whatever frequency it sits on. ILLUSTRATIVE: the filter modelled is always this one Butterworth construction, not the many other pole placements a real design might choose. *Try:* Raise the order from one to five and watch the roll-off past the corner steepen by 20 dB per decade with every step, while the −3 dB point itself never moves off the corner frequency the sketch reports. The second sketch, *Group delay and phase delay*, plots the phase curve of a system whose phase is a quadratic function of frequency rather than a straight line, and draws both the secant from the origin to a movable marker, whose slope gives the phase delay, and the tangent at the marker, whose slope gives the group delay. A control labelled A sets the linear part of the phase, the base delay every frequency shares; a control labelled B sets the size of its curved, dispersive part; and a control labelled ωc sets the carrier [[Angular_frequency|angular frequency]] the lower panel modulates. That lower panel shows a pulsed carrier before and after the system, with the carrier's own crest and its envelope's peak marked separately as they slide apart. *Try:* Raise the dispersion control B from zero and watch the carrier and the envelope in the lower panel slide by different amounts, then return it to zero and watch the two markers lock back together. A three.js companion renders the same magnitude-and-phase, asymptote-and-margin picture in more depth, including the gain and phase margins read directly off the curves. <!-- SIGSIM:BEGIN g35 — Signal Processing portal microsim (framework build, specs/sims/Bode_plot.json); do not hand-edit inside --> **Microsim — three.js (Wikitube framework), pending deploy:** *Bode plot: straight-line asymptotes and the stability margins* will play here once `https://wikitube-3d-microsims.netlify.app/signal/Bode_plot.html` is live. <!-- pending: <div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/signal/Bode_plot.html" data-title="Bode plot"></div> --> *Built from `MICROSIM_GUIDE/specs/sims/Bode_plot.json`; part of the [[Signal_processing]] set ([[PORTAL_Signal_Processing]]).* <!-- SIGSIM:END --> ## Wikipedia : Wikitube **Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Bode_plot) : [Wikitube](https://en.wikitube.io/wiki/Bode_plot) Skeleton mirrored at revision 1362004641. Prose, emphasis and the microsims are Wikitube's own. ## See also - [[Nyquist_stability_criterion]] - [[Transfer_function]] - [[Frequency_response]] - [[Laplace_transform]] - [[Decibel]] - [[Root_locus_analysis]] - [[Pole–zero_plot]] - [[Control_theory]] - [[Low-pass_filter]] ## Notes The first sketch models an ideal Butterworth low-pass filter with poles placed exactly on a circle; a physical filter's poles depart from that ideal placement by component tolerance and parasitic reactance. The second sketch's quadratic phase model is chosen to keep phase delay and group delay in closed form; a real system's phase is rarely so simple a function of frequency. ## References [^bode1940]: Hendrik W. Bode, "Relations Between Attenuation and Phase in Feedback Amplifier Design," *Bell System Technical Journal*, vol. 19, no. 3 (July 1940), pp. 421–454. https://doi.org/10.1002/j.1538-7305.1940.tb00839.x [^montagne-ex1214]: Anton Montagne, *Structured Electronics Design: A Conceptual Approach to Amplifier Design*, 3rd ed. (2023), Example 12.14, p. 449 (PDF page). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/structured-electronics-design-a-conceptual-approach-to-amplifier-design . CC BY. [^montagne-ex1215]: Anton Montagne, *Structured Electronics Design: A Conceptual Approach to Amplifier Design*, 3rd ed. (2023), Example 12.15, pp. 449–452 (PDF pages). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/structured-electronics-design-a-conceptual-approach-to-amplifier-design . CC BY. [^montagne-ex1216]: Anton Montagne, *Structured Electronics Design: A Conceptual Approach to Amplifier Design*, 3rd ed. (2023), Example 12.16, p. 455 (PDF page). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/structured-electronics-design-a-conceptual-approach-to-amplifier-design . CC BY. ## External links - [Cut-off frequency (live microsim)](https://editor.p5js.org/sciencenibber/full/Pl6uWXS8N) - [Cut-off frequency (editor / fork)](https://editor.p5js.org/sciencenibber/sketches/Pl6uWXS8N) - [Group delay and phase delay (live microsim)](https://editor.p5js.org/sciencenibber/full/_k-4L8n9U) - [Group delay and phase delay (editor / fork)](https://editor.p5js.org/sciencenibber/sketches/_k-4L8n9U) <!-- Hubs: Signal_processing. Portals: PORTAL_Signal_Processing. Signal Processing portal wave 1 · 2026-09-17 · drafted. -->