ms21_4_2.m

来自「《数字信号处理实验(MATLAB版)》这」· M 代码 · 共 42 行

M
42
字号
%双线性变换法设计数字带阻
%数字滤波器指标
ws1=0.3*pi;ws2=0.7*pi;  %数字滤波器的阻带截止频率
wp1=0.2*pi;wp2=0.8*pi;  %数字滤波器的通带截止频率
Rp=1;As=20;             %输入滤波器的通阻带衰减指标
%转换为模拟滤波器指标
Fs=10;T=1/Fs;
Omgp1=(2/T)*tan(wp1/2);Omgp2=(2/T)*tan(wp2/2);
Omgp=[Omgp1,Omgp2];           %模拟滤波器的通带截止频率
Omgs1=(2/T)*tan(ws1/2);Omgs2=(2/T)*tan(ws2/2);
Omgs=[Omgs1,Omgs2];           %模拟滤波器的阻带截止频率
bw=Omgs2-Omgs1;w0=sqrt(Omgs1*Omgs2);%模拟阻带带宽和中心频率
%模拟原型滤波器计算
[n,Omgn]=cheb2ord(Omgp,Omgs,Rp,As,'s') %计算阶数n和截止频率
[z0,p0,k0]=cheb2ap(n,As);     %设计归一化的模拟原型滤波器
ba1=k0*real(poly(z0));        %求原型滤波器系数b
aa1=real(poly(p0));           %求原型滤波器系数a
[ba,aa]=lp2bs(ba1,aa1,w0,bw); %变换为模拟带通滤波器
%用脉冲响应不变法计算数字滤波器系数
[bd,ad]=bilinear(ba,aa,Fs)
%求数字系统的频率特性
[H,w]=freqz(bd,ad);   
dbH=20*log10(abs(H)/max(abs(H))); %化为分贝值
%
subplot(2,2,1),plot(w/pi,abs(H),'k'); 
ylabel('幅度');xlabel('频率/\pi');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0.2,0.3,0.7,0.8]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2),plot(w/pi,angle(H)/pi*180,'k');
ylabel('相位');xlabel('频率/\pi');axis([0,1,-180,180]);
set(gca,'XTickMode','manual','XTick',[0.2,0.3,0.7,0.8]);
set(gca,'YTickMode','manual','YTick',[-180,-90,0,90,180]);grid
subplot(2,2,3),plot(w/pi,dbH,'k'); 
ylabel('幅度(dB)');xlabel('频率/\pi');axis([0,1,-60,5]);
set(gca,'XTickMode','manual','XTick',[0.2,0.3,0.7,0.8]);
set(gca,'YTickMode','manual','YTick',[-80,-20,-1,0]);grid
subplot(2,2,4),zplane(bd,ad);
axis([-1.1,1.1,-1.1,1.1]);ylabel('零极图');



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?