Interactive Pole-Zero Analysis Tool
Copy this iframe to your website:
1 | |
Description
This MicroSim works in the z-plane, the domain of discrete-time systems. Poles (red crosses) and zeros (blue circles) are placed inside and around the green unit circle. Four plots show what they do: the magnitude response in dB, the phase response, the impulse response \(h[n]\) and the step response \(s[n]\). A banner states whether the causal system is stable, marginally stable or unstable.
Drag a pole or zero with the mouse, or select it and set its Radius and Angle with the sliders. Dragging snaps to the unit circle and to the real axis. System loads one of eight presets, and Add pole, Add zero and Remove edit the set (up to six items). Move the mouse over the magnitude or phase plot to place the orange point \(e^{j\omega}\) on the unit circle: the vectors from every pole and zero to that point are drawn, and the readout gives \(|H|\) and \(\angle H\) at that frequency.
The tool illustrates two ideas: the magnitude response is a ratio of distances from the zeros and poles to a point on the unit circle, and a causal system is stable when every pole lies strictly inside the unit circle. The gain is fixed at \(G = 1\) throughout.
This simulation is used in Chapter 8: Advanced Transforms.
Mathematical Concepts
A rational transfer function is fixed, apart from the gain \(G\), by its zeros \(z_i\) and poles \(p_i\):
The frequency response is \(H(z)\) on the unit circle, \(z = e^{j\omega}\), with \(\omega\) in radians per sample from 0 to \(\pi\):
The phase is the sum of the angles of the zero vectors minus the sum of the angles of the pole vectors. A pole close to the unit circle gives a short vector in the denominator and therefore a resonance peak at that angle. A zero on the unit circle gives a vector of length zero and therefore a notch.
Stability
For a causal discrete-time system, bounded-input bounded-output stability requires every pole to lie strictly inside the unit circle:
| Pole location | Banner | Impulse response |
|---|---|---|
| All poles inside the unit circle, \(\lvert p\rvert < 1\) | Stable (green) | Decays |
| A simple pole on the unit circle, \(\lvert p\rvert = 1\) | Marginally stable (amber) | Neither decays nor grows |
| Any pole outside the unit circle, \(\lvert p\rvert > 1\), or a repeated pole on it | Unstable (red) | Grows |
Zeros do not affect stability. (For continuous-time systems, analyzed in the s-plane with the Laplace transform, the corresponding rule is that all poles lie in the left half-plane.) When the system is not stable its frequency response does not exist as a steady-state gain; the curves are then drawn dashed and grey to show only what the formula gives.
Real Systems and the Origin
A system with real coefficients has poles and zeros that are either real or in complex-conjugate pairs. The tool enforces this: a pole or zero placed off the real axis always appears with its mirror image, and both move together.
The impulse and step responses come from the causal difference equation that has these poles and zeros. When the numbers of poles and zeros differ, a causal system has extra zeros or poles at \(z = 0\) to make them equal. They are drawn in grey with their count. They add delay and change the phase, but not the magnitude, since every point of the unit circle is at distance 1 from the origin.
Lesson Plan
Learning Objectives
By the end of this activity, students will be able to:
- Determine from a pole-zero plot whether a causal discrete-time system is stable.
- Explain the magnitude response as a ratio of distances from zeros and poles to a point on the unit circle.
- Relate the radius and angle of a pole pair to the decay rate and oscillation frequency of the impulse response.
- Design a simple resonator or notch by placing poles and zeros.
Target Audience
Undergraduate students in signals and systems or digital signal processing. Plan 25-30 minutes.
Prerequisites
- Complex numbers in polar form
- The z-transform and transfer functions
- Impulse response and frequency response
Activities
Activity 1: Resonance from geometry (7 min). Load Resonator (pole pair), which has \(r = 0.9\) and an angle of 45°. Hover over the magnitude plot until the readout says \(\omega = 0.25\pi\) and read \(|H|\): it is about 7.4 (17.4 dB). The nearer pole is \(1 - r = 0.1\) from \(e^{j\pi/4}\) and the other is about 1.35 away, and \(1/(0.1 \times 1.35) \approx 7.4\). Then set the radius to 0.5 and to 0.99. The peak of the magnitude plot rises from about 5.5 dB (a gain of 1.9) to 17.4 dB (7.4) to 37 dB (71). The closer the pole is to the circle, the sharper and taller the peak.
Activity 2: Oscillation, decay and stability (8 min). With the resonator at \(r = 0.9\), count the samples in one cycle of \(h[n]\): there are 8, which is \(2\pi/\omega_0\) for an angle of 45°. Set the angle to 90° (4 samples per cycle) and to 30° (12 samples). Return to 45° and raise the radius to 0.99: after 49 samples the envelope \(0.99^n\) is still about 0.6. Set the radius to 1.00: the banner turns amber and \(h[n]\) oscillates between \(\pm 1.41\) for ever. Set it to 1.05: the banner turns red, \(|h[49]|\) is about 15, and the magnitude curve turns dashed and grey.
Activity 3: Notch and FIR (8 min). Load Notch filter (a zero on the circle and a pole at \(r = 0.9\), both at 60°). Place the cursor at \(\omega = 0.33\pi\) (60° is \(\pi/3\)): \(|H|\) is 0 there and close to 1 elsewhere. Click the pole and raise its radius to 0.99: the \(-3\) dB width of the notch falls from about 0.21 to 0.02 rad/sample, ten times narrower. Then load Moving average of 4 (FIR). Its zeros are at \(z = \pm j\) and \(z = -1\), so \(|H| = 0\) at \(\omega = \pi/2\) and \(\omega = \pi\); \(h[n]\) is four ones and the step response settles at 4 (the DC gain with \(G = 1\)). Every pole is at \(z = 0\), so the banner reports an FIR system.
Activity 4: Zeros outside the circle, and a design task (7 min). Load All-pass (zeros at 1/r). The banner says stable although the zeros are at radius 1.25, and \(|H|\) is 1.56 (3.9 dB) at every frequency, because with \(G = 1\) the level is \(1/r^2\). Then design a filter that removes \(\omega = \pi/2\) and passes low frequencies with little change: put a zero pair on the circle at 90° and a pole pair at the same angle with \(r = 0.9\) (the readout at \(\omega = 0\) is about 1.1). Finally make an unstable system and repair it by moving a single pole.
Assessment
- A causal system has poles at \(0.6 \pm j0.7\). Is it stable? Yes. \(|p| = \sqrt{0.36 + 0.49} = 0.92 < 1\). Set the radius to 0.92 and the angle to 49° to confirm.
- A pole pair has radius 0.95 and angle 60°. What is the period of \(h[n]\), and where is the magnitude peak? The period is \(360/60 = 6\) samples and the peak is near \(\omega = \pi/3\), with \(|H| \approx 11.8\) (21.5 dB).
- Why can an FIR system never be unstable? All its poles are at \(z = 0\), inside the unit circle, and \(h[n]\) has finite length.
- The all-pass preset has zeros outside the unit circle. Why is it still stable? Stability depends only on the poles, which are at radius 0.8. Zeros shape the response but do not decide stability.
- Why does a zero on the unit circle produce a notch? The vector from the zero to \(e^{j\omega}\) has length 0 at that angle, so the product of distances, and with it \(|H|\), is 0.
Common Misconceptions
"A zero outside the unit circle makes the system unstable." Load the all-pass preset: the zeros sit at radius 1.25 and the banner stays green. Only poles decide stability.
"Stable means the poles are in the left half-plane." That rule belongs to the s-plane. In the z-plane the boundary is the unit circle. Load the high-pass preset, whose pole is at \(z = -0.8\) on the left side of the plane: it is stable. Drag the pole outward across the circle and watch the banner change.
References
- Pole-zero plot - Wikipedia - poles and zeros in the s-plane and z-plane and what they say about a system
- Z-transform - Wikipedia - definition of the transform, the region of convergence and the transfer function \(H(z)\)
- BIBO stability - Wikipedia - the stability condition behind the green, amber and red banner
- All-pass filter - Wikipedia - why zeros at the reciprocal radius give a flat magnitude response
- The Scientist and Engineer's Guide to Digital Signal Processing - Steven W. Smith - free online textbook; Chapter 33 covers the z-transform and pole-zero analysis
- Oppenheim, A. V., & Schafer, R. W. (2010). Discrete-Time Signal Processing (3rd ed.). Pearson. Chapters 3 and 5 cover the z-transform and the geometric evaluation of the frequency response.
- Proakis, J. G., & Manolakis, D. G. (2007). Digital Signal Processing (4th ed.). Pearson. Chapter 3 covers the z-transform and pole-zero analysis.