How to Find System Stability from Poles in Signal Processing
In signal processing, a system is stable if all
poles of its transfer function lie inside the unit circle in the complex plane. Check the magnitude of each pole; if every pole's magnitude is less than 1, the system is stable.Syntax
The poles of a system are the roots of the denominator of its transfer function H(z) = N(z) / D(z). To find stability:
- Calculate poles by solving
D(z) = 0. - Check the magnitude of each pole
|p_i|. - If all
|p_i| < 1, the system is stable.
python
import numpy as np from numpy.polynomial import Polynomial def find_poles(den_coeffs): # den_coeffs: coefficients of denominator polynomial D(z) p = np.roots(den_coeffs) return p def check_stability(poles): return np.all(np.abs(poles) < 1)
Example
This example finds poles of a system with denominator D(z) = 1 - 0.5z^{-1} + 0.2z^{-2} and checks if the system is stable.
python
import numpy as np den_coeffs = [1, -0.5, 0.2] # Coefficients for D(z) = 1 - 0.5z^-1 + 0.2z^-2 poles = np.roots(den_coeffs) print(f"Poles: {poles}") stable = np.all(np.abs(poles) < 1) print(f"Is the system stable? {stable}")
Output
Poles: [0.25+0.39051248j 0.25-0.39051248j]
Is the system stable? True
Common Pitfalls
- Confusing poles with zeros: Stability depends only on poles (denominator roots), not zeros (numerator roots).
- Checking magnitude incorrectly: Poles on or outside the unit circle (
|p_i| ≥ 1) mean instability. - Ignoring complex poles: Always check magnitude, not just real part.
python
import numpy as np den_coeffs_unstable = [1, -1.2, 0.5] # Example with unstable poles poles_unstable = np.roots(den_coeffs_unstable) print(f"Unstable poles: {poles_unstable}") print(f"Is unstable system stable? {np.all(np.abs(poles_unstable) < 1)}")
Output
Unstable poles: [1. 0.5]
Is unstable system stable? False
Quick Reference
Summary tips for checking system stability from poles:
- Find poles by solving denominator polynomial = 0.
- Calculate magnitude of each pole.
- System is stable if all poles have magnitude less than 1.
- Poles on or outside the unit circle mean instability.
Key Takeaways
System stability depends on poles of the transfer function, not zeros.
All poles must lie inside the unit circle (magnitude less than 1) for stability.
Check magnitude of complex poles, not just their real parts.
Poles on or outside the unit circle indicate an unstable system.
Use polynomial root finding to get poles from the denominator coefficients.