《山东大学《生物医学信号处理》实验5 用窗函数法设计FIR数字滤波器》由会员分享,可在线阅读,更多相关《山东大学《生物医学信号处理》实验5 用窗函数法设计FIR数字滤波器(3页珍藏版)》请在金锄头文库上搜索。
1、实验5 用窗函数法设计FIR数字滤波器、实验目的()掌握用窗函数法设计FIR数字滤波器的原理和方法。()熟悉线性相位FIR数字滤波器特性。()了解各种窗函数对滤波特性的影响。、实验原理如果所希望的滤波器的理想频率响应函数为,则其对应的单位脉冲响应为窗函数设计法的基本原理是用有限长单位脉冲响应逼近。由于往往是无限长序列,且是非因果的,所以用窗函数将截断,并进行加权处理,得到:就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为式中,为所选窗函数的长度。这种对理想单位取样响应的加窗处理对滤波器的频率响应会产生以下三点影响:(1)使理想特性不连续的边沿加宽,形成一过渡带,过渡带的宽度
2、取决于窗函数频谱的主瓣宽度。(2)在过渡带两旁产生肩峰和余振,它们取决于窗函数频谱的旁瓣;旁瓣越多,余振也越多;旁瓣相对值越大,肩峰则越强。(3)增加截断长度,只能缩小窗函数频谱的主瓣宽度而不能改变旁瓣的相对值;旁瓣与主瓣的相对关系只决定于窗函数的形状。因此增加N,只能相对应减小过渡带宽。而不能改变肩峰值。肩峰值的大小直接决定通带内的平稳和阻带的衰减,对滤波器性能有很大关系。例如矩形窗的情况下,肩峰达8.95%,致使阻带最小衰减只有21分贝,这在工程上往往是不够的。怎样才能改善阻带的衰减特性呢?只能从改善窗函数的形状上找出路,所以希望的窗函数频谱中应该减少旁瓣,使能量集中在主瓣,这样可以减少肩
3、峰和余振,提高阻带衰减。而且要求主瓣宽度尽量窄,以获得较陡的过渡带,然而这两个要求总不能同时兼得,往往需要用增加主瓣宽度带换取较大的阻带衰急,于是提出了海明窗、汉宁窗、布莱克曼窗、凯塞窗、切比雪夫窗等窗函数。所以,用窗函数法设计的滤波器性能取决于窗函数的类型及窗口长度的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度。设待求滤波器的过渡带用表示,它近似等于窗函数主瓣宽度。因过渡带近似与窗口长度成反比,决定于窗口形式。例如,矩形窗A=4,海明窗A=8等。按照过渡带及阻带衰减情况,选择窗函数形式。原则是在保证阻带衰减满足要求的情况下, 尽量选择主瓣窄的窗函数。
4、这样选定窗函数类型和窗口长度后,求出单位脉冲响应,再求出。是否满足要求,要进行验算。一般在的尾部加零使长度满足的整数次幂,以便用FFT计算。如果要观察细节,补零点数增多即可。如果不满足要求,则要重新选择窗函数类型和长度,再次验算,直至满足要求。如果要求线性相位特性,则还必须满足:根据上式中的正、负号和长度的奇偶性又将线性相位FIR滤波器分成四类。要根据所设计的滤波特性正确选择其中一类。例如,要设计线性相位低通特性,可选择一类, 而不能选一类。 、实验步骤及内容()根据下列技术指标,设计一个线性相位的FIR数字低通滤波器。通带截止频率,通带允许波动;阻带截止频率,阻带衰减。 ()写出()中理想低
5、通滤波器的频率响应和单位脉冲响应。()写出()中所设计的低通滤波器的单位脉冲响应;并调用fir1()函数得到所设计的低通滤波器的单位脉冲响应,调用fft()函数进行频响验证。打印输出各部分结果。()编程验证窗长和窗形状对实际滤波器性能的影响。如要求用窗函数法设计一个线性相位FIR数字低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率,用四种窗函数(矩形窗,汉宁窗(升余弦窗),哈明窗(改进的升余弦窗),布莱克曼窗)设计该滤波器,选择窗函数的长度两种情况。4、实验用MATLAB函数介绍fir1(); fft(); freqz(); boxcar(); hamming(); hanning();
6、blackman(); sin();figure(); plot(); stem(); abs();angle(); title(); xlabel(); ylabel(); text(); hold on; axis(); grid on; subplot();、思考题如果要求用窗函数法设计带通滤波器, 且给定上、 下边带截止频率为和,试求理想带通的单位脉冲响应。、实验报告要求()简述实验目的及实验原理。()编程实现各实验内容,列出实验清单及说明。()总结窗函数法设计FIR数字滤波器的步骤。()简要回答思考题。参考程序:% ()%FIR filter designclc;clear all;
7、 close allwp=0.2*pi;ws=0.3*pi;wdelta=ws-wp;N=ceil(8*pi/wdelta);Wn=(0.2+0.3)*pi/2;b=fir1(N,Wn/pi,hanning(N+1);figurefreqz(b,1,512) b=fir1(N,Wn/pi,hamming(N+1);figurefreqz(b,1,512) b=fir1(N,Wn/pi,blackman(N+1);figurefreqz(b,1,512) b=fir1(N,Wn/pi,triang(N+1);figurefreqz(b,1,512) b=fir1(N,Wn/pi,boxcar(N+1);figurefreqz(b,1,512) 3