Z-Transform Pole-Zero Plot and ROC Calculator
Type the numerator and denominator coefficients, pick a region of convergence, and see the z-plane, the poles and zeros, stability and the frequency response.
H(z) = (b0 + b1 z⁻¹ + b2 z⁻² + ...) / (a0 + a1 z⁻¹ + a2 z⁻² + ...)
- Poles: 2, 0.5
- Zeros: 0, 0
- This ROC misses the unit circle. The stable choice is 0.5 < |z| < 2.
The formulas
Multiplying top and bottom by z^max(M, N) turns both into polynomials in z; their roots are the zeros and poles.
The ROC is a ring between pole radii and never contains a pole. |z| > largest pole radius is right-sided (causal); |z| < smallest is left-sided.
So a causal system is stable when every pole is inside the unit circle.
Worked example: poles at 0.5 and 2
- H(z) = 1 / (1 − 2.5z⁻¹ + z⁻²). Multiply by z²: z² / (z² − 2.5z + 1) = z² / ((z − 0.5)(z − 2)).
- Two zeros at z = 0, poles at z = 0.5 and z = 2.
- Three possible ROCs: |z| < 0.5 (left-sided), 0.5 < |z| < 2 (two-sided) and |z| > 2 (right-sided, causal).
- Only 0.5 < |z| < 2 contains the unit circle, so only the two-sided sequence is stable. The causal one grows like 2ⁿ.
- For 1 / (1 − 0.9z⁻¹): one pole at 0.9, so the causal ROC |z| > 0.9 contains |z| = 1 and is stable, with |H| = 10 at ω = 0 and 1/1.9 at ω = π.
- The same H(z) with different ROCs belongs to different sequences, which is why a z-transform without its ROC is incomplete.
- Roots are found numerically (Durand-Kerner) and rounded to 4 significant figures; repeated roots may show tiny differences.