您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 畜牧/养殖 > 语音信号滤波去噪-使用三角窗设计FIR滤波器
语音信号滤波去噪——基于三角窗的FIR滤波器学生姓名:指导老师:摘要课程设计主要内容是设计利用窗口设计法选择三角窗设计一个FIR滤波器,对一段含噪语音信号进行滤波去噪处理并根据滤波前后的波形和频谱分析滤波性能。本课程设计仿真平台为MATLAB7.0,开发工具是M语言编程。首先利用系统自带的录音机工具录制一段语音信号,并人为加入一单频噪声,然后对信号进行频谱分析以确定所加噪声频率,并设计滤波器进行滤波去噪处理,最后比较滤波前后的波形和频谱并进行分析。由分析结果可知,滤波器后的语音信号与原始信号基本一致,即设计的FIR滤波器能够去除信号中所加单频噪声,达到了设计目的。关键词滤波去噪;FIR滤波器;三角窗;MATLAB1引言本课程设计主要解决在含噪情况下对语音信号的滤波去噪处理,处理时采用的是利用窗口设计法选择三角窗设计的FIR滤波器。1.1课程设计目的设计一个FIR滤波器,可以有多种方法,窗函数法是设计FIR数字滤波器的最简单的方法。它在设计FIR数字滤波器中有很重要的作用,正确地选择窗函数可以提高设计数字滤波器的性能,或者在满足设计要求的情况下,减小FIR数字滤波器的阶次。常用的窗函数有以下几种:矩形窗(Rectangularwindow)、三角窗(Triangularwindow)、汉宁窗(Hanningwindow)、汉明窗(Hammingwindow)、布拉克曼窗(Blackmanwindow)等等。在本次课程设计的目的是通过用麦克风采集一段语音信号,绘制波形并观察其频谱特点,加入一个带外单频噪声,用三角窗设计一个满足指标的FIR滤波器,对该含噪语音信号进行滤波去噪处理,从而达到对双音频信号滤波去噪的效果。比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。与不同信源相同滤波方法的同学比较各种信源的特点,与相同信源不同滤波方法的同学比较各种滤波方法性能的优劣。1.2课程设计的要求(1)滤波器指标必须符合工程实际。(2)设计完后应检查其频率响应曲线是否满足指标。(3)处理结果和分析结论应该一致,而且应符合理论。(4)独立完成课程设计并按要求编写课程设计报告书。1.3设计平台MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。[1]2设计原理2.1FIR滤波器FIR(FiniteImpulseResponse)滤波器又叫有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。目前,FIR滤波器的硬件实现有三种方式:数字集成电路FIR滤波器、可编程FIR滤波器和DSP芯片FIR滤波器。数字集成电路FIR滤波器是使用单片通用数字滤波器集成电路,这种电路使用简单,但是由于字长和阶数的规格较少,不易完全满足实际需要。虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用中受到限制。DSP芯片FIR滤波器是使用DSP芯片。DSP芯片有专用的数字信号处理函数可调用,实现FIR滤波器相对简单,但是由于程序顺序执行,速度受到限制。而且,就是同一公司的不同系统的DSP芯片,其编程指令也会有所不同,开发周期较长。可编程FIR滤波器是使用可编程逻辑器件,FPGA/CPLD。FPGA有着规整的内部逻辑块整列和丰富的连线资源,特别适合用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运算主导的通用DSP芯片来说,并行性和可扩展性都更好。有限长单位冲激响应(FIR)滤波器有以下特点:(1)系统的单位冲激响应h(n)在有限个n值处不为零(2)系统函数H(z)在|z|0处收敛,极点全部在z=0处(因果系统)(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。设FIR滤波器的单位冲激响应h(n)为一个N点序列,0≤n≤N—1,则滤波器的系统函数为:H(z)=∑h(n)*z^-n。[2]FIR数字滤波器设计的基本步骤如下:(1)确定技术指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以2种方式给出。第一种是绝对指标。他提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。他以分贝值的形式给出要求。本文中滤波器的设计就以线性相位FIR滤波器的设计为例。(2)逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型(通常采用理想的数字滤波器模型)。之后,利用数字滤波器的设计方法(窗函数法、频率采样法等),设计出一个实际滤波器模型来逼近给定的目标。(3)性能分析和计算机仿真上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求。2.2窗口设计法FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列。窗口法的优点是简单,有闭合的公式可用,性能及参数都有表格资料可查,计算程序简单,较为实用。缺点是当Hd(ejω)较为复杂时,hd(n)就不容易由反付里叶变换求得。边界频率因为加窗的影响而不易控制。主要设计步骤为:(1)通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。1sin[()]()2()jwnxcdxwnhnedwn(2-1)(2)由性能指标确定窗函数W(n)和窗口长度N。(3)求得实际滤波器的单位脉冲响应h(n),h(n)即为所设计FIR滤波器系数向量b(n)。()()()dhnhnWn(2-2)(4)检验滤波器性能其中要注意的是窗口法设计FIR滤波器时,窗口的长度对滤波器的过渡带宽产生影响:窗口的长度越长,滤波器的过渡带越窄、越陡。窗口的形状对滤波器的最小阻带衰耗和过渡带宽都产生影响:最小阻带衰耗取决于窗谱主副瓣面积之比;过渡带宽取决于窗谱主瓣宽度。另外,窗口形状必须是对称的,才可用以设计线性相位FIR滤波器。[3]2.3三角窗在实际进行数字信号处理时,往往需要把信号的观察时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析。这样,取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗函数操作。而这样操作以后,常常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”。当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行抑制。而要对频谱泄漏进行抑制,可以通过窗函数加权抑制DFT的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。而在后面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列。可见,窗函数加权技术在数字信号处理中的重要地位。下面介绍窗函数的基本概念。设x(n)是一个长序列,w(n)是长度为N的窗函数,用w(n)截断x(n),得到N点序列xn(n),即xn(n)=x(n)w(n)(2-3)在频域上则有ππjjjdeπ21eWeXXN(2-4)由此可见,窗函数w(n)不仅仅会影响原信号x(n)在时域上的波形,而且也会影响到频域内的形状。三角窗的滤波器过渡带宽为3.6π/M,最小阻带衰减为40db。在MATLAB中调用TRIANG函数:生成三角窗。调用方式w_barth=triang(M);:产生一长度为M的三角窗。[4]3设计步骤3.1设计流程图双音频信号滤波去噪——使用三角窗设计的FIR滤波器的设计流程图如图3.1所示:图3.1使用BARTHANNWIN窗设计的FIR滤波器对双音频信号去噪流程图开始在MATLAB集成环境下用wavread函数将语音信号录入,并对语音信号加入噪声,画出语音信号加噪声前后的时域和频域波形图并进行比较。双音频信号的采集设定带阻滤波器的性能指标,下通带fpd=2900;下阻带fsd=2950;上阻带fsu=3050;上通带fpu=3100;通带波纹Rp=1;阻带波纹As=100三角窗设计FIR滤波器验证并进行频谱分析用设计好的滤波器进行滤波处理回放语音信号结束3.2录制语音信号录制语音信号的方法有很多,其中专用软件如REAPER、MedievalCUESplitter、以及cooleditpro2.1等,而cooleditpro2.1就有许多人使用,它是一个非常出色的数字音乐编辑器和MP3制作软件。不少人把CoolEdit形容为音频“绘画”程序。你可以用声音来“绘”制:音调、歌曲的一部分、声音、弦乐、颤音、噪音或是调整静音。而且它还提供有多种特效为你的作品增色:放大、降低噪音、压缩、扩展、回声、失真、延迟等。你可以同时处理多个文件,轻松地在几个文件中进行剪切、粘贴、合并、重叠声音操作。使用它可以生成的声音有:噪音、低音、静音、电话信号等。该软件还包含有CD播放器。其他功能包括:支持可选的插件;崩溃恢复;支持多文件;自动静音检测和删除;自动节拍查找;录制等。另外,它还可以在AIF、AU、MP3、RawPCM、SAM、VOC、VOX、WAV等文件格式之间进行转换,并且能够保存为RealAudio格式!如果觉得这些格式都不能满足需求的话,可以将cooledit和格式工厂配合使用,可以保证格式的问题得到解决。一款强大的多音轨录制和音频编辑软件,提供了灵活且易用的界面,对音频爱好者和专业人士同样适合。REAPE它是一款免费的音频录制和编辑软件,并支持DirectX/VST、plug-ins和ASIO驱动,VSTi乐器等。现在最新版本为4.12,支持windows64位,和苹果系统。MedievalCUESplitter是一个免费的音轨切割工具,可以支持WAVE、MP3、FLAC、APE、OGG、WMA、MPC、WV和TTA等格式的文件。它使用方便,可以根据文件情况选择合适的切割方式,可以对作者和标题信息进行编辑。但是,为了简化录制,我利用了Windows下的录音机,录制语音信号“大家好,我是王麟”,时间在2-3s左右。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,学生很快理解了采样频率、采样位数等概念。采集完成后在信号中加入一个单频噪声,设计的任务即为从含噪信号中滤除单频噪声,还原原始信号。源代码如下:[x,fs,bits]=wavread('wl.wav');sound(x,fs,bits);N=length(x);%计算信号x的长度fn=3000;t=0:1/fs:(N-1)/fs;%计算时间范围,样
本文标题:语音信号滤波去噪-使用三角窗设计FIR滤波器
链接地址:https://www.777doc.com/doc-5754386 .html