资源描述:
《数字信号处理实验4模拟域的频率变换法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验4模拟域的频率变换法一、实验目的•学会运用MATLAB设计模拟低通、带通、高通、带阻滤波器的设计方法。二、实验涉及的matlab子函数1、lp21p功能:低通到低通模拟滤波器变换。调用格式:[bt,at]=lp21p(b0,a0,w0),将系统函数表示的截止频率为lrad/s的模拟低通滤波器原型变换为截止频率为wO的低通滤波器。2、lp2hp功能:低通到高通模拟滤波器变换。调用格式:[bt,at]=lp2hp(b0,a0,w0),将系统函数表示的截止频率为lrad/s的模拟低通滤波器原型变换为截止频率为wO的高通滤波器。3、lp2bp功能:低通到
2、带通模拟滤波器变换。调用格式:[bt,at]=lp2bp(bO,aO,wO,bw),将系统函数表示的截止频率为lrad/s的模拟低通滤波器原型变换为中心频率为wO、带宽为bw的带通滤波器。如果被设计的滤波器低端截止频率为wl,高端截止频率为w2,则WO=sqrt(wpl*wp2),bw=wp2-wpl4、lp2bs功能:低通到带阻模拟滤波器变换。调用格式:[bt,at]=lp2bs(bO,aO,wO,bw),将系统函数表示的截止频率为lrad/s的模拟低通滤波器原型变换为屮心频率为wO、带宽为bw的带阻滤波器。如果被设计的滤波器低端截止频率为wl,高
3、端截止频率为w2,则WO=sqrt(wsl*ws2),bw=ws2・wsl。三、实验原理下而举例说明用频率变换法设计齐种模拟滤波器的过程。例1、通过频率变换法设计一个巴特沃斯模拟低通滤波器,要求通带截止频率2khz,通带最大衰减ldb,阻带截止频率5khz,阻带最小衰减20db。MATLAB源程序为:%将巴特沃斯模拟滤波器原型变换成实际模拟低通滤波器fp=2000;wp=2*pi*fp;%输入实际滤波器的通带截止频率fs=5000;ws=2*pi*fs;%输入实际滤波器的阻带截止频率Ap=l;As=20;%输入滤波器的通阻带衰减指标%讣算滤波器的阶数
4、和3dB截止频率[n,wc]=buttord(wp,ws,Ap,As/s,)%计算n阶模拟低通原型,得到左半平面零极点[zO,pO,kO]=buttap(n);bO=kO*poly(zO)%求归一化的滤波器系数bOaO=poly(pO)%求归一化的滤波器系数aO%变换为实际模拟低通滤波器[bt,at]=lp21p(b0,a0,wc);%从归一化低通变换到实际低通[Ht,wt]=freqs(bt,at);%求实际系统的频率特性dbHt=20*log10(abs(Ht)/max(abs(Ht)));%幅度化为分贝值%实际模拟低通频率特性作图subplot
5、(2,2,1),plot(wt/2/pi,abs(Ht));axis([0,6000,0,1.1]);ylabel('幅度');xlabel(T(Hz)');gridsubplot(2,2,2),plot(wt/2/pi,dbHt);axis(L0,6000,-30,lJ);ylabel('幅度dB');xlabel('f(Hz)');gridsubplot(2,2,3),plot(wt/2/pi,angle(Ht));axis([0,6000,-4,4]);ylabel(‘相位');xlabel('f(Hz)');grid运行结果为n=4wc=1.
6、7689e+004b0=12.61311.0000117689)+2.6131($Jl17689丿(、2+3.4142—^―I17689丿+2-616W+1a0=1.00002.61313.4142例2、通过频率变换法设计一个巴特沃斯模拟高通滤波器,要求通带截止频率5khz,通带最大衰减ldb,阻带截止频率2khz,阻带最小衰减20db。MATLAB源程序为:%将巴特沃斯模拟滤波器原型变换成实际模拟高通滤波器fp=50(X);wp=2*pi*fp;%输入实际滤波器的通带截止频率fs=2000;ws=2*pi*fs;%输入实际滤波器的阻带截止频率Ap=
7、l;As=20;%输入滤波器的通阻带衰减指标%计算滤波器的阶数和3dB截止频率[n,wc]=buttord(1/wp,l/ws,Ap,As,*s')%计算n阶模拟低通原型,得到左半平面零极点[zO,pO,kO]=buttap(n);bO二kO*poly(zO)%求归一化的滤波器系数bOaO=poly(pO)%求归一化的滤波器系数aO%变换为实际模拟高通滤波器[bt,at]=lp2hp(b0,a0,l/wc);%从归一化低通变换到实际高通[Ht,wt]=freqs(bt,at);%求实际系统的频率特性dbHt=20*log10(abs(Ht)/max(
8、abs(Ht)));%幅度化为分贝值subplot(3,l,1),plot(wt/2/pi,abs(Ht))