您的当前位置:首页正文

FIR数字低通滤波器的(汉宁)窗函数法设计

来源:爱站旅游
导读FIR数字低通滤波器的(汉宁)窗函数法设计


课程设计说明书 NO.1

语音信号的数字滤波 ——FIR数字滤波器的(汉宁)窗函数法设计 设计题目:语音信号的数字滤波——FIR数字滤波器的(汉宁)窗函数法设计 一、课程设计的目的 通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;掌握利用数字滤波器对信号进行滤波的方法。并能够对设计结果加以分析。 二、设计步骤 2.1窗函数设计法的原理 窗函数的基本思想:先选取一个理想滤波器(它的单位抽样响应是非因果、无限长的),再截取(或加窗)它的单位抽样响应得到线性相位因果FIR滤波器。这种方法的重点是选择一个合适的窗函数和理想滤波器。 设x(n)是一个长序列,(n)是长度为N的窗函数,用(n)截断x(n),得到N点序列xn(n),即 xn(n)x(n)(n) 在频域上则有 XNej1πXejWejd2ππ 由此可见,窗函数(n)不仅仅会影响原信号x(n)在时域上的波形,而且也会影响到频域内的形状。 2.2汉宁窗函数简介 汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表示,这就是广义余弦窗。这些窗都是广义余弦窗的特例,汉宁(Hanning)窗又称升余弦窗,汉宁窗可以看作是3 沈 阳 大 学

课程设计说明书 NO.2

个矩形时间窗的频谱之和,或者说是 3个 sinc(t)型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了π/T,从而使旁瓣互相抵消,消去高频干扰和漏能。适用于非周期性的连续信号。公式如下: 2nnw(n)0.51cosR19(n)0.51cosR19(n) N192.3进行语音信号的采集 (1)按“开始”-“程序”-“附件”-“娱乐”-“录音机”的顺序操作打开Windows系统中的录音机软件。如图1所示。 图1 windows录音机 (2)用麦克风录入自己的声音信号并保存成wav文件。如图2所示。 图2 保存文件 沈 阳 大 学

课程设计说明书 NO.3

保存的文件按照要求如下: ① 音信号文件保存的文件名为“yuxuejiao.wav”。 ②语音信号的属性为“8.000KHz,8位,单声道 7KB/秒” ,其它选项为默认。 2.4语音信号的分析 将“yuxuejiao.wav”语音文件复制到计算机装有Matlab软件的磁盘中相应Matlab目录中的“work”文件夹中。打开Matlab软件,在菜单栏中选择“File”-“new”将代码复制到空白处,并保存到“work”文件夹中,和声音文件在同一个文件夹内。 2.4.1语音信号的截取处理和频谱分析 编写MATLAB编码实现对信号的截取处理,也就是对yf.wav语音的截取处理,截取范围为17000-57000。代码如下: [s, fs]=wavread('yuxuejiao.wav'); s1=s(17000:57000); figure(1); subplot(211) plot(s) title('原始语音信号') subplot(212) plot(s1) title('截短语音信号'); wavwrite(s1,fs,'s1.wav'); S1=fft(s1); figure(2) subplot(311); plot(s1); title('截短预处理语音信号') subplot(312) plot(abs(S1)) title('预处理语音信号频谱'); 沈 阳 大 学

课程设计说明书 NO.4

subplot(313); k=0:39999; plot(k(1:20000)*1,abs(S1(1:20000))); title('预处理语音信号单边带频谱') 在m文件编辑器中输入相应的指令将自己的语音信号导入Matlab工作台,点击“run”或者 “F5”运行文件。效果如图3和图4 图3语音信号的截取处理图 在图3中, 其中第一个图为原始语音信号; 第二个图是截短后的信号图。 沈 阳 大 学

课程设计说明书 NO.5

