A pole pair moves outward from inside the unit circle. Watch the sum of climb as it nears the circle: on the circle it has no limit.
Inside, on and outside the circle
A pole pair re^{±jπ/4} moves outward. h[n] is the causal system's impulse response.
r = 0.8: h shrinks to 0.8 of its size each sample and is gone within 20 samples. The sum of |h[n]| is 4.69: stable.
Describe this picture
A pole pair moves outward; is the causal system’s impulse response. Two panels. One is the z-plane, real part against imaginary part, with the unit circle and the two poles drawn as crosses, one in the accent colour and its mirror in the second colour, on a faint line at ±45°. The other shows as stems with dot heads against sample , with a dashed envelope labelled “envelope”; a word in this panel says “dies out”, “rings for ever” or “grows”. Two readouts, the pole radius and the sum of , sit in one row.
The clip opens on (readouts 0.80 and 4.69): “r = 0.8: h shrinks to 0.8 of its size each sample and is gone within 20 samples. The sum of |h[n]| is 4.69: stable.” The pair then eases outward and holds at : “r = 0.95: it rings much longer, and the sum is 17.50, but still a number.” At the middle frame, 9 s, the pair sits on the circle (1.00 and “no limit”): “r = 1: on the circle it rings for ever and never shrinks. The sum has no limit.” The clip ends at (1.05 and “no limit”): “r = 1.05: outside the circle it grows. A causal system is stable exactly when every pole is inside the unit circle.” Stems beyond the plotted range are capped with an open triangle.
When the clip stops, either pole is a handle, named “Pole radius r”. Dragging it along its line, or the arrow keys, set the radius from 0.5 to 1.1; the hint reads “Drag a pole along its line, or use the arrow keys, to set the radius (0.5 to 1.1).” The arrow keys move it by 0.01, Page Up and Page Down by 0.05, Home goes to 0.5 and End to 1.1. After a drag the caption reads, for example, “r = 0.90: the sum of |h[n]| is 8.96.” and, above 1, “r = 1.02: h grows, and the sum has no limit.”
Inside, on and outside the circle
Properties of LTI systems (5.4) read two facts off a system’s impulse response . It is causal when for , and it is stable when the sum of is a number. The z-transform (16.1) read something else off : the region of convergence, or ROC. This page joins the two.
Start with the causal system from Transfer functions, poles and zeros (16.3), whose poles are the mirror pair . Its impulse response is
The factor is the envelope: the size of the ringing at sample . Why does the sum of matter? If every input value has size at most , then has size at most times that sum. This is bounded input, bounded output (4.2), and an input that copies the signs of comes as close to the bound as you like.
The picture at the top of this page moves this pair outward along its line at 45° and measures that sum at each radius. At , shrinks to 0.8 of its size each sample and is gone within 20 samples. At sample 20 the size of is , because the sine factor at is . The sum of is 4.69: stable.
At the pair rings much longer, and the sum is 17.50, but still a number. The sum is climbing quickly: 2.09 at radius 0.5, 4.69 at 0.8, 8.96 at 0.9, 17.50 at 0.95 and 85.78 at 0.99. Each step toward the circle costs more than the one before.
On the circle, at , rings for ever and never shrinks. Its first six values are 1, 1.414, 1, 0, −1 and −1.414, and the sum has no limit. At , outside the circle, it grows: by it has reached . A causal system is stable exactly when every pole is inside the unit circle.
When the clip stops, drag either pole along its line to set the radius yourself, from 0.5 to 1.1.
The rule, in region-of-convergence words
Put the three facts in the language of 16.1. A causal system has a right-sided , so its ROC is the outside of a circle: greater than the outermost pole, out to infinity. A stable system has a finite sum of , which is exactly the condition for to belong to the ROC, as The DTFT (12.2) found. So stable means the ROC contains the unit circle.
Both together give the rule the first picture ended on: the ROC is everything outside the outermost pole, so it contains the circle only when that pole is inside it. A causal system is stable exactly when every pole is inside the unit circle. This is the twin of Poles, zeros and the s-plane (9.3), where the border was the vertical axis and the stable poles were on its left. A system with a finite impulse response has all its poles at , so it is always stable.
A pole on the circle
The middle frame of the first picture’s clip was the odd one. A pair on the circle gives a that never grows and never shrinks, so it is bounded. But the sum of has no limit, so by 4.2’s test the system is not stable. I call a system with a pole on the circle marginally stable.
Bounded is not the same as safe, because a different input can make the output grow. The accumulator has its pole at and a perfectly bounded step goes in. Out come 1, 2, 3, 4, 5, 6 and on without end.
The pair works the same way at its own frequency. Its recursion is , whose bottom polynomial has and . Feed it , which is a sine at the pole’s own angle, and each new push arrives in step with the ringing, as in the resonance of First- and second-order systems (6.3). With nothing to take energy out, the output reaches 5 at , 9 at and 21 at , and keeps going. Feed it instead and the output never exceeds 1.42.
One H(z), three regions
The ROC is part of the answer, not a detail. Take
The second form is the partial fractions of Properties and the inverse z-transform (16.2). The weight at the pole 0.5 is and the weight at the pole 2 is . Two poles, at sizes 0.5 and 2, cut the plane into three regions: , then , then . A pole outside the ROC gives a left-sided term, as 16.1 showed.
Each region gives its own . Watch the stems at negative as the region changes: only the ring gives an that dies out both ways.
One H(z), three regions
H(z) = 1/((1 − 0.5z⁻¹)(1 − 2z⁻¹)): poles 0.5 and 2. Each region of convergence gives its own h[n].
ROC |z| > 2, outside both poles: h is causal, but the pole at 2 makes it grow: 1, 2.5, 5.25, 10.6, …
Describe this picture
, with poles 0.5 and 2; each region of convergence gives its own . The z-plane, real part against imaginary part, shows the two poles as crosses labelled “0.5” and “2”, with dashed circles through them, and the unit circle solid and labelled “unit circle”. The current region is shaded and labelled “ROC”. The stems panel shows against sample from −6 to 6. Two readouts name the region and the kind of signal is.
The first region is (“causal, grows”): “ROC |z| > 2, outside both poles: h is causal, but the pole at 2 makes it grow: 1, 2.5, 5.25, 10.6, …” The clip then cross-fades to the ring and holds for several seconds (“two-sided, stable”): “ROC 0.5 < |z| < 2 contains the unit circle, so h dies out both ways and the sum of |h[n]| is 2. Stable, but it starts before n = 0.” The third region is (“left-sided, grows”): “ROC |z| < 0.5, inside both poles: h lives before n = 0 and grows going back: 1, 2.5, 5.25, … at n = −2, −3, −4.” The clip ends back on the ring (“0.5 < |z| < 2”, “two-sided, stable”): “Only the ring holds the unit circle, so only it gives a stable system. Causal needs the outside of the outermost pole; with a pole at 2 you cannot have both.”
When the clip stops, tapping a region of the plane, or a three-option switch named “Region of convergence” with “outside”, “ring” and “inside”, chooses a region; Left and Right arrows, Home and End move between the options. A choice plays a one-second cross-fade, and the caption shows that region’s text.
Outside both poles, , is causal, but the pole at 2 makes it grow. The values come from for , whose first five values are 1, 2.5, 5.25, 10.625 and 21.3125.
The ring, , contains the unit circle, so dies out both ways and the sum of is 2: stable, but it starts before . Here the pole at 0.5 gives for , and the pole at 2, which lies outside this ROC, gives for . Look at the stems at negative : they run back from at and shrink as goes more negative.
The sum is easy to check. The part for gives . The part for gives . Together they are 2.
The third region, , lies inside both poles: lives before and grows going back. Here for , which is 0 at and then 1, 2.5, 5.25 and 10.625 at to .
Only the ring holds the unit circle, so only it gives a stable system. Causal needs the outside of the outermost pole, and the pole at 2 is outside the circle, so the only causal choice, , leaves the circle outside its region. With a pole at 2 you cannot have both.
When the clip stops, tap a region of the plane to choose it yourself.
The triangle is the inside of the circle
Finding every pole is work. For the second-order recursion
the bottom polynomial is , and three inequalities decide whether both poles are inside the circle without finding either: , and .
Here is why, in two lines. The bottom polynomial is times , and the product of the two poles is . A mirror pair has , so , and the pair reaches the circle when . For a real pole, look at at and : it equals and . Each of these changes sign exactly when a real pole crosses 1 or .
This is the second-order case of the Jury test, also called the Schur–Cohn test. Higher orders use a table of the same kind, and in practice you compute the roots.
The picture below turns the inequalities into a map of recursions. Watch the largest pole radius as the square reaches an edge of the triangle: there it reads exactly 1.
The triangle is the inside of the circle
Each point (a₁, a₂) is a recursion y[n] = −a₁y[n−1] − a₂y[n−2] + x[n]. Its poles are drawn on the plane.
(−1, 0.5) is inside the triangle: the poles are 0.5 ± 0.5j, 0.707 from the centre.
Describe this picture
Each point is a recursion , and its poles are drawn on the plane. One panel maps the coefficients, against drawn to the same scale. A shaded triangle with corners , and is labelled “stable”. A dashed parabola, , is labelled “real poles below”. The recursion is a filled square. The other panel is the z-plane again, with the unit circle and the square’s two poles drawn as crosses. Two readouts give and the largest pole radius.
The clip starts at , inside the triangle (“−1.00, 0.50”, 0.707): ”(−1, 0.5) is inside the triangle: the poles are 0.5 ± 0.5j, 0.707 from the centre.” Then rises to 1, under the caption “Raising a₂ pushes the pair outward: its radius is √a₂.” At 5.5 s the square is on the top edge (“−1.00, 1.00”, 1.000): “On the top edge, a₂ = 1: the pair’s radius is √a₂ = 1, on the circle at ±60°.” The square returns to the start and then moves to (“−1.50, 0.50”, 1.000): “On a slanted edge, 1 + a₁ + a₂ = 0: one real pole sits at z = 1. Cross any edge and a pole leaves the circle.”
When the clip stops, a control named “Coefficients a₁ and a₂” moves the square: drag it, or use the arrow keys; the hint reads “Drag the square, or use the arrow keys, to choose a₁ and a₂.” runs from −2.5 to 2.5 and from −1.5 to 1.5; Left and Right move by 0.05, and Up and Down move by 0.05. The caption names the point, for example ”(−0.50, 0.30): poles 0.25 ± 0.49j, radius 0.548: inside, stable.”; on an edge it says “on the circle: marginal”, and outside the triangle “outside: unstable”.
The dashed parabola in the picture is . Check the parabola. The poles are real when , that is, when is at most . Below the parabola the poles are real, and above it they are a mirror pair.
At , inside the triangle, the poles are , 0.707 from the centre. Raising pushes the pair outward, because its radius is . On the top edge, , the pair’s radius is 1: the poles are , on the circle at angle . At , on a slanted edge, and the poles are 1 and 0.5: one on the circle, one inside. Cross any edge and a pole leaves the circle.
Notice the largest pole radius along the triangle’s edges. It reads exactly 1, whether the edge puts a pair or one real pole on the circle. The top edge is the pair. The slanted edge puts a pole at , and puts one at .
When the clip stops, drag the square to choose your own recursion. At the poles are , radius 0.548: inside, stable.
Worked example
Four short problems use everything above.
- Test a recursion. has and . Then , and , so it is stable. Check: the poles are , radius , at 31.95°.
- A failing test. and gives , which is more than 1, and , which is negative. The poles are 0.874 and , so one is outside the circle. The recursion is unstable.
- Check the ring by the DTFT. The ring’s is stable, so its DTFT exists and equals on the circle (12.2). At it gives , at it gives , and at it gives . Directly, , which is also the sum of : .
- Marginal. A step through the accumulator gives 1, 2, 3, 4, 5, 6. The pair on the circle at , fed , gives 5, 9 and 21 at , 16 and 40.
Where you’ll meet this
Every recursive filter you design is checked for stability, and most of the time the check is “where are the poles”. Starting values and the transient they leave behind are in The unilateral z-transform (16.5). Why a system can be inverted only when its zeros are inside the circle waits for Minimum phase (17.2). Filter design has to keep the poles inside the circle, as in IIR design by the bilinear transform (20.2), and rounding the coefficients can push them out, as Finite word-length effects (21.3) shows.
The maths behind it · spectral radius
A recursion is stable when every eigenvalue of its state matrix has size below 1, which means its spectral radius is below 1, so that for every starting vector . For the second-order recursion the matrix is , whose characteristic polynomial is , the poles’ polynomial. The triangle is the set of these 2×2 matrices with spectral radius below 1.
The maths behind it · stationary AR models
An autoregressive model is stationary exactly when its poles are inside the unit circle. Time-series courses test the same triangle for AR(2), written as conditions on and with the opposite signs, and .
Reference card
| Quantity | Formula | Notes |
|---|---|---|
| Causal | ROC outermost pole, out to | for |
| Stable (BIBO) | ROC contains | finite |
| Causal and stable | every pole inside the unit circle | twin of “every pole left of the axis” (9.3) |
| Marginal | a pole on the circle | bounded, but an input at its frequency grows |
| Second-order test | , , | bottom |
| Mirror pair radius | top edge | |
| Real pole at | slanted edges | |
| FIR | only poles at 0 | always stable |