Difference in Chebyshev filter

2 次查看(过去 30 天)
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?

采纳的回答

Star Strider
Star Strider 2017-1-9
They don’t look different to me. The difference is that the cheby1 code implements a discrete filter using the bilinear transformation. Your code designs a continuous filter.

更多回答(0 个)

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by