图4频谱分析图 其中第二个图是信号的FFT结果,其横坐标的具体值是X(k)中的序号k;第三个图是确定滤波频率范围的参考图,其横坐标的具体值应当是遵循DFT定义式和频率分辨率求得的: k X(k)DFT[x(n)]x(n)WNn02knNN1当k等于0时, WknNk0ejej0,从数字角频率上看,对应的正好是0即直流的位置,也就是说,在取滤波频段时,当将主要能量(即红色框的部分)保留,其余频段部分的信号滤除。 X(k)DFT[x(n)]相当于是信号x(n)的实际频谱X(ejw)DFT[x(n)]采样,而x(n)又是连续时间语音信号x(t)的采样。X(k)的每两个相邻取值之间的频率间隔大小对应到语音信号x(n)的频谱中去,其频率间隔大小正好是 沈 阳 大 学

课程设计说明书 NO.6

fdetffs采样速率 L采样结果的长度f称频率分辨率,其中fs8000Hz,L10000, ffs80000.2 L40000由于在第三个图中是遵循DFT定义式和频率分辨率求得,表示的是滤波频率的范围 2.5滤波器的设计 2.5.1滤波器理论参数设定 (1) 从图4可知我们已经确定了通带截止频率和阻带截止频率fp900Hz和fst1000Hz。  pps22fpfs0.70686  stst2fst20.7854 sfsfpfst10.74613 cpst2fsstp0.07854 由于hanning窗过渡带满足 3.12 NN264 N1131.5 2(2)给定所要求的频率响应函数Hd(ej) jeHd(ej)0||c||c. 沈 阳 大 学

课程设计说明书 NO.7

