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.
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