📄 chebyii.asv
字号:
clear all
close all
clc
nfft=256;
Fs=1000*pi;
Rp=1;
Rs=40;
typeo=3;
% switch typeo
% case 1
% type='bandpass';
% case 2
% type='stop';
% case 3
% type='high';
% case 4
% type='low';
% end
if typeo~=3&typeo~=4
Wp1=400*pi;
Ws1=300*pi;
Wp2=600*pi;
Ws2=800*pi;
Wp=[Wp1,Wp2];
Ws=[Ws1,Ws2];
elseif typeo==3
Wp1=500*pi;
Ws1=400*pi;
Wp2=0;
Wp=Wp1;
Ws2=0;
Ws=Ws1;
elseif typeo==4
Wp1=400*pi;
Ws1=500*pi;
Wp2=0;
Wp=Wp1;
Ws2=0;
Ws=Ws1;
end
[N,wn]=ellipord(Wp/Fs/2,Ws/Fs/2,Rp,Rs,'s');
[b,a,k]=ellipap(N,Rp,Rs);
[A,B,C,D]=zp2ss(b,a,k);
Wn=Wp2-Wp1;
Wo=sqrt(Wp2*Wp1);
switch typeo
case 1
[A,B,C,D]=lp2bp(A,B,C,D,Wo,Wn); type='带通';
case 2
[A,B,C,D]=lp2bs(A,B,C,D,Wo,Wn);type='带阻';
case 3
[A,B,C,D]=lp2hp(A,B,C,D,Wn);type='高通';
case 4
[A,B,C,D]=lp2lp(A,B,C,D,Wn);type='底通';
end
[b,a]=ss2tf(A,B,C,D);
[b,a]=impinvar(b,a,Fs);
[H,w]=freqz(b,a,nfft,Fs);
plot(w*Fs/pi,abs(H));
grid on
xlabel('frequency/Hz')
ylabel('magnitude')
% axis([0 2*10^5 0 1.3]);
title('ChebyII数字滤波器')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -