Transfer Function H(s) and Poles/Zeros
Learn how transfer function H(s) and its poles/zeros predict circuit stability, frequency response, and transient behavior, with a worked RC/RLC example.
Contents & prerequisites
Every RC filter, control loop, and amplifier stage a hardware engineer designs has one underlying mathematical object: a transfer function H(s). It compresses the entire dynamic behavior of a linear circuit — DC gain, resonances, rolloff rates, stability margins, transient response — into a ratio of polynomials in the complex frequency variable s. Reading H(s) fluently, and knowing what its poles and zeros mean physically, is what lets you predict a circuit's behavior before ever touching SPICE or a bench supply.
What H(s) Represents
For a linear, time-invariant (LTI) circuit, the transfer function is defined as the ratio of the Laplace transform of the output to the Laplace transform of the input, with all initial conditions set to zero:
H(s) = Y(s) / X(s)
s is the complex frequency variable, s = σ + jω, where σ is a real exponential-decay/growth rate and ω is angular frequency (rad/s). This generalizes the phasor analysis you'd do at a single frequency (s = jω) to include transient and stability behavior (the σ axis).
Because every circuit element has a known s-domain impedance — resistor Z = R, capacitor Z = 1/(sC), inductor Z = sL — you can build H(s) for any linear network using the same tools as DC analysis (KVL, KCL, voltage dividers, Thevenin equivalents), just with complex impedances instead of real resistances.
Poles and Zeros
Any H(s) for a lumped, finite circuit is a ratio of two polynomials in s:
H(s) = N(s) / D(s) = K · (s − z₁)(s − z₂)...(s − zₘ) / [(s − p₁)(s − p₂)...(s − pₙ)]
- Zeros (z₁, z₂, …) — roots of the numerator. At
s = zᵢ, H(s) = 0: the circuit blocks that frequency/mode. - Poles (p₁, p₂, …) — roots of the denominator. At
s = pᵢ, H(s) → ∞: these are the natural frequencies of the circuit, the values of s at which the network can sustain a response with no input. - K — the gain constant, set by component values, which fixes the overall scale (e.g., DC gain when evaluated at s = 0).
Poles and zeros are generally complex numbers and are plotted on the s-plane (real axis σ, imaginary axis jω). For a physical circuit built from passive R, L, C, poles must lie in the left half-plane (LHP, negative real part) for the response to be stable (decaying, not growing, transients). A pole with positive real part means an unstable, exponentially growing mode — impossible in a passive RLC network but achievable with active feedback (e.g., an oscillator or an unstable control loop).
| Pole location | Time-domain behavior |
|---|---|
| Real, negative (σ < 0, ω = 0) | Pure exponential decay, e^(σt) |
| Complex conjugate pair, negative real part | Damped oscillation (decaying sinusoid) |
| On the jω axis (σ = 0) | Sustained oscillation, undamped |
| Positive real part | Growing exponential — unstable |
Worked Example: RC Low-Pass Filter
Take the standard single-pole RC low-pass: input Vin, series R, output Vout taken across C to ground.
Step 1 — Impedances in the s-domain: R stays R; C becomes 1/(sC).
Step 2 — Voltage divider:
H(s) = Vout(s)/Vin(s) = (1/sC) / (R + 1/sC) = 1 / (1 + sRC)
Step 3 — Identify pole/zero. Rewrite in standard form:
H(s) = (1/RC) / (s + 1/RC)
- Pole:
s = −1/RC(real, negative — stable, decaying). - Zeros: none finite (numerator is a constant).
- DC gain: H(0) = 1 (0 dB), as expected — a capacitor is an open circuit at DC, so all of Vin appears at Vout.
Step 4 — Numeric check. Let R = 10 kΩ, C = 100 nF. Then RC = 10×10³ × 100×10⁻⁹ = 1×10⁻³ s = 1 ms, so the pole is at s = −1000 rad/s, i.e., ω₀ = 1000 rad/s → f₀ = ω₀/2π ≈ 159 Hz.
Step 5 — Verify against the time domain. The known step response of an RC low-pass is Vout(t) = Vin·(1 − e^(−t/RC)), with time constant τ = RC = 1 ms. Taking the Laplace transform of this exponential response independently reproduces the same pole at s = −1/τ = −1000 rad/s — consistent with Step 3. The pole location and the time constant are two views of the same number: τ = −1/σ_pole.
Step 6 — Frequency-domain cross-check. At ω = 1/RC (the pole frequency evaluated on the jω axis), |H(jω)| = 1/√(1+1²) = 1/√2 ≈ 0.707, i.e., −3 dB. This matches the standard −3 dB corner frequency result for an RC filter, confirming the pole at −1/RC is the −3 dB point.
From H(s) to Frequency Response and Transients
Two complementary readings of the same H(s):
- Set s = jω to get the sinusoidal steady-state frequency response — this is exactly what feeds a Bode plot's magnitude (
20·log₁₀|H(jω)|) and phase (∠H(jω)). - Find the roots of D(s) (the poles) to get the natural response modes — this predicts step response, ringing, settling time, and stability without ever computing a frequency sweep.
This dual view is why H(s) is more fundamental than either representation alone: a Bode plot is a slice of H(s) along the jω axis, and a step response is the inverse Laplace transform of H(s)/s.
Second-Order Example: RLC Band-Pass
A series RLC circuit driving current through R, with output taken across R, gives a band-pass transfer function:
H(s) = (R/L)·s / [s² + (R/L)·s + 1/(LC)]
Comparing to the standard second-order form s² + 2ζωₙs + ωₙ², the natural frequency is ωₙ = 1/√(LC) and the damping ratio is ζ = (R/2)·√(C/L). The poles are:
p = −ζωₙ ± jωₙ√(1−ζ²) (for ζ < 1, underdamped)
- ζ < 1: complex-conjugate pole pair → damped ringing, peak response near ωₙ (this is the resonance behavior covered in RLC series/parallel analysis).
- ζ ≥ 1: two real poles → no overshoot, purely exponential settling.
- ζ = 0: poles sit exactly on the jω axis → undamped, sustained oscillation — the marginal-stability boundary.
This single algebraic condition on ζ is why pole location tells you at a glance whether a filter or feedback loop will ring, overshoot, or settle smoothly — no time-domain simulation required.
Practical Design Implications
- Stability assessment: if any pole of a feedback system's closed-loop H(s) lands in the right half-plane, the circuit is unstable regardless of how good it looks at DC.
- Filter shaping: Butterworth, Chebyshev, and Bessel filters are literally distinguished by where their poles are placed on the s-plane (equally spaced on a circle for Butterworth, etc.).
- Transient prediction: pole real parts set settling time (
t_settle ≈ few/|σ|); pole imaginary parts set ringing frequency. - Sensitivity: a pole/zero near the jω axis means the response is highly sensitive to component tolerance — worth flagging in a tolerance/Monte Carlo analysis.
- Tool support: SPICE
.ACanalysis effectively samples H(jω); root-locus and pole-zero maps in MATLAB/Python's control toolboxes directly plot pole/zero locations from a symbolic or numeric H(s).
Key Takeaways
- H(s) = Y(s)/X(s) is the s-domain ratio of output to input for an LTI circuit, built using the same KVL/KCL techniques as DC analysis but with complex impedances (
R,1/sC,sL). - Zeros are s-values where H(s) = 0 (the circuit blocks that mode); poles are s-values where H(s) → ∞ (the circuit's natural frequencies).
- Pole location on the s-plane fully determines stability and transient shape: negative real part → decaying/stable; positive real part → unstable; complex pairs → oscillatory/ringing behavior.
- Setting s = jω recovers the sinusoidal frequency response (and the Bode plot); the pole real part directly gives the time constant or decay rate of the transient response.
- Second-order systems add a damping ratio ζ and natural frequency ωₙ; ζ < 1 gives complex poles and resonant peaking, ζ ≥ 1 gives overdamped, non-ringing settling.
Learning
Sign in to track your progress.
Evidence
Public projects engineers linked to Transfer Function H(s) and Poles/Zeros.
No engineer has linked a project to this topic yet. Built something that proves it? Add the project and tag it with analog-electronics-transfer-function-hs-and-poleszeros — it then shows here and on your public profile.
