Bode Plotter & Bode Plot Generator
Type a transfer function — factored, as num/den coefficients, or as zeros, poles and gain. Code computes the magnitude and phase curves, the corners and the margins exactly, and the AI draws a publication-ready Bode plot from them.
Or start from an example
Bode plot finishes
One real render per finish, each from a different transfer function — click a card to apply the finish, or take its transfer function into the composer.
What is a Bode plot?
A Bode plot shows a linear system’s frequency response as two graphs on a shared logarithmic frequency axis: magnitude in decibels on top and phase in degrees below. Each pole and zero bends the magnitude by a fixed slope at its corner frequency, so the shape of G(s) can be read straight off the plot.
About this Bode plotter
- Type G(s) as a factored expression such as 100/((s+1)(s+100)), as MATLAB-style coefficient lists num = [1 10], den = [1 3 2], or as K, zeros and poles — complex roots like −1±2j included.
- Symbols are substituted when you define them: write ωn²/(s²+2ζωn s+ωn²) with ζ = 0.2 and ωn = 10.
- Roots, corner frequencies, slopes, a resonance peak, the gain and phase crossovers and both stability margins are computed by code before anything is drawn.
- The frequency axis spans two decades either side of the corners, in rad/s — or in Hz when you ask for Hz.
- Numerator and denominator up to degree 8; right-half-plane zeros and poles are plotted as computed.
How the magnitude in dB is computed
The magnitude is 20 times the base-10 logarithm of |G(jω)|, and the phase is the angle of G(jω) in degrees. A factor of 10 in gain is +20 dB, a factor of 0.1 is −20 dB, and |G| = 1 is 0 dB.
|G(jω)|dB = 20 · log₁₀ |G(jω)|, ∠G(jω) = Σ∠zeros − Σ∠poles
In words
Substitute s = jω, take the size of the complex result and convert it to decibels; add up the angles of the zero factors and subtract those of the pole factors for the phase. A real pole at ω = a contributes −3 dB and −45° at its own corner and bends the magnitude down by 20 dB per decade above it.
20·log₁₀ is used because |G| is an amplitude ratio; power ratios use 10·log₁₀.
How to make a Bode plot
Type the transfer function
Write G(s) = 10(s+2)/(s(s+10)), paste num and den coefficient lists from MATLAB, or give K, zeros and poles. Both panels are drawn above the box from the computed curves the moment it parses.
Choose the finish
Textbook with dashed asymptotes, the MATLAB bode() look with its grid, a compact IEEE column figure, or a dark slide. Ask for “gain and phase margins marked” to add the margin markers.
Generate and refine
The AI draws each curve through the computed points and never estimates a slope or a phase. Keep editing in chat — relabel axes, add a title, switch the finish — then export as PNG, SVG or PPTX.
What each factor does on a Bode plot
Every Bode plot is the sum of a few standard factors, which is why the straight-line approximation works.
| Factor in G(s) | Magnitude slope | Phase contribution | At the corner |
|---|---|---|---|
| Gain K | 0 dB/decade, level 20·log₁₀|K| | 0° (or ±180° if K < 0) | — |
| Integrator 1/s | −20 dB/decade everywhere | −90° at all frequencies | Crosses 0 dB at ω = 1 |
| Real pole 1/(s/a + 1) | 0, then −20 dB/decade above a | 0° to −90° | −3 dB and −45° at ω = a |
| Real zero (s/a + 1) | 0, then +20 dB/decade above a | 0° to +90° | +3 dB and +45° at ω = a |
| Complex pole pair (ωn, ζ) | 0, then −40 dB/decade above ωn | 0° to −180° | −90° at ωn; a peak when ζ < 0.707 |
| Right-half-plane zero (1 − s/a) | 0, then +20 dB/decade above a | 0° to −90° | Adds lag like a pole — non-minimum phase |
The straight-line (asymptotic) Bode plot is off by at most 3 dB at a real corner, but a lightly damped pair can peak far above it — at ζ = 0.2 the resonance is about +8 dB.
Bode plot vs Nyquist plot vs Nichols chart
All three show the same frequency response G(jω): a Bode plot splits it into magnitude and phase against frequency, a Nyquist plot traces it as one curve in the complex plane, and a Nichols chart plots magnitude against phase.
| Question | Bode plot | Nyquist plot | Nichols chart |
|---|---|---|---|
| Axes | Frequency (log) vs dB, and vs degrees | Real part vs imaginary part | Phase (deg) vs magnitude (dB) |
| Frequency visible | Yes, on the x-axis | Only as labels along the curve | Only as labels along the curve |
| Gain and phase margins | Read directly at the crossovers | Distance and angle to −1 | Distance to the (−180°, 0 dB) point |
| Stability of unstable open loops | Not decidable from margins alone | Decided by the Nyquist criterion | Not directly |
| Sketched by hand | Easily, with straight-line asymptotes | Harder | Rarely |
Gain and phase margins read from a Bode plot assume a stable open loop. When G(s) has right-half-plane poles, the tool still plots and states the margins, but closed-loop stability needs the Nyquist criterion.
Where Bode plots are used
Bode plots are used wherever a system’s response depends on frequency — feedback control, filters, amplifiers and mechanical vibration.
Control-system design
Open-loop Bode plots with gain and phase margins marked, to size a controller and check how much gain or delay the loop tolerates.
Filter design
Low-pass, high-pass and band-pass responses with their cutoff frequencies and roll-off slopes, for analog circuits and signal processing.
Lead and lag compensators
The phase hump of a lead network and where its maximum lands, the standard figure of a controller-design report.
Coursework and exams
Clean textbook-style plots with asymptotes dashed, for lab reports, lecture slides and worked solutions.
Bode plot questions, answered
How do I make a Bode plot from a transfer function?
Type the transfer function into the box — for example G(s) = 100/((s+1)(s+100)) — pick a finish and generate. The magnitude and phase curves, corners and margins are drawn above the box before any credit is spent, and the figure is drawn from exactly those numbers.
How do I find the gain margin and phase margin from a Bode plot?
The phase margin is 180° plus the phase at the gain crossover, where the magnitude crosses 0 dB; the gain margin is minus the magnitude in dB at the phase crossover, where the phase crosses −180°. The tool computes both and marks them when you ask for “gain and phase margins marked”; if the phase never reaches −180°, the gain margin is infinite.
What is a corner frequency?
A corner (break) frequency is where a pole or zero starts to bend the magnitude — at ω equal to the size of the root. For a real pole the curve sits 3 dB below the straight-line approximation there and the phase is 45° past its starting value.
What slopes do poles and zeros add on a Bode plot?
Each real pole adds −20 dB per decade above its corner, each real zero +20 dB per decade, and a complex pair ±40 dB per decade. An integrator (a pole at s = 0) gives −20 dB per decade from the lowest frequency.
How do I convert magnitude to decibels?
Multiply the base-10 logarithm of the magnitude by 20: 20·log₁₀|G(jω)|. A gain of 10 is 20 dB, 100 is 40 dB, 0.707 is about −3 dB and 1 is 0 dB.
Is this the same as MATLAB’s bode() command?
It computes the same thing — |G(jω)| in dB and ∠G(jω) in degrees over a log frequency grid — and accepts the same num/den coefficient lists. The MATLAB finish mimics bode()’s look with its blue curves and grid; the figure itself is drawn by the AI from the computed curves, so it is a figure, not a numeric export.
Can I plot a second-order system with damping ratio and natural frequency?
Yes — write ωn²/(s² + 2ζωn s + ωn²) with ζ = 0.2 and ωn = 10, or the numbers directly. A damping ratio below 0.707 gives a resonance peak, which is computed and drawn at its exact height and frequency.
What are the asymptotes on a Bode plot?
They are the straight-line approximation: flat or sloped segments meeting at the corner frequencies. The textbook finish draws them as dashed lines behind the real curve; the other finishes leave them out unless you ask for asymptotes.
Can the frequency axis be in Hz instead of rad/s?
Yes — write “in Hz” in the description and every frequency is divided by 2π. Otherwise the axis is in rad/s, the unit the transfer function in s is written in.
Does the AI change or invent the curves?
No. The roots, slopes, points on each curve, corners and margins are computed by code and written into the prompt. Every regeneration recomputes them from your transfer function, so switching the finish never moves a corner.
Is this Bode plot calculator free?
Yes to start — every new account gets 100 free credits and no card is required to sign up. The computed preview costs nothing; credits are spent only when you generate the figure. Search for a Bode plot maker, a Bode plot calculator or a Bode plot online and you land on the same thing: a transfer function in, an exact Bode plot out.
Sources
- bode — Bode frequency response of dynamic system — MathWorks (MATLAB documentation)
- Control Systems Engineering, 8th Edition (Norman S. Nise) — Wiley
- Bode plot — Wikipedia
Keep exploring
Our other diagram tools, and the guides behind them.
Draw your Bode plot
From a transfer function to a publication-ready figure in about a minute — curves computed exactly, styling handled by the AI.
Start drawing