Difference in Chebyshev filter

1 回表示 (過去 30 日間)
Chin Wei Chang
Chin Wei Chang 2017 年 1 月 9 日
編集済み: Chin Wei Chang 2017 年 4 月 10 日
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