资源描述:
《IIR带通与带阻滤波器的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、IIR带通与带阻滤波器的设计张磊S200502096(小组成员:张磊,闫宏阳,孙章固,王婕,邵文婷)[设计目的]1.用Matlab设计一个IIR带通与带阻滤波器2.用设计好的滤波器对声音文件进行过滤3.学习了解Matlab滤波器相关函数[设计原理]IIR滤波器是一个递归型系统,其系统函数:利用模拟滤波器设计IIR数字低通滤波器的步骤。(1)确定数字低通滤波器的技术指标:通带截止频率ωp、通带衰减αp、阻带截止频率ωs、阻带衰减αs。(2)将数字低通滤波器的技术指标转换成模拟低通滤波器的技术指标。(3)按照模拟低通滤波器的技术指标设计模拟低通滤波器。(4)将模拟
2、滤波器Ha(s),从s平面转换到z平面,得到数字低通滤波器系统函数H(z)。[Matlab设计步骤]设滤波器的通带截止频率为wp,止带截止频率为ws,通带衰减为Rp,止带衰减为As,通带波纹为Rp。这里,我们设定Wpl=20Hz,Wph=30Hz,Wsl=15Hz,Wsh=35Hz1、根据给定指标得出,低通模拟原型滤波器的阶数和截止频率。利用函数buttord,cheb1ord,cheb2ord。[n,wn]=buttord(wp,ws,Rp,As,’s’)[n,wn]=cheb1ord(wp,ws,Rp,As,’s’)这里我们采用Buttord函数。2、求出
3、低通模拟原型滤波器,利用函数Buttap,Cheb1ap,Cheb2ap。[z,p,k]=Buttap(n)[z,p,k]=Cheb1ap(n,Rp)由于所得的结果为零极点型,还必须转成b/a型,可用函数zp2tf。[bap,aap]=zp2tf(z,p,k)3、将模拟低通原型滤波器经频率变换为所要求的模拟滤波器(低通,高通,带通,带阻)可用函数lp2lp,lp2hp,lp2bs,lp2bp。[b,a]=lp2lp(bap,aap,wn)[b,a]=lp2bs(bap,aap,wn)在这里,我们首先设定好了低通滤波器的一些参数,Wp1=20Hz,阻带截止频率:
4、Ws1=15Hz,,通带纹波波动:Rp=1dB,阻带衰减:Rs=40dB,然后经由双线性变换,构成了带通和带阻滤波器。这里的带通和带阻滤波器,在参数上是一样的,也就是说,带通滤波器所保留的部分就是带阻滤波器所滤除的部分。4、求出滤波器的幅频,相频及冲激响应。[db,mag,pha,w]=freqs_m(b,a,Wmax)(P208)[ha,x,t]=impulse(b,a)(matlab自带)直接画出幅频特性和相频特性:freqs(b,a)(matlab自带)[难点分析]1.对IIR滤波器的设计原理掌握不牢,在设定通带阻带频率上碰到点麻烦。在经过很多的尝试以后
5、,我们采用了巴特沃思低通滤波器,并把阻带通带设定在了一个合理的位置上。2.对Matlab相关函数不太了解,很多函数都是现学的。对于Matlab里面的各种滤波器的函数也不时很了解,经过了大量的实验之后,才有了本实验程序与结果。3.对声音进行滤波,最重要的就是要找到一个合适的音频信号,这样滤波前后的效果比较明显。这里我们采用了一段日本民族音乐。[IIR带通滤波器设计程序]%采样频率100Hz,Wpl=20Hz,Wph=30Hz,Wsl=15Hz,Wsh=35Hz,%频率/采样频率*2*pi%Wpl=0.4*pi,Wph=0.6*pi,Wsl=0.2*pi,Wsh=
6、0.8*pi,%Rp=1;As=20T=1;Fs=1/T;%SetT=1%T=2;Wpl=tan(0.4/2/Fs*pi);Wph=tan(0.6/2/Fs*pi);Wsl=tan(0.3/2/Fs*pi);Wsh=tan(0.7/2/Fs*pi);Rp=1;%PassbandrippleindBAs=40;%StopbandattenuationindB%计算模拟低通原型的参数OmigaP=Wph-Wpl;%低通滤波器通带截止频率OmigaS=Wsh-Wsl;%低通滤波器通带截止频率[N,Wn]=buttord(OmigaP,OmigaS,Rp,As,'s'
7、);[B,A]=butter(N,Wn,'s');[BT,AT]=lp2bp(B,A,sqrt(Wph*Wpl),Wph-Wpl);[b,a]=bilinear(BT,AT,Fs);H=freqz(b,a,200,'whole');plot(abs(H));IIR带通滤波器的频谱Wp1=20Hz阻带截止频率:Ws1=15Hz,通带纹波波动:Rp=1dB阻带衰减:Rs=40dB[IIR带阻滤波器设计程序]%采样频率100Hz,Wpl=20Hz,Wph=30Hz,Wsl=15Hz,Wsh=35Hz[array,fs]=wavread('c:se091.wav')
8、;T=1;Fs=1/T;%SetT=1