I want to realize Chebyshev filter by two ways ,MATLAB function and formula
Type = 6, ripple = 10db , cutoff frequency=300Hz
This is using MATLAB function "cheby1" to simulate
[b,a] = cheby1(6,10,0.6); % 0.6=300/(1000/2)
figure(); freqz(b,a,[],1000);
This is output
And the following code is totally the same as Chebyshev filter' formula
N = 6; ripple = 10; wc = 300; w1 = 0 :wc; w2 = wc :500; V1 = cos(N*acos(w1/wc)); V2 = cosh(N*acosh(w2/wc)); epsilon = sqrt( ( 10^(0.1*ripple) ) -1); H1 = 1 ./ sqrt( 1 + (epsilon * V1).^2 ); H2 = 1 ./ sqrt( 1 + (epsilon * V2).^2 ); plot(w1 , 20*log10(H1)); hold on, plot(w2 , 20*log10(H2));
This is output
I don't know why these two figures are different,
how can I fix this?
Best Answer