(3)求单位采样响应hd(n) 1jjnhd(n)IDTFTHd(e)H(e)ed2csinc(n)c1cjjneedSac(n) 2cc(n)j0.74613Sa[0.74613(n264)](4)计算线性相位延迟 131.5,N264 n2n)R264(n) hanning窗w(n)0.50.5cosRN(n)=0.50.5cos(131.5N1(5)滤波器的单位采样响应: h(n)hd(n)w(n) h(n)0.74613Sa[0.74613(n264)][0.50.5cos(n)(n)] 131.5R2642.5.2滤波器的MATLAB仿真 在M文件中继续编写代码,把计算出来的参数带入代码中。代码如下:s2=awgn(s1,30); %%%%%%%%%%%%%%%%%%%%%%%%%%完成加噪!30db wavwrite(s2,fs,'s2.wav'); figure(3); subplot(211); plot(s2); title('加噪后语音信号'); subplot(212); S2=fft(s2); plot(abs(S2)); title('加噪后信号频谱'); figure(4) subplot(211); 沈 阳 大 学

课程设计说明书 NO.8

plot(s1); title('语音信号'); subplot(212); plot(s2); title('加噪后语音信号'); %%%%%%%%%滤波器完成相关参数配置 wp=900*2*pi/8000; wst=1000*2*pi/8000; wc=(wp+wst)/2; N=ceil(3.1*2*pi/(wst-wp)); r=(N-1)/2; hn1=fir1(N-1,wc/pi,'low',hanning(N));% s3=conv(s2,hn1); wavwrite(s3,fs,'s3.wav'); S3=fft(s3); figure(5) freqz(hn1); title('滤波器幅频特性与相频特性') figure(6) subplot('111') stem(hn1); title('滤波器单位采样响应'); figure(7) subplot(211) plot(s3) title('滤波器处理之后信号图') subplot(212); plot(abs(S3)); 沈 阳 大 学

课程设计说明书 NO.9

title('滤波器处理之后频谱'); figure(8) subplot(211) plot(s2); title('加噪后语音信号'); subplot(212); plot(s3); title('滤波器处理之后信号图'); s4=conv(s1,hn1); p1=sum(s1.^2); p2=sum(s2.^2)-sum(s1.^2); SNR1=10*log10(p1/p2); p3=sum(s4.^2)/8000; p4=sum(s3.^2)/8000-sum(s4.^2)/8000; SNR2=10*log10(p3/p4); 2.6 噪声叠加 图5 语音信号与加噪声后语音信号对比 沈 阳 大 学

课程设计说明书 NO.10

图五为语音信号与加噪声后语音信号对。比计算机随即产生的噪声指令为:awgn() 所加的噪声为30 dB。 图6 加噪后语音信号与加噪后信号频谱图 图7滤波器频幅特性与相频特性 沈 阳 大 学

课程设计说明书 NO.11

图8滤波器单位采样响应 图7是滤波器频幅特性与相频特性,图8是hanning窗函数单位冲激响应系数。 图9 滤波器处理后的信号及频谱图 沈 阳 大 学

课程设计说明书 NO.12

图10 加噪后的语音信号及处理后的信号图 设计的滤波器是用单位采样响应h(n)表示的,可以利用带噪声语音s2(n)s1(n)noise与h(n)做时域卷积,即:y(n)s1(n)*h(n) 。在Matlab中,卷积运算可以用函数“conv( )”实现。 滤波前(含噪声)的信号和滤波后信号的信噪比, 利用sum求信号的功率。在m文件中继续编写信噪比代码段: s4=conv(s1,hn1); p1=sum(s1.^2); p2=sum(s2.^2)-sum(s1.^2); SNR1=10*log10(p1/p2); p3=sum(s4.^2)/8000; p4=sum(s3.^2)/8000-sum(s4.^2)/8000; SNR2=10*log10(p3/p4); 沈 阳 大 学

课程设计说明书 NO.13

三、设计结果与分析 滤波就是将外界干扰的不需要的频率滤除掉,一面影响要测试数据的结果。采样间隔也会对实验产生影响,取的过大会导致频率混叠。 3.1比较滤波前(含噪声信号的文件)和滤波后的语音信号效果。 图10 利用hamming窗FIR低通滤波器滤波效果图 图10为滤波前后的效果图,第一个图是加噪后的图,图中波形的毛刺部分(即干扰噪声)被滤除,输入的带噪声信号经过滤波器滤波后,即第二个图中所示波形。图中有明显的滤波效果,滤波器不仅把30dB的噪声滤掉了,同时也也能滤掉了原信号的声音,因此在实际的实验会和理论有误差,许多时候得不到完美的效果。 3.2滤波前(含噪声)的信号和滤波后信号的信噪比 沈 阳 大 学

课程设计说明书 NO.14

图11相关参数的截图,其中snr为信噪比 图11是利用“信噪比代码段”做出来的效果图,图中名称snr1为最滤波前的信噪比,snr2为滤波后的信噪比,snr2大于snr1,最终达到了效果。 四、设计体会 在本次课程设计中,让我更加了解了数字信号处理在实际上的应用,课程设计不仅要求对滤波器理论的研究,更重要的是实际设计中遇到的问题。因为有了这次课程设计,我不得不对其设计原理进行更深一层次的理解,对书中原来学到的理论,仅知道了其表面,而不知其原因。在设计中也使我对一些概念有了更深刻的认识。除此之外,对程序的编译不是一蹴而就的,而是经过多次的编译与调试。以前用MATLAB就是简单的输入,可以说都不是自己的劳动成果,但这次不一样,课程设计没有别人给你编好, 沈 阳 大 学

课程设计说明书 NO.15

而是自己写,出错率就大大提高了,但这是过程,学习就是在过程中进行的,经过自己几天的脑力劳动,再加上同学们的帮助,不仅对读程序有了很大提高,而且自己的编译水平也上了一个新台阶,更加熟系了MATLAB的应用,也对其中的函数有了大概的了解,对其中一些函数也相当熟练。完成整个设计过程后,学到的东西已经不仅仅上面的那些东西,还有同学们互相帮助,共同探讨和设计过程中的每一个细节,也许每一个细节的错误就可能导致结局的失败,所以我认为这次收获最大的莫过于静心,学习不能急,一定要冷静,心无旁骛,不放过任何一个细节,就能带来凯旋的消息。 在此,感谢老师一学年以来对我们不仅学习上的关心,还有生活中的照顾,我也不会辜负老师的期望,继续努力深造。 五、参考文献 [1]程佩青.数字信号处理教程(第三版)[M].北京:清华大学出版社,2006. [2]施阳.MATLAB语言工具箱[M].西北工业大学出版社,1999 :45-78. [3]程佩青编著.数字信号处理教程.北京:清华大学出版社,2007. [4]李正周编著. MATLAB数字信号处理与应用. 北京:清华大学出版社2008.

沈 阳 大 学

因篇幅问题不能全部显示,请点此查看更多更全内容

Top