A transfer function tells you how a circuit’s output amplitude and phase compare to its input as frequency changes. Think of the circuit as a black box: a signal goes in, the network shapes it, and a (possibly scaled and delayed) signal comes out.
\(V_\text{out}(s) = H(s)\,V_\text{in}(s)\)
Magnitude and phase of H(s) depend on frequency.
In the Laplace domain we write that input–output ratio as:
\[ H(s) = \frac{V_\text{out}(s)}{V_\text{in}(s)} \]The complex variable \(s\) carries frequency in its imaginary part:
\[ s = \sigma + j\omega \]One compact expression captures both how much the signal is scaled and how far it is shifted in time — amplitude and phase together, across all frequencies.
When a real number is enough
Ordinary real numbers suffice when the answer is just a gain. A resistive divider is a fixed ratio — it changes
magnitude, not phase:
Capacitors and inductors are different: their impedance depends on frequency, so the same output level can come with a phase rotation. That is why we move to \(s\).
Factored pole–zero form
Once you have \(H(s)\) from the schematic, rewrite it so each breakpoint is visible — the language of Bode plots,
compensators, and loop-gain tools:
Every \((1 + s/\omega_p)\) pole and \((1 + s/\omega_z)\) zero in that form maps directly to a corner on the plot. The interactive example below walks through the algebra the way Equation (2) does in the article — then keeps the result live as you drag capacitor ESR.
The divider gain is \(R_\text{bot}/(R_\text{top}+R_\text{bot})\) — equal resistors are not required. A 90 Ω / 10 Ω pair gives 0.1 (−20 dB) with 0° phase. Tune RC \(R\), \(C\), and frequency to match that level and watch phase lag appear on the scope. Cap ESR spans 0–1 Ω (0–1000 mΩ).
10 Hz – 10 MHz · \(f_p\) (red), \(f_z\) (green), scope frequency (violet crosshair)
Treat the shunt leg as \(Z_C(s)\), apply the voltage-divider rule, multiply top and bottom by \(sC\), then factor into pole and zero frequencies — the same steps as Equation (2) in the article. The ideal column is fixed; the ESR column keeps the same form as you drag ESR — when ESR = 0 the zero sits at \(\infty\) and the numerator’s \(s R_s C\) term is \(0\).