📄 chebyshev.m
字号:
format short e;
disp('*****Input the parameters of Chebyshev filter expected*****');
f1 = input (' passband edge(Hz) : ');
f2 = input (' stopband edge(Hz) : ');
k1 = input (' passband gain(dB) : ');
k2 = input (' stopband attenuation (dB): ');
w1 = 2*pi*f1;
w2 = 2*pi*f2;
A = 10^(-k2/20);
e = sqrt(10^(-k1/10)-1);
g = sqrt((A^2-1)/e^2);
wr = w2/w1;
N = ceil(log10(g+sqrt(g^2-1))/log10(wr+sqrt(wr^2-1)));
disp('***Chebyshev filter order N ***'), disp(N);
a = (((1+sqrt(1+e^2))/e)^(1/N))/2-(((1+sqrt(1+e^2))/e)^(-1/N))/2;
b = (((1+sqrt(1+e^2))/e)^(1/N))/2+(((1+sqrt(1+e^2))/e)^(-1/N))/2;
k = 1:N;
dk = -a*sin(((2*k-1)*pi)/(2*N));
wk = b*cos(((2*k-1)*pi)/(2*N));
p = dk+j*wk;
disp('***Poles of the norminized transfer function***'), disp(p(:));
p = p*w1;
disp('***Poles of the real transfer function***'), disp(p(:));
%Derect transfer function form coefficients
b = real(poly(p)); %b is the denominator polynomial coefficients of Hn(s)
a = zeros(1,N+1);
K = floor(N/2);
if K*2==N
Kn = b(N+1)/sqrt(1+e^2);
else Kn = b(N+1);
end
a(N+1)= Kn;
disp('***ai=numerator polynomial coefficients of DIRECT-form in s-plane***'), disp(a(:));
disp('***bi=denominator polynomial coefficients of DIRECT-form in s-plane***'), disp(b(:));
H=tf(a, b);
bode(H,{0.1, 10000*pi*2});
grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -