0
0
Signal Processingdata~10 mins

Stability analysis (pole-zero plot) in Signal Processing - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Stability analysis (pole-zero plot)
Define system transfer function
Calculate poles and zeros
Plot poles and zeros on complex plane
Check pole locations
Inside unit circle?
System is stable
Start by defining the system, find poles and zeros, plot them, then check if poles lie inside the unit circle to decide stability.
Execution Sample
Signal Processing
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
from scipy.signal import tf2zpk

b = [0.5, -0.5]
a = [1, -0.8]
z, p, k = tf2zpk(b, a)
plt.scatter(np.real(z), np.imag(z), marker='o', label='Zeros')
plt.scatter(np.real(p), np.imag(p), marker='x', label='Poles')
plt.gca().add_artist(Circle((0,0),1,color='r',fill=False,ls='--'))
plt.legend()
plt.show()
This code finds poles and zeros of a system and plots them on the complex plane with the unit circle.
Execution Table
StepActionPoles (p)Zeros (z)Check Pole RadiusStability Decision
1Define numerator coefficients b=[0.5, -0.5]----
2Define denominator coefficients a=[1, -0.8]----
3Calculate zeros and poles using tf2zpkp=[0.8]z=[1.0]--
4Calculate radius of pole |0.8|0.8-0.8 < 1-
5Since all poles have radius < 1---System is stable
6Plot poles (x) and zeros (o) on complex planep=[0.8]z=[1.0]--
7Draw unit circle for reference----
8End of analysis----
💡 All poles have magnitude less than 1, so system is stable.
Variable Tracker
VariableStartAfter Step 3After Step 4Final
b (numerator coeffs)[ ][0.5, -0.5][0.5, -0.5][0.5, -0.5]
a (denominator coeffs)[ ][1, -0.8][1, -0.8][1, -0.8]
z (zeros)[ ][1.0][1.0][1.0]
p (poles)[ ][0.8][0.8][0.8]
pole radius[ ][ ]0.80.8
Key Moments - 3 Insights
Why do we check if poles are inside the unit circle?
Because poles inside the unit circle mean the system's output will not grow unbounded over time, indicating stability (see Step 4 and 5 in execution_table).
What is the difference between poles and zeros on the plot?
Poles (marked with 'x') are points where the system's response can become infinite, zeros (marked with 'o') are points where the output is zero; stability depends on poles only (see Step 6).
Why is the unit circle drawn on the plot?
The unit circle helps visually check if poles lie inside it, which is the key criterion for stability (see Step 7).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at Step 4, what is the radius of the pole?
A1.0
B0.5
C0.8
D1.2
💡 Hint
Check the 'Check Pole Radius' column at Step 4 in execution_table.
At which step does the system get declared stable?
AStep 3
BStep 5
CStep 6
DStep 7
💡 Hint
Look at the 'Stability Decision' column in execution_table.
If a pole had radius 1.2, what would change in the execution_table?
AStability Decision would say 'System is unstable'
BZeros would move outside unit circle
CPoles would be marked with 'o' instead of 'x'
DNo change in stability decision
💡 Hint
Refer to Step 5 where stability depends on pole radius.
Concept Snapshot
Stability analysis uses poles and zeros of a system.
Poles are roots of denominator; zeros are roots of numerator.
Plot poles (x) and zeros (o) on complex plane.
If all poles lie inside unit circle (radius < 1), system is stable.
Unit circle is drawn as reference on plot.
Stability depends only on poles, not zeros.
Full Transcript
We start by defining the system's numerator and denominator coefficients. Then we calculate the zeros and poles using a function. We plot these on the complex plane, marking zeros with circles and poles with crosses. We draw the unit circle to check visually. The key step is checking the radius of each pole. If all poles have radius less than 1, the system is stable. This is because poles inside the unit circle mean the system's output will not grow without bound. The zeros do not affect stability but are shown for completeness. The plot and radius check together give a clear stability analysis.