MATLAB: How come the chebyshev order keeps changing once I change the Ws and Wp


Im trying to make an 4th Order Chebyshev, with these settings. Wp = 0.9999;
Ws = .0250;
Rp = 1;
Rs = 50;
[n,Wp] = cheb1ord(Wp,Ws,Rp,Rs)
n = 4
[b,a] = cheby1(n,Rp,Wp);
title('n = 4th Order Chebyshev Type I ECG Lowpass Filter')
I want my cutoff frequency to be 40Hz by using Wp/Ws. (I believe thats the cutofff frequency for the cheby?) And once those variables are saved and I enter [n,Wp] = cheb1ord(Wp,Ws,Rp,Rs), my n changes to 1. Why is that?

Best Answer

  • The cheb1ord function calculates the minimum order of a Chebyshev Type I filter required to meet a set of filter design specifications. The lowest order of filter that can be designed with your specifications might be 1. Hence, cheb1ord function is returning the order as 1.
    You may refer the documentation of cheb1ord for more details