1、实验六 用窗函数法设计 FIR滤波器 一、实验目的 (1) 掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2) 熟悉线性相位FIR数字滤波器特性。 (3) 了解各种窗函数对滤波特性的影响。 二、实验原理 滤波器的理想频率响应函数为Hd(ejω),则其对应的单位脉冲响应为: hd(n) = 窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼hd(n)。由于hd(n)往往是无限长序列,且是非因果的,所以用窗函数。w(n)将hd(n)截断,并进行加权处理: h(n) = hd(n) w(n) h(n)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响
2、应函数H(ejω)为: H(ejω) = 如果要求线性相位特性,则h(n)还必须满足: 可根据具体情况选择h(n)的长度及对称性。 用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。 三、实验步骤 1. 写出理想低通滤波器的传输函数和单位脉冲响应。 2. 写出用四种窗函数设计的滤波器的单位脉冲响应。 3. 用窗函数法设计一个线性相位FIR低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc=π/4 rad,选择窗函数的长度N=15,33两种情况。要求在两种窗口长度下
3、分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB带宽和阻带衰减; 4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。 四、实验用MATLAB函数 可以调用MATLAB工具箱函数fir1实现本实验所要求的线性相位FIR-DF的设计,调用一维快速傅立叶变换函数fft来计算滤波器的频率响应函数。 fir1是用窗函数法设计线性相位FIRDF的工具箱函数,调用格式如下: hn=fir1(N, wc, ‘ftype’, window) fir1实现线性相位FIR滤波器的标准窗函数法设计。
4、 hn=fir1(N,wc)可得到6 dB截止频率为wc的N阶(单位脉冲响应h(n)长度为N+1)FIR低通滤波器,默认(缺省参数windows)选用hammiing窗。其单位脉冲响应h(n)满足线性相位条件:h(n)=h(N-1-n) 其中wc为对π归一化的数字频率,0≤wc≤1。 当wc=[wc1, wc2]时,得到的是带通滤波器。 hn=fir1(N,wc,’ftype’)可设计高通和带阻滤波器。 当ftype=high时,设计高通FIR滤波器; 当ftype=stop时,设计带阻FIR滤波器。 应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N
5、1为奇数)。不过,当用户将N设置为奇数时,fir1会自动对N加1。 hn=fir1(N,wc,window)可以指定窗函数向量window。如果缺省window参数,则fir1默认为hamming窗。可用的其他窗函数有Boxcar, Hanning, Bartlett, Blackman, Kaiser和Chebwin窗。例如: hn=fir1(N,wc,bartlett(N+1))使用Bartlett窗设计; hn=fir1(N,wc,chebwin(N+1,R))使用Chebyshev窗设计。 hn=fir1(N,wc,’ftype’,window)通过选择wc、 ftype
6、和window参数(含义同上),可以设计各种加窗滤波器。 五、 实验内容 <1>理想低通滤波器传输函数: H(ejω)= α=(N-1)/2 单位脉冲响应: hd(n)= = = <2>四种窗函数的设计滤波器的单位脉冲响应: (1)矩形窗: ωR(n)=RN(n) h(n)=hd(n)RN(n) (2)汉宁窗: ωHn(n)=0.5[1-]RN(n) h(n)=hd(n)·0.5[1-]RN(n)
7、 (3)哈明窗: ωHm(n)=[0.54-0.46]RN(n) h(n)=hd(n)[0.54-0.46]RN(n) (4)布莱克曼窗: ωBl(n)=[0.42-0.5+0.08]RN(n) h(n)=hd(n)[0.42-0.5+0.08]RN(n) <3>MATALAB程序设计 实验程序1: N=15、33,即N变化时,对滤波器特性的影响: MATLAB程序: clear all; N1=15;N2=33; Wc=pi/4; wc=Wc/pi;%频率归一化 b1=
8、fir1(N1-1,wc,boxcar(N1)); b2=fir1(N2-1,wc,boxcar(N2)); [H1,W]=freqz(b1,1); H1_db=20*log10(abs(H1)); magH1=abs(H1); phaH1=angle(H1); [H2,W]=freqz(b2,1); H2_db=20*log10(abs(H2)); magH2=abs(H2); phaH2=angle(H2); subplot(2,4,1);stem(b1);title('N=15时,实际低通滤波器的h(n)') subplot(2,4,2);plot(W/
9、pi,H1_db);title('副频衰减特性') subplot(2,4,3);plot(W/pi,phaH1);title('相频特性') subplot(2,4,4);plot(W/pi,magH1);title('副频特性') subplot(2,4,5);stem(b2);title('N=33时,实际低通滤波器的h(n)') subplot(2,4,6);plot(W/pi,H2_db);title('副频衰减特性') subplot(2,4,7);plot(W/pi,phaH2);title('相频特性') subplot(2,4,8);plot(W/pi,magH2
10、);title('副频特性') 实验波形截图: 实验程序2: N=15,即N固定不变时,不同类型的窗函数对滤波器特性的影响: MATLAB程序: clear all; N=15;Wc=pi/4;wc=Wc/pi;%频率归一化 b1=fir1(N-1,wc,boxcar(N)); b2=fir1(N-1,wc,hanning(N)); b3=fir1(N-1,wc,bartlett(N)); b4=fir1(N-1,wc,blackman(N)); [H1,W]=freqz(b1,1); H1_db=20*log10(a
11、bs(H1)); magH1=abs(H1); phaH1=angle(H1); [H2,W]=freqz(b2,1); H2_db=20*log10(abs(H2)); magH2=abs(H2); phaH2=angle(H2); [H3,W]=freqz(b3,1); H3_db=20*log10(abs(H3)); magH3=abs(H3); phaH3=angle(H3); [H4,W]=freqz(b4,1); H4_db=20*log10(abs(H4)); magH4=abs(H4); phaH4=angle(H4); subpl
12、ot(4,4,1);stem(b1);title('矩形窗:实际低通滤波器的h(n)') subplot(4,4,2);plot(W/pi,H1_db);title('副频衰减特性') subplot(4,4,3);plot(W/pi,phaH1);title('相频特性') subplot(4,4,4);plot(W/pi,magH1);title('副频特性') subplot(4,4,5);stem(b2);title('汉宁窗:实际低通滤波器的h(n)') subplot(4,4,6);plot(W/pi,H2_db);title('副频衰减特性') subplot(4
13、4,7);plot(W/pi,phaH2);title('相频特性') subplot(4,4,8);plot(W/pi,magH2);title('副频特性') subplot(4,4,9);stem(b1);title('三角窗:实际低通滤波器的h(n)') subplot(4,4,10);plot(W/pi,H1_db);title('副频衰减特性') subplot(4,4,11);plot(W/pi,phaH1);title('相频特性') subplot(4,4,12);plot(W/pi,magH1);title('副频特性') subplot(4,4,13
14、);stem(b1);title('布拉克曼窗:实际低通滤波器的h(n)') subplot(4,4,14);plot(W/pi,H1_db);title('副频衰减特性') subplot(4,4,15);plot(W/pi,phaH1);title('相频特性') subplot(4,4,16);plot(W/pi,magH1);title('副频特性') 实验波形截图: 六、实验结论 1. N的大小决定了窗谱的主瓣宽度,N越大,窗谱的主瓣宽度越大。 2. 最小阻带衰减只有窗行决定,不受N的影响,过渡带宽度与N和窗形都有关,N越大,过渡带宽
15、越小。 3. 由实验可知滤波特性:布拉克曼窗>汉宁窗>三角窗>矩形窗。 七、思考题 (1) 如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?写出设计步骤。 答:①根据计算出所要设计的滤波器的过渡带 ②查表找到满足的阻带最小衰减所需的窗函数 ③利用已选的窗函数的过渡带宽除以得到低通滤波器单位脉冲响应的长度N ④根据求出h(n) ⑤再根据H(ejω) =求出响应函数H(ejω) (2) 如果要求用窗函数法设计带通滤波器,且给定上、下边带截止频率为ω1和ω2,试求理想带通的单位脉冲响应hd(n)。 解:由算出,求出滤波器过渡带宽和滤波
16、器长度N,最后由或求出,其中 《数字信号处理》实验报告 题 目 用窗函数法设计 FIR滤波器 学 院 理学院 专 业 信息安全(专门化) 班 级 10信安三班 学生姓名 高凯强 学 号 1008105072 日 期 2012年12月12号 《数字信号处理》实验报告 题 目 用窗函数法设计 FIR滤波器 学 院 理学院 专 业 信息安全(专门化) 班 级 10信安三班 学生姓名 高凯强 学 号 1008105072 日 期 2012年12月12号






