📄 iirh.m
字号:
%数字滤波器的指标
wp=0.2*pi;ws=0.3*pi;
Rp=1.5;As=30;
%模拟原型指标
T=0.0001;Fs=1/T;
OmegaP=(2/T)*tan(wp/2);
OmegaS=(2/T)*tan(ws/2);
ep=sqrt(10^(Rp/10)-1);
Ripple=sqrt(1/(1+ep*ep))
Atten=1/(10^(As/20))
%模拟巴特沃斯原型滤波器计算
[N,OmegaC]=buttord(OmegaP,OmegaS,Rp,As,'s');
%归一划巴特沃斯原型设计参数
[Z0,P0,K0]=buttap(N);
P=P0*OmegaC;Z=Z0*OmegaC;
K=K0*OmegaC^N;
ba=K*real(poly(Z));
aa=real(poly(P));
[bd,ad]=mybilinear(ba,aa,Fs);
[sos,G]=tf2sos(bd,ad)
%绘图
[db,mag,pha,grd,w]=myfreqz(bd,ad);
[H,w]=freqz(bd,ad,1000,'whole');
H=(H(1:1:501))';
w=(w(1:1:501))';
mag=abs(H);
db=20*log((mag+eps)/max(mag));
pha=angle(H);
grd=grpdelay(bd,ad,w);
subplot(3,1,1);plot(w/pi,mag);title('幅度响应');
xlabel('frequency in pi units');ylabel('|H|');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[0,Atten,Ripple,1]);grid;
subplot(3,1,2);plot(w/pi,pha/pi);title('相位响应');
xlabel('frequency in pi units');ylabel('pi units');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid
subplot(3,1,3);plot(w/pi,db);title('幅度(单位:db)'),axis([0,1,-30,5]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[-50,-30,-1.5,0]);grid
set(gca,'YTickMode','manual','YTickLables',['50';'30';'1.5';'0']);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -