0
0
Signal Processingdata~30 mins

Stability analysis (pole-zero plot) in Signal Processing - Mini Project: Build & Apply

Choose your learning style9 modes available
Stability Analysis Using Pole-Zero Plot
📖 Scenario: Imagine you are an engineer working on a digital filter for audio processing. You want to check if your filter is stable by looking at its poles and zeros on the complex plane.
🎯 Goal: You will create a simple digital filter using its numerator and denominator coefficients, then plot its poles and zeros to analyze stability.
📋 What You'll Learn
Create numerator and denominator coefficient lists for the filter
Define a threshold radius for stability check
Calculate poles and zeros using the coefficients
Plot the poles and zeros on the complex plane
Print whether the filter is stable based on pole locations
💡 Why This Matters
🌍 Real World
Engineers use pole-zero plots to check if digital filters will behave well without causing unwanted oscillations or instability in audio, communications, or control systems.
💼 Career
Understanding filter stability is essential for signal processing roles in industries like telecommunications, audio engineering, and embedded systems design.
Progress0 / 4 steps
1
Create filter coefficients
Create a list called numerator with values [0.0675, 0.1349, 0.0675] and a list called denominator with values [1.0, -1.1430, 0.4128] representing the filter coefficients.
Signal Processing
Hint

Use Python lists with the exact values given for numerator and denominator.

2
Set stability radius threshold
Create a variable called stability_radius and set it to 1.0 to represent the unit circle radius for stability check.
Signal Processing
Hint

Set stability_radius to 1.0 as a float value.

3
Calculate poles and zeros
Import numpy as np and use np.roots() to calculate zeros from numerator and poles from denominator.
Signal Processing
Hint

Use np.roots() to find roots of numerator and denominator lists.

4
Plot poles and zeros and check stability
Import matplotlib.pyplot as plt. Plot zeros as blue circles and poles as red crosses on the complex plane. Draw a unit circle with radius stability_radius. Then print "Stable filter" if all poles are inside the unit circle, otherwise print "Unstable filter".
Signal Processing
Hint

Use plt.scatter() for poles and zeros, plt.Circle() for the unit circle, and check if all poles have magnitude less than stability_radius.