# Bode's Gain-Phase Theorem

*For a minimum-phase network the phase at any frequency is determined by the slope of the log-magnitude across **all** frequencies, with a logarithmic weighting that concentrates the contribution near the frequency of interest.*

## Bode 1940 — the engineer's K–K

In the late 1930s, while working at Bell Labs on feedback amplifier
stability, Hendrik W. Bode needed a quantitative answer to a practical
question: given a measured magnitude response |H(jω)|, how much phase
lag comes with it? The answer, worked out in his 1940 paper and the
classic 1945 monograph *Network Analysis and Feedback Amplifier
Design*, is mathematically the same statement as K–K applied to log H,
but phrased in a form directly usable by amplifier designers.

For a minimum-phase transfer function H(s) — no poles or zeros in the
right half-plane, analytic in the RHP with `s = σ + jω` (engineering
convention `e^{+jωt}`) — log H(s) is itself analytic in the RHP, so its
real part ln|H(jω)| and imaginary part ∠H(jω) on the imaginary axis are
a Hilbert-transform pair.

## The gain-phase integral

Bode wrote the Hilbert-pair relation in a form that makes the
logarithmic structure explicit. Changing variables to
u = ln(ω/ω₀), the phase at a reference frequency ω₀ is

```
∠H(ω₀) = (1/π) ∫_{−∞}^{∞} [d(ln|H|)/du] · ln|coth(|u|/2)| du
```

where the integral runs over the whole log-frequency axis. The kernel
`ln|coth(|u|/2)|` is a weighting function that peaks sharply at u = 0
(ω = ω₀) and falls off symmetrically as |u| → ∞. Approximately,
`ln|coth(|u|/2)| ≈ 2 e^{−|u|}` for large |u|, so contributions from
frequencies far from ω₀ are exponentially suppressed in the log
variable. The phase at ω₀ is dominated by the magnitude slope in a
neighbourhood of ω₀, which is exactly why a designer can estimate phase
from a Bode plot by inspection.

Integrating the kernel gives

```
∫_{−∞}^{∞} ln|coth(|u|/2)| du = π²/2
```

so if d(ln|H|)/du were constant equal to a slope m (in nepers per
decade of ln ω) over a wide band around ω₀, the phase would approach
m · π/2 radians. Converting to the usual "dB per decade" units and
remembering that 20 dB/dec corresponds to a slope of 1 neper per neper
(d ln|H|/d ln ω = 1), this gives the famous rule of thumb:

```
−20 dB/decade of magnitude slope  ⇒  ≈ −90° of phase
−40 dB/decade                      ⇒  ≈ −180°
−n·20 dB/decade                    ⇒  ≈ −n·90°
```

for a minimum-phase system with slope approximately constant over a
decade or so around the evaluation frequency. The exact phase deviates
from this asymptote when the slope varies (near pole or zero corners),
but the approximation is accurate enough to design by.

## Why it matters for feedback

The gain-phase theorem is the hinge of classical feedback stability.
Consider a unity-feedback loop with open-loop transfer function L(jω).
Stability (Nyquist) requires the phase at gain crossover
|L(jω_c)| = 1 to be greater than −180° by some margin. If the loop is
minimum-phase, Bode's theorem says the phase at ω_c is *determined* by
the magnitude slope there. Roughly:

- a −20 dB/dec crossover gives about 90° phase margin;
- a −40 dB/dec crossover gives essentially zero phase margin;
- steeper than −40 dB/dec is unstable.

Therefore, for minimum-phase plants, a stable closed-loop demands
|L(jω)| to cross 0 dB with a slope near −20 dB/dec. Any steeper
low-frequency roll-off, needed for disturbance rejection, must be
transitioned back to −20 dB/dec before crossover. This is the entire
origin of the "lead-lag compensation" design style: reshape the slope
at crossover to buy back phase.

## Non-minimum-phase penalty — Bode is an inequality

There is a subtle but important asymmetry between K–K and Bode.
Kramers–Kronig is an **equality**: causality alone (UHP analyticity of
χ) forces real and imaginary parts to be a Hilbert pair. Bode's
gain-phase relation, by contrast, requires the *additional* assumption
that log H is analytic in the RHP, i.e. that H has *no zeros* in the
RHP. When H has RHP zeros — and many physical response functions do —
the actual phase exceeds the Bode prediction. As Bechhoefer (2011)
puts it: Bode's relation is most usefully read as the **minimum** phase
lag compatible with a given magnitude, with real systems showing this
lag *or more*.

Concretely, if H has a RHP zero at s = z_R, then H = H_min · H_ap where
the allpass factor

```
H_ap(s) = (z_R − s)/(z_R + s)
```

contributes additional phase −2 arctan(ω/z_R) while leaving |H|
unchanged. The allpass phase is *on top of* the K–K-predicted
minimum-phase contribution — it is the excess phase the designer
cannot escape by magnitude shaping alone. The decomposition
generalises: any stable causal H factors as a minimum-phase piece
times a Blaschke product of allpass terms, one per RHP zero
(Chapter 19).

Pure delays sit at the limit: a delay e^{−sT} has unit magnitude,
contributes phase −ωT, and is the result of pushing a RHP zero to
infinity. Padé rational approximations to e^{−sT} are explicit allpass
functions with finite RHP zeros — for example
`H_1(s) = (1 − sT/2)/(1 + sT/2)` — whose step response shows the
characteristic *inverse response* (initial motion in the wrong
direction) that gives non-minimum-phase systems their reputation for
being hard to control.

RHP zeros therefore impose a fundamental bandwidth limit: the
crossover frequency ω_c must lie well below z_R, typically
ω_c ≲ z_R/2, or the allpass phase erodes the stability margin even
when the magnitude slope is perfectly chosen. Time-delay elements
have the same effect, capping the achievable bandwidth near
ω_c ≲ 1/T.

