⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chebyshev.m

📁 chebyshev模拟低通滤波器matlab源码
💻 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 + -