《实验7 窗函数法设计FIR数字滤波器(1).docx》由会员分享,可在线阅读,更多相关《实验7 窗函数法设计FIR数字滤波器(1).docx(8页珍藏版)》请在第一文库网上搜索。
1、实验7窗函数法设计FIR数字滤波器、实验目的掌握窗函数法设计FIR数字滤波器的原理及具体方法二、实验基础理论1 .基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器,然后用窗函数截取它的单位脉冲响应儿(n),得到线性相位和因果的F1R滤波器。这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。2 .设计步骤(1)给定理想滤波器的频率响应乩/(/),在通带上具有单位增益和线性相位,在阻带上具有零响应。一个带宽为%的低通滤波器由下式给定:-e-jacHdd)=,1.11C(7-1)Oc闸;T其中为采样延迟,其作用是为了得到一个因
2、果系统。(2)确定这个滤波器的单位脉冲响应%(n)=sin,(n-a)(n-a)(7-2)为了得到一个z(n)长度为N的因果的线性相位F1R滤波器,我们令a=(7-3)(3)用窗函数截取/勿(n)得到所设计F1R数字滤波器:h(n)hd(n)w(n)(7-4)3.窗函数的选择常用的窗函数有矩形(ReCtangU1ar)窗,汉宁(Hanning)窗,海明(Hamming)窗、布莱克曼(BIackman)窗、凯瑟(Kaiser)窗等。MAT1AB提供了一些函数用于产生窗函数。如表7-1所示。表7;MAT1AB中产生窗函数的命令MAT1AB函数窗函数MAT1AB函数窗函数Boxcar矩形窗函数B1a
3、ckman布莱克曼窗Hanning汉宁窗函数Kaiser凯瑟窗函数Hamming海明窗在设计过程中我们需要根据给定的滤波器技术指标,选择滤波器长N和窗函数奴n)。表72列出了常用窗函数的一些特性,可供设计参考。表7-2常用窗函数的特性窗函数窗函数频率特性加窗后滤波器指标旁瓣峰值dB主瓣宽度过渡带宽最小阻带衰减dB矩形窗-134/N1.8N-21汉宁窗-318N6.2/N-44海明窗-418N6.6N-53布莱克曼窗-5712N11N-74凯瑟窗是一种广泛在实际中广泛应用的窗函数,它由下式给定:其中/。卜是修正的零阶贝塞尔函数,参数控制最小阻带衰减,这种窗函数对于相同的N可以提供不同的过渡带宽。
4、由于贝塞尔函数比较复杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。已知给定的指标外,g,R,和A,滤波器长度N和凯瑟窗参数尸可以按如下凯瑟窗方程给出过渡带带宽:=x1-p浦A一7.951N-+12.285口0.1102(As-8.7),AvN500.5842(A-2O04+0.07886(4-21),21A550三、实验内容1、设计一个数字低通FIR滤波器,其技术指标如下:co=0.2r,R=0.25dBCDst=0.3肛Ax=50dB分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。结合实验结果,分别讨论采用上述方法设计的数字滤波器是否都能满足
5、给定指标要求。矩形窗设计该滤波器实验代码:wp=0.2*pi;Rp=0.25;WSt=O.3*pi;A=50;width=wst-wp;N=cei1(1.8*piwidth)+1;n=0:(N-1);wc=(wp+wst)/2;a1pha=(N-1)/2;hd=(wcpi)*sinc(wcpi)*(n-a1pha);w-boxcar=boxcar(N);h=hd.*w-boxcar;subp1ot(221);stem(n,hd,fi11ed,);1Hr,w1=zerophase(h);subp1ot(222);p1ot(w1pi,Hr);subp1ot(223);stem(n,h,fi11ed
6、,);H,w=freqz(h,1);subp1ot(224);p1ot(wpi,20*1og10(abs(H)max(abs(H);gridon;汉宁窗设计该滤波器实验代码:wp=0.2*pi;Rp=0.25;WSt=O.3*pi;A=50;Width=WSt-wp;N=CeiI(6.2*pi/Width)+1;n=0:(N-1);wc=(wp+wst)2;a1pha=(N-1)2;hd=(wcpi)*sinc(wcpi)*(n-a1pha);w_hanning=hanning(N);h=hd.*w_hanning;subp1ot(221);stem(n,hd,fi11ed1);1Hr,w1=
7、zerophase(h);subp1ot(222);p1ot(w1pi,Hr);subp1ot(223);stem(n,h,fi11ed);H,w=freqz(h,1);subp1ot(224);p1ot(wpi,20*1og10(abs(H)max(abs(H);gridon;00.51海明窗设计该滤波器实验代码:wp=0.2*pi;Rp=0.25;wst=O.3*pi;A=50;Width=WSt-Wp;N=Cei1(6.6*piWidth)+1;n=0:(N-1);wc=(wp+wst)2;a1pha=(N-1)2;hd=(wci)*sinc(wcpi)*(n-a1pha);w_hamm
8、ing=hamming(N),;h=hd.*w_hamming;subp1ot(221);stem(n,hd,fi11edr);Hr,w1=zerophase(h);subp1ot(222);p1ot(w1pi,Hr);subp1ot(223);stem(n,h,fi11ed1);H,w=freqz(h,1);subp1ot(224);p1ot(wpi,20*1og10(abs(H)max(abs(H);gridon;布莱克曼窗设计该滤波器实验代码:wp=0.2*pi;Rp=0.25;wst=O.3*pi;A=50;width=wst-wp;N=cei1(11*piwidth)+1;n=0:(
9、N-1);wc=(wp+wst)2;a1pha=(N-1)2;hd=(wcpi)*sinc(wcpi)*(n-a1pha);w-b1ackman=b1ackman(N)1;h=hd.*w_b1ackman;subp1ot(221);stem(n,hd,fi11ed1);Hr,w1=zerophase(h);subp1ot(222);p1ot(w1pi,Hr);subp1ot(223);stem(n,h,fi11ed1);H,w=freqz(h,1);subp1ot(224);p1ot(wpi,20*1og10(abs(H)max(abs(H);gridon;凯瑟窗设计该滤波器实验代码:wp=0
10、.2*pi;Rp=0.25;wst=O.3*pi;A=50;Width=WSt-Wp;N=Cei1(A-7.95)-(2.258*width)+1;n=0:(N-1);wc=(wp+wst)2;a1pha=(N-1)2;hd=(wcpi)*sinc(wcpi)*(n-a1pha);w-kaiser=kaiser(N),;h=hd.*w_kaiser;subp1ot(221);stem(n,hd,fi11ed1);Hr,w1=zerophase(h);subp1ot(222);p1ot(w1pi,Hr);subp1ot(223);stem(n,h,fi11ed1);H,w=freqz(h,1);
11、subp1ot(224);p1ot(wpi,20*1og10(abs(H)max(abs(H);gridon;2、设计一个数字带通FIR滤波器,其技术指标如下:下阻带边缘:sa=0.2乃,As=60B下通带边缘:/I=0.35r,R,,=IdB上通带边缘:p2=0.65%,RP=IdB上阻带边缘:s12=0.8乃,AS=60dB实验代码:wp1=0.2*pi;wst1=0.35*pi;wp2=0.65*pi;wst2=0.8*pi;Width=Wst1-Wp1;N=cei1(11*piwidth)+1;n=0:(N-1);a1pha=(N-1)2;wc1=(wp1+wst1)2;wc2=(wp
12、2+wst2)2;hd=(wc2pi)*sinc(wc2pi)*(n-a1pha)-(wc1pi)*sinc(wc1pi)*(n-a1pha);w=b1ackman(N);h=hd.*w;subp1ot(221);stem(n,hd,fi11ed1);1Hr,w1=zerophase(h);subp1ot(222);p1ot(w1pi,Hr);subp1ot(223);stem(n,h,fi11ed);H,w=freqz(hJ);subp1ot(224);p1ot(wpi,20*1og10(abs(H)max(abs(H);gridon;实验结果:四、实验心得这次实验是窗函数法设计FIR数字滤
13、波器。它的思想是通过对于适当的理想的滤波器进行一个加窗并且经过一个适当的延迟,将非因果系统转换成一个因果系统,从而物理可实现。通过这次实验,将我从课堂上学习的窗函数法通过自己的设计编程,形象的展现出来。在设计之前就学习过这方面的理论知识了,所以对于整个实验的实验原理,自己是很清楚的。并且在设计的时候,对于一些自己忘掉的小的知识点,自己能马上查阅书籍找到相应的知识点,从而完成实验同时自己又复习了相关的知识。设计过程基本没有什么问题,在设计低通滤波器的时候通过套用已有的窗函数,自己很完美的完成了第一题的设计。对于第二题,我们通过理论学习知道,一个带通滤波器是一个截止频率大的低通滤波器减去一个截止频率小的低通滤波器来形成。所以这实际上是设计两个低通滤波器,然后进行相减而得。在程序设计完成后,运行时却报错,这让我百思不得其解。自己顿时就六神无主,自己就瞎改了一些,但是这样就造成了更多的错误,然后又改回来。这样反复好几次后,自己向同学询问得知,这两个低通滤波器可以看做完全分离然后相减。这样我就知道自己在使用变量的时候,将一个地方应该是两个各自独立的变量共用了。找到这个问题后,自己也就顺利的完成了这次实验。实验中自己对于窗函数有了一个全新的认识。