Design IIR Bandpass Chebyshev Type-1 Filter using Scipy – Python
IIR stands for Infinite Impulse Response, It is one of the striking features of many linear-time invariant systems that are distinguished by having an impulse response h(t)/h(n) which does not become zero after some point but instead continues infinitely.
What is IIR Chebyshev Filter?
IIR Chebyshev is a filter that is linear-time invariant filter just like the Butterworth however, it has a steeper roll off compared to the Butterworth Filter. Chebyshev Filter is further classified as Chebyshev Type-I and Chebyshev Type-II according to the parameters such as pass band ripple and stop ripple.
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course
How is Chebyshev Filter different from Butterworth?
Chebyshev Filter has a steeper roll-off compared to the Butterworth Filter.
What is Chebyshev Type-I Filter?
Chebyshev Type-I minimizes the absolute difference between the ideal and actual frequency response over the entire passband by incorporating an equal ripple in the passband.
The specifications are as follows:
- Pass band frequency: 1400-2100 Hz
- Stop band frequency: 1050-24500 Hz
- Pass band ripple: 0.4dB
- Stop band attenuation: 50 dB
- Sampling frequency: 7 kHz
We will plot the magnitude, phase, impulse, step response of the filter.
Step 1: Importing all the necessary libraries.
Step 2:Defining the user defined functions such as mfreqz() and impz().
Step 3:Define variables with the given specifications of the filter.
Step 4: Computing the cut-off frequency
Step 5: Compute cut-off frequency & order
Step 6: Compute the filter co-efficient
Step 7: Plotting the Magnitude & Phase Response
Step 8: Plotting the Impulse and Step Response