《语音信号滤波去噪——使用汉宁窗设计的FIR滤波器》第1页共23页语音信号滤波去噪——使用汉宁窗设计的FIR滤波器学生姓名:指导老师:摘要本课程设计主要是对一段语音信号,加入噪声后,用汉宁窗设计出的FIR滤波器对加入噪声后的语音信号进行滤波去噪处理。在此次课程设计中,系统操作平台为WindowsXP,程序设计的操作软件为MATLAB7.0。此课程设计首先是用麦克风采集一段语音信号,加入噪声,然后采用汉宁窗函数法设计出FIR滤波器,再用设计出的滤波器对这段加噪后的语音信号进行滤波去噪,最后对前后时域和频域的波形图进行对比分析,从波形可以看出噪声被完全滤除,达到了语音不失真的效果,说明此次设计非常成功。关键词程序设计;滤波去噪;FIR滤波器;汉宁窗;MATLAB7.01引言本课程设计主要是对一段语音信号,进行加噪后,用某种函数法设计出的FIR滤波器对加入噪声后的语音信号进行滤波去噪处理,并且分析对比前后时域和频域波形的程序设计。1.1课程设计目的在此次课程中主要的要求是用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用汉宁窗设计一个满足指标的FIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。与不同信源相同滤波方法的同学比较各种信源的特点,与相同信源不同滤波方法的同学比较各种滤波方法性能的优劣。通过此次课程设计,我们能够学会如何综合运用这些知识,并把这些知识运用于实践当中,使所学知识在综合运用能力上以及分析问题、解决问题能力上得到进一步的发展,《语音信号滤波去噪——使用汉宁窗设计的FIR滤波器》第2页共23页让自己对这些知识有更深的了解。通过课程设计培养严谨的科学态度,认真的工作作风和团队协作精神。1.2课程设计的要求(1)滤波器指标必须符合工程实际。(2)设计完后应检查其频率响应曲线是否满足指标。(3)处理结果和分析结论应该一致,而且应符合理论。(4)独立完成课程设计并按要求编写课程设计报告书。1.3工作平台简介课程设计的主要设计平台式MATLAB7.0。如下图1-1所示:MATLAB的名称源自MatrixLaboratory,它是美国MathWorks公司生产的一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种精确计算和数据处理的、可视化的、强大的计算工具。它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂数值计算的领域得到广泛应用。它不仅是一个在各类工程设计中便于使用的计算工具,而且也是一个在数学、数值分析和工程计算等课程教学中的优秀的教学工具,在世界各地的高等院校中十分流行,在各类工业应用中更有不俗的表现。MATLAB可以在几乎所有的PC机和大型计算机上运行,适用于Windows、UNIX等各种系统平台[1]。总的来说,该软件有三大特点。一是功能强大。具有数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算等功能;二是界面友善、语言自然。MATLAB以复数处理作为计算单元,指令表达与标准教科书的数学表达式相近;三是开放性强。当学好MATLAB的同时,会更好的帮助自己去就解决一些难题,而且MATLAB拥有非常好的发展前途,对我们未来的帮助也是不可限量的。《语音信号滤波去噪——使用汉宁窗设计的FIR滤波器》第3页共23页图1-1MATLAB7.0设计平台2设计原理2.1数字信号处理简介数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科[2]。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。随着信息技术的迅猛发展,数字信号处理已成为一个极其重要的学科和技术领域。在通信、语音、图像、自动控制和家用电器等众多领域得到了广泛的应用。数字滤波是数字信号处理的重要环节,它在数字信号处理中占有着重要的地位,它具有可靠性好、精度高、灵活性大、体积小、重量轻等优点。随着数字技术的发展,数字滤波器越来越受到人们的重视,广泛地应用于各个领域。数字滤波器的输入输出信号都是数字信号,它是通过一定的运算过程改变输入信号所含频率成分的相对比例或者滤除某些频率成分来实现滤波的,这种运算过程是由乘法器、加法器和单位延迟器组成的。数字滤波器是数字信号处理技术《语音信号滤波去噪——使用汉宁窗设计的FIR滤波器》第4页共23页的重要内容,其对数字信号进行的最常见处理是保留数字信号中的有用频率成分和去除信号中的无用频率成分。按照时间域的特性,数字滤波器可以分为无限冲激脉冲响应数字滤波器(IIR滤波器)和有限冲激脉冲响应数字滤波器(FIR滤波器)[3]。2.2FIR滤波器有限长单位脉冲响应数字滤波器(FiniteImpulseResponseDigitalFilter,缩写FIRDF):有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,最大优点是可以实现线性相性滤波,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。FIR滤波器的设计方法主要分为两类:第一类是基于逼近理想滤波器器特性的方法包括窗函数法、频率采样法、和等波纹最佳逼近法;第二类是最优设计法。设FIRDF的单位脉冲响应)(nh的长度为N,则其频率响应函数为10)()(NnnjjenheH(2-1)一般将)(jeH表示成如下形式:)()()(jgjeHeH(2-2)式中,)(gH是的实函数(可以去负值)。与前面的表示形式,即)()()(jgjeHeH相比,)(gH与不同。)(与)(不同。为了区别于幅频响应函数)(jeH和相频响应函数)(,称)(gH为幅频特性函数,称)(为相频特性函数。第一类线性相位FIRDF的相位特性函数是的严格线性函数:(2-3)第二类线性相位FIRDF的相位特性函数如下:0(2-4)式中,是常数,0是起始相位。2/0在信号处理中很有实用价值(如希伯尔特变换器),这是FIRDF除了线性相位滤波外,还具有真正交变换作用。《语音信号滤波去噪——使用汉宁窗设计的FIR滤波器》第5页共23页2.3窗口设计法FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗口设计法的基本思想是用FIRDF逼近希望的滤波特性。设希望逼近的滤波器的频率响应为jdeH,其单位脉冲响应用nhd表示。为了设计简单方便,通常选择jdeH为具有片段常数特性的理想滤波器。因此nhd是无限长非因果序列,不能直接作为FIRDF的单位脉冲响应。窗口设计法就是截取nhd为有限长的一段因果序列,并用合适的窗口函数进行加权作为FIRDF的单位脉冲响应nh。窗口设计法基本步骤如下:(1)构造希望逼近的频率响应函数jdeH。以低通线性相位FIRDF设计为例,一般选择jdeH为线性理想低通滤波器,即,,0jjdeeHcc(2-5)(2)求出nhd。对jdeH进行IFT得到nndeeHnhcnjjddsin21(2-6)(3)加窗得到FIRDF的单位脉冲响应nh,nwnhnhd(2-7)式中,nw称为窗口函数,其长度为N。如果要求第一类线性相位FIRDF,则要求nh关于2/1N点偶对称。而nhd关于n点偶对称,所2/1N,同时要求nw关于2/1N点偶对称。常见的窗函数,可以分为以下主要类型:(1)幂窗--采用时间变量某种幂次的函数,如矩形、三角形、梯形或其它时间(t)的高次幂;(2)三角函数窗--应用三角函数,即正弦或余弦函数等组合成复合函数,例如汉宁窗、海明窗等;《语音信号滤波去噪——使用汉宁窗设计的FIR滤波器》第6页共23页(3)指数窗--采用指数时间函数,例如高斯窗等[4]。其性能如表2-1所示:表2-1常见窗函数性能表名称滤波器过渡带宽最小阻带衰减名称滤波器过渡带宽最小阻带衰减矩形1.8π/M21dBPARZENWIN6.6π/M56dB巴特利特6.1π/M25dBFLATTOPWIN19.6π/M108dB汉宁6.2π/M44dBGAUSSWIN5.8π/M60dB汉明6.6π/M51dBBARTHANNWIN3.6π/M40dB布莱克曼11π/M74dBBLACKMANHARRIS16.1π/M109dBBOHMANWIN5.8π/M51.5dBCHEBWIN15.2π/M113dBNUTTALLWIN15.4π/M108dBTUKEYWIN2.4π/M22dB2.4汉宁窗(Hanningwindow)汉宁窗函数是余弦平方函数,又称之为升余弦函数,它的时域形式可以表为:()0.5(1cos(2))1kwkn(2-8)其中1,2,,kn…。它的频域幅度特性函数为:1()222()0.5()0.25[()()]11NjRRR(2-9)其中()RW为矩形窗函数的幅度频率特性函数。汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了一倍,为8N。汉宁窗函数的时域幅度与频域幅度特性曲线的MATLAB实现的曲线图如图2-1所示。《语音信号滤波去噪——使用汉宁窗设计的FIR滤波器》第7页共23页图2-1汉宁窗函数的时域幅度与频域幅度特性曲线3设计步骤3.1设计流程图本课程设计主要是用麦克风采集一段语音信号,通过进行自编函数加入噪声,然后采用汉宁窗函数法设计FIR滤波器,并且对这段加入噪声的语音信号函数进行滤波去噪,用绘图的程序画出前后时域和频域的波形图进行对比分析。程序的设计流程图如下图3-1所示:《语音信号滤波去噪——使用汉宁窗设计的FIR滤波器》第8页共23页图3-1程序设计流程图3.2录制语音信号单击桌面左下角的“开始”命令,找到“附件”中的“娱乐”命令,出现“录音机”这一项,单击这一项,弹出窗口,如下图3-2所示,接下来开始录制语音信号“大家好,我是xxx”,时间为2-3秒,如下图3-3所示:图3-2未录制信号时录音机的状态图3-3录制信号后录音机的状态在Windows下录制语音将语音格式改为.wav加入单频噪声对语音信号进行频谱分析,画出时域和频域波形图用汉宁窗设计FIR滤波器画出其频率响应用FIR滤波器对语音信号进行滤波画出语音信号滤波前后波形并且进行比较分析开始结束《语音信号滤波去噪——使用汉宁窗设计的FIR滤波器》第9页共23页3.3语音加噪处理采集完成后在信号中加入一个单频噪声,设计的任务即为从含噪信号中滤除单频噪声,还原原始信号。所以我们首先对采集来的信号进行加噪处理,调用的程序如下:[x,fs,bits]=wavread('d:\luo.wav');%输入参数为文件的全路径和文件名,输出的第一个参数是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。sound(x,fs,bits);%按指定的采样率和每样本编码位数回放N=length(x);%计算信号x的长度fn=1700;%单频噪声频率t=0:1/fs:(N-1)/fs;%计算时间范围,样本数除以采样频率y=x'+0.01*sin(fn*2*pi*t);%加入一个单频噪声sound(y,fs,bits);%应该可以明显听出有尖锐的单频啸叫声对语音信号加入单频噪声前后的波形进行分析