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

📄 ms21r2.m

📁 《数字信号处理实验(MATLAB版)》这
💻 M
字号:
%双线性变换法设计数字低通\高通
%数字滤波器指标
wp=0.2*pi;           %滤波器的通带截止频率
ws=0.35*pi;           %滤波器的阻带截止频率
Rp=1;As=15;          %输入滤波器的通阻带衰减指标
ripple=10^(-Rp/20);  %计算通带衰减对应的幅度值
Attn=10^(-As/20);    %计算阻带衰减对应的幅度值
%转换为模拟原型滤波器指标
Fs=10;T=1/Fs;
Omgp=(2/T)*tan(wp/2); %原型通带频率预修正
Omgs=(2/T)*tan(ws/2); %原型阻带频率预修正
%模拟原型滤波器计算
[n,Omgc]=cheb2ord(Omgp,Omgs,Rp,As,'s') %计算阶数n和截止频率
[z0,p0,k0]=cheb2ap(n,As); %归一化切比雪夫2型原型设计
ba=k0*real(poly(z0));     %求原型滤波器系数ba
aa=real(poly(p0));        %求原型滤波器系数aa
%由模拟原型滤波器变换为须求解的模拟滤波器
[ba1,aa1]=lp2lp(ba,aa,Omgc);    %变换为模拟低通滤波器
[ba2,aa2]=lp2hp(ba,aa,Omgs);    %变换为模拟高通滤波器
%求模拟滤波器的频率特性
[Ha1,Omg1]=freqs(ba1,aa1);
[Ha2,Omg2]=freqs(ba2,aa2);
%用双线性变换法将模拟滤波器变换成数字滤波器, 计算数字滤波器系数
[bd1,ad1]=bilinear(ba1,aa1,Fs)   %双线性变换为数字低通滤波器
[bd2,ad2]=bilinear(ba2,aa2,Fs)   %双线性变换为数字高通滤波器
%求数字滤波器的频率特性
[H1,w1]=freqz(bd1,ad1);   
[H2,w2]=freqz(bd2,ad2);   
subplot(2,2,1),plot(Omg1/pi,abs(Ha1));axis([0,Fs,0,1.1]);  
set(gca,'XTickMode','manual','XTick',[0,Omgp/pi,Omgs/pi,Fs]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
title('模拟低通滤波器');
subplot(2,2,2),plot(Omg2/pi,abs(Ha2));axis([0,Fs,0,1.1]);    
set(gca,'XTickMode','manual','XTick',[0,Omgp/pi,Omgs/pi,Fs]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
title('模拟高通滤波器');
%显示数字滤波器的幅频特性
subplot(2,2,3),plot(w1/pi,abs(H1));axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
title('数字低通滤波器');
subplot(2,2,4),plot(w2/pi,abs(H2));axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
title('数字高通滤波器');

⌨️ 快捷键说明

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