This is the precise feedback-design statement of the K–K principle:
causality (analyticity in the RHP) plus stability (no RHP poles)
determines phase from magnitude up to an unavoidable allpass factor
that only makes things worse.

## Where the upper-half-plane zeros come from

A useful pedagogical point — emphasised by Bechhoefer (2011) — is
that the *poles* of H reflect intrinsic dynamics (the resonances of
the underlying physics), but the *zeros* depend on the choice of
input and output. Two systems with identical internal dynamics can
have one minimum-phase and one non-minimum-phase transfer function
purely because of how excitation is applied and where measurement is
taken.

The cleanest example is a flexible bar of mass m supported by two
springs, with input force u(t) applied at position ℓ_u from the
centre of mass and output y(t) the vertical displacement measured at
some other point along the bar. If the measurement is **collocated**
with the actuator (sensor at the same point as the force), the
transfer function from u to y is minimum-phase: poles and zeros
alternate on the imaginary axis with a zero between every pair of
resonances, and the asymptotic phase is π/2 times the relative degree.
If the measurement is **non-collocated** (sensor on the opposite side
of the centre of mass), the same poles remain — they are intrinsic —
but the zeros migrate into the RHP, and the phase lag exceeds the
minimum-phase prediction. The classical example of this in everyday
life is the rear-steered bicycle: steering the back wheel of a bicycle
puts a RHP zero in the steering-angle-to-tilt transfer function,
making the bike essentially unrideable (Åström, Klein and Lennartsson,
*IEEE Cont. Syst. Mag.*, 2005).

The practical lesson is to be proactive about input/output choice:
many "non-minimum-phase pathologies" disappear when the experiment is
re-arranged so that the actuator and sensor are co-located, or so
that the relevant zeros are pushed back into the LHP. In optical
reflectance, for instance, a thick sample at normal incidence is
typically minimum-phase, while a thin film or oblique-incidence
measurement may not be (Chapter 23).

## Connection to K–K on log H

Bode's relation and the minimum-phase K–K statement of Chapter 19 are
the same identity in different coordinates. For the physics convention,
log χ(ω) analytic in the UHP (zero-free) gives a Hilbert-transform
relation between ln|χ| and ∠χ on the real axis. Switching to log ω,
writing the Hilbert kernel in the new variable, and simplifying with
the identity

```
P ∫ dω′/(ω′² − ω²)  ∝  ln|coth(|u|/2)|
```

after change of variables (u = ln(ω/ω₀)) recovers Bode's exact form.
The "weighting concentrates near u = 0" feature is the Hilbert
transform's local character expressed logarithmically: phase at ω₀
responds most to magnitude slope near ω₀, with exponentially decaying
sensitivity to remote frequencies.

## Bode's sensitivity integral — the waterbed effect

A sister integral due to Bode sharpens the first lesson. For a stable
feedback loop with open-loop L(s) and sensitivity S(s) = 1/(1 + L(s)),
if L has at least two more poles than zeros,

```
∫₀^∞ ln|S(jω)| dω = π Σ Re(p_k)
```

where the sum runs over any RHP poles p_k of L (zero if the plant is
open-loop stable). The left side is a **conserved quantity** — it only
depends on the plant's unstable poles, not on the controller. So any
attenuation (`|S| < 1` ⇒ ln|S| < 0) over one band must be paid for by
amplification (`|S| > 1`) somewhere else, keeping the net integral
fixed. Push the disturbance response down at low frequencies and it
inevitably pops up somewhere in the mid-band. This is the classic
**waterbed effect** of feedback design, and it is the sensitivity-
function twin of the gain–phase theorem — both are consequences of
log S being analytic and obeying a dispersion relation. RHP zeros and
time delays tighten the book-keeping further by forcing a weighted
version with a positive lower bound on how much amplification the
waterbed must carry.

## Take-away

Bode's gain-phase theorem is the version of Kramers–Kronig that every
control and RF engineer meets, usually without being told it is K–K.
The practical payoff is that phase is not independent of magnitude in
a minimum-phase system — it is *determined* by magnitude through a
logarithmic convolution — and therefore feedback stability is a
magnitude-shape problem. The penalty for non-minimum-phase elements
(RHP zeros, delay) is a direct, unavoidable loss of phase margin, and
the sensitivity integral shows that you cannot cheat the loop's
disturbance rejection bookkeeping either.

## See also

- [10_causality_LTI.md](10_causality_LTI.md)
- [13_hilbert_transform.md](13_hilbert_transform.md)
- [19_minimum_phase_DSP.md](19_minimum_phase_DSP.md)

## References

- H. W. Bode, *Network Analysis and Feedback Amplifier Design*, Van
  Nostrand, 1945.
- J. Bechhoefer, "Kramers–Kronig, Bode, and the meaning of zero",
  *American Journal of Physics*, vol. 79, no. 10, pp. 1053–1059, 2011.
  Sets out the equality-vs-inequality distinction and the
  collocation/zero-position arguments used in this chapter.
- K. J. Åström, R. E. Klein, A. Lennartsson, "Bicycle dynamics and
  control", *IEEE Control Systems Magazine*, vol. 25, no. 4,
  pp. 26–47, 2005.
- G. F. Franklin, J. D. Powell, A. Emami-Naeini, *Feedback Control of
  Dynamic Systems*, 8th ed., Pearson, 2019.
- K. J. Åström, R. M. Murray, *Feedback Systems*, 2nd ed., Princeton,
  2021.
- [Wikipedia: Bode's sensitivity integral](https://en.wikipedia.org/wiki/Bode%27s_sensitivity_integral)
