噪声估计的算法及matlab实现毕业设计

(53页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.90 积分

I噪声估计的算法及MATLAB实现毕业设计目录1绪论111噪声估计算法研究的目的和意义112国内外研究的现状213论文的整体安排32几种经典的噪声估计的算法421几种噪声估计算法的优点422噪声估计算法43基于语音活动性检测的噪声估计算法及MATLAB实现631基于语音活动性检测的噪声估计算法6311短时能量6312短时平均过零率7313基于短时能量和短时平均过零率的语音活动性检测7314实验仿真94最小统计递归平均的噪声估计算法及MATLAB仿真1141最小值统计法11411最优平滑11412最小功率谱统计跟踪12413实验仿真1442基于统计信息的非平稳噪声自适应算法15421概述15422非平稳噪声自适应算法1543最小值控制递归平均算法18431计算局部能量最小值19432估计语音存在的概率20433更新噪声谱的估计2044一种改进的最小统计量控制递归平均噪声估计算法21441改进的噪声估计算法21442实验仿真235总结与展望2451论文的主要工作2452目前存在的问题及今后的发展方向24参考文献25致谢26附录外文文献2711绪论11噪声估计算法研究的目的和意义语音作为语言的声学表现,是人类特有的也是最重要的思想和情感交流段,也是人机交互最自然的方式。而人们在通信过程中,语音常常受到环境噪声的干扰而使通话质量下降,在实际应用中噪声的存在也会产生很多问题,语音处理设备对人类语音进行获取或处理的过程不可避免地要受到来自周围环境的各种噪声或其它讲话者的干扰,这些干扰噪声最终将使语音处理设备的接收到的语音不再是纯净的原始语音,而是被噪声污染过的带噪语音。由于环境噪声的污染会使许多语音处理系统的性能急剧恶化,严重时使语音处理系统不能正常工作,因此在上述情况下,背景噪声的存在不仅严重破坏了语音信号原有的模型参数和声学特性,导致许多语音处理系统服务质量的降低,而且会影响系统输出语音的可懂程度,使听众产生听觉疲劳。在视频信号中也同样存在噪声,很多视频图像处理都是在没有考虑噪声情况下得出的,如果存在噪声就必将会影响这些算法的有效性。由于噪声对视频图像处理算法的影响如此大,因此在开发图像视频处理算法时必须考虑噪声,必须有一种可靠的方法能准确地估计噪声,以便使很多图像视频处理算法比如边缘检测、图像分割和滤波等在噪声存在的情况下依旧保持非常良好的性能。然而,语音增强技术作为一种预处理技术,是消除这些噪声干扰的一个最重要的手段,它通过对带噪语音进行处理来改善语音质量,使人们易于接受或提高语音处理系统的性能。语音增强的主要目标是从带噪语音信号中提取尽可能纯净的原始语音,通过语音增强,抑制背景噪声,提高语音通信质量,而噪声估计又是语音增强的一个非常重要的部分,噪声估计的准确性直接影响到语音增强的效果,因此研究噪声估计算法有很好的实用价值。在这种情况下,必须建立一个语音增强系统,通过对带噪语音进行处理,以消除背景噪声,改善语音质量,提高语音的清晰度、可懂度和自然度,提高语音处理系统的性能;或者将语音增强作为一种预处理手段,以提高语音处理处理系统的抗干扰能力。要实现这些第一个环节就是要利用噪声的特性参数,很好的将噪声估计出来。语音增强算法可从信号输入的通道数上分为单通道的语音增强算法和多通道的语音增强算法。单通道语音系统在实际应用中较为常见,如电话,手机等。这种情况下语音和噪声同时存在一个通道中,语音信息与噪声信息必须从同一个信号中得出。而单通道语音增强是语音增强的基础,单通道语音增强第一个环节就是要利用噪声的特性参数,很好的将噪声估计出来,而在此方法中,噪声源是不可接近的,背景噪声的特性只能从带噪语音中获得。因此,噪声估计的准确性会直接影响最终效果噪声估计过高,则微弱的语音将被去掉,增强语音会产生的失真;而估计过低,则会有较多的背景残留噪声。因此,对噪声估计方法的研究是非常必要的,在语音算法的前期必需要对噪声进行估计。噪声估计还在语音通讯领域非常重要,同时在统计学、图像处理、军事等方面也起着非常重要的作用由于噪声的统计特性比语音的统计特性更平稳,2所以噪声估计在统计学中也很有研究意义。可见,噪声估计在很多领域起着非常重要的作用,那么噪声估计算法作为研究课题是非常有意义的。12国内外研究的现状有关抗噪声技术的研究,在国内外作为非常重要的研究课题,已经作了大量的研究工作,取得了丰富的研究成果。而噪声估计是语音增强中非常重要的一个部分,在这方面的研究,国外比较多一些,以下介绍几种经典的噪声估计算法。传统的噪声估计方法是使用语音活动性监测VADVOICEACTIVEDETECTION判别语音是否出现,并分离出无声段,此时无声段主要表现为噪声特性,然后在无声区通过某种统计方法,获得背景噪声特性的近似估计,对噪声谱进行更新。尽管该方法在噪声为平稳的情况下是可行的,但是在实际的噪声环境中噪声谱的特性变化很大,在低信噪比下,VAD的误检率会增大,在不能正确判断无声段的情况下很难保证估计出来的噪声的准确性。因此,为了实现精确的噪声估计,就要对噪声谱进行实时的估计。1994年MARTIN提出了一种基于最小值统计的方法来估计噪声,它是基于带噪语音信号的功率水平滞后于噪声的功率水平,因此可以通过跟踪带噪语音信号功率谱的最小值来获得噪声功率谱的估计值。在大约15S的滑动窗口内寻找每一频率带内的频谱最小值,经过补偿后和带噪语音的功率谱进行比较。不论带噪语音的功率谱是否小于局部最小值,局部最小值都需要更新。同时,为了能更快的跟踪并更新局部最小值和频谱最小值,把滑动窗口分为子窗口,在每个子窗口内更新噪声的估计谱,提高了精确度4。此算法的基本思路是先用一个最优平滑滤波对带噪语音的功率谱滤波,得到一个噪声的粗略估计。然后找出粗略噪声中的在一定时间窗内的最小值,对这个最小值进行一些偏差修正,即得到所要估计的噪声的方差。1995年DOBLINGER通过比较前帧带噪语音子带平滑功率谱最小值和后帧带噪语音子带平滑功率谱之间大小,对带噪语音子带平滑功率谱最小值每帧进行跟踪和更新,并将其作为估计的噪声谱,该噪声谱估计方法计算效率高,能快速适应背景噪声的变化,但是它直接把带噪语音子带平滑功率谱最小值作为估计的噪声谱,使得噪声谱过估计。但这种算法容易将语音电平的增长当作噪声电平的增长。与此类似的算法还有基于分位数统计量的噪声估计算法,先对噪声估计窗内的信号进行排序,然后按一定的分数比例取信号作为噪声估计,算法复杂度比较高。2002年COHEN和BERDUGO提出了一种基于最小值控制递归平均法的噪声估计算法,把最小追踪法的鲁棒性与递归平均方法的简单性结合到一起,该算法能够快速地追踪突变的噪声功率谱。与最小统计相比,对最小值的跟踪不是关键性的,在进行递归平均时不需要对语音出现与缺失进行区分,因此即使在弱语音段也同样可以进行连续噪声估计更新。具有能够快速跟踪噪声谱的突变的能力。COHEN提出的噪声估计算法不直接依赖于最小统计量,而依赖于最小值的跟踪算法,具有较好的鲁棒性。虽然比起MARTIN的最小值统计跟踪算法效果要好的多,但无法完全避免在噪声上升区域的噪声欠估计及持续强语音后面区域出现的噪3声过估计的缺陷。为了进一步提高算法性能,COHEN提出了改进的最小统计量控制递归平均算法IMCRA,IMPROVEDMINIMACONTROLLEDRECURSIVEAVERAGING。2004年RANGACHARI和LOIZOU提出了一种快速估计方法,不仅使得带噪语音子带中语音出现概率计算更准确,而且噪声谱的更新在连续时间内不依赖固定时间的窗长,但是在语音或噪声能量过高时噪声的估计就会慢下来,而且如果时间大于05S时,就会削弱一些语音能量。因此,噪声估计算法有待更进一步的改进。2009年余力,陈颖琪提出了一种基于DCT变换的自适应噪声估计算法,采用DCT系数作为块均匀度的度量,较好地适应了高低噪声的情况,算法复杂度不大,能适用于各种实时图像视频处理系统。理论分析及实验结果表明本算法不仅在低噪声的图片中表现出良好的性能,而且在高噪声的图片中依旧有效。此外,还能适应不同质量的图像。通过对基于最小统计量的噪声估计方法和改进的最小统计量控制递归平均噪声估计算法研究发现这些噪声估计方法可以在语音存在段进行噪声估计,能够有效地跟踪非平稳噪声。但是,这些算法在各个频带进行噪声估计,算法复杂度高,噪声估计方差大。于是在考虑各频带间的相关性上提出了在巴克域进行噪声估计,减小了噪声估计方差,提高了噪声估计的准确性,并极大地减小算法运算量和存储量。而且,在巴克域进行噪声估计更符合人耳听觉特性,增强语音具有更好的质量。其他类似的方法还有低能量包络跟踪和基于分位数的估计方法,后者噪声的估计是基于带噪语音未平滑功率谱的分位数,而不是提取平滑功率谱的最小值,但是此方法计算复杂度很高,且需要很大的内存来存储过去的功率谱值。本文重点就是在前人研究的基础上,跟踪国内外最新资料,研究了一种新的噪声估计算法,使延迟时间能够缩短,最好没有延迟。13论文的整体安排第一章绪论。噪声估计算法研究的目的和意义及国内外研究的现状。第二章几种经典的噪声估计的算法。MARTIN的最小统计量的估计算法,COHEN和BERDUGO提出的基于最小统计量控制递归平均算法,通过比较最终提出改进的最小统计量控制递归平均算法,仿真结果表明,这种方法在非平稳噪声条件下,也具有较好的噪声跟踪能力和较小的噪声估计误差,可以有效地提高语音增强系统的性能。第三章基于语音活动性检测的噪声估计算法及MATLAB仿真。通过基于语音活动性检测的噪声估计算法,对能量和最小过零率的语音端点进行检测,仿真结果得出,我们需要鲁棒性更强的算法,即使在有语音存在的情况下,也能够实现噪声的连续估计和不断更新。第四章最小统计递归平均的噪声估计算法及MATLAB仿真。首先研究了最小值统计跟踪法通过仿真得出此算法不能快速跟踪真实噪声的变化,并研究了基于统计信息的非平稳噪声自适应算法,但它的计算很复杂。其次是COHEN和BERDUGO提出的最小值控制递归平均算法,为了进一步提高算法性能,本文提出了一种改进的最小值控制递归平均算法,此算法在保证噪声估计准确性的同时减小了算法的复杂度。第五章总结全文,并分析论文存在的不足及今后的的发展方向。在以后的4噪声估计算法的研究中要进一步完善噪声功率谱的估计算法,进一步将噪声估计方法和其他方法相结合,争取得到更加精确的噪声估计。52几种经典的噪声估计的算法21几种噪声估计算法的优点1MARTIN提出的基于最小统计量的噪声估计算法,是先用一个最优平滑滤波对带噪语音的功率谱滤波,得到一个噪声的粗略估计。然后找出粗略噪声中的在一定时间窗内的最小值,对这个最小值进行一些偏差修正,即得到所要估计的噪声的方差。而且,为了能更快的跟踪并更新局部最小值和频谱最小值,把滑动窗口分为子窗口,在每个子窗口内更新噪声的估计谱,提高了精确度。2COHEN和BERDUGO提出的基于最小统计量控制递归平均算法,该方法用一个与时频相关的平滑因子对带噪语音的过去值进行平均,以得到噪声的估计值,然后在每一帧内连续的更新噪声。采用递归平均进行噪声估计,平滑参数受语音存在概率控制,并由最小统计量控制语音存在概率。3近年来,提出了一种自适应连续噪声谱估计方法,它是一种专门用语单声道语音增强系统的噪声估计的。它不需要语音的有声/无声检测,噪声谱在所有的帧中连续的更新,并不关心本帧是语音帧还是噪声帧,对每一帧都重新计算其噪声功率谱。自适应连续的噪声估计算法,省去了对语音端点的检测,对非平稳噪声也有较好的适应性,即使在有语音存在的情况下,也能够实现噪声的连续估计和不断更新。22噪声估计算法MARTIN提出的基于最小统计量的噪声估计算法的基本思路是先用一个最优平滑滤波对带噪语音的功率谱滤波,得到一个噪声的粗略估计。然后找出粗略噪声中的在一定时间窗内的最小值,对这个最小值进行一些偏差修正,即得到所要估计的噪声的方差。这种方法是在噪声估计窗内搜索最小值作为噪声估计量,而且此算法对窗长的选择比较敏感,当窗长比较长时,对非平稳噪声的跟踪速度慢,而且容易出现噪声低估;当窗长比较短时,比较容易出现将语音的低能量成分当作噪声。这些问题可以通过优化的平滑参数和偏差补偿得以改进,虽然提高了精确度,但这大大地提高了算法的复杂度。仿真结果表明最小值统计跟踪法对平稳噪声噪声的估计是比较准确的,但是对非平稳噪声就表现的不好了。而COHEN和BERDUGO提出的最小统计量控制递归平均算法MCRA,MINIMACONTROLLEDRECURSIVEAVERAGING,采用递归平均进行噪声估计,平滑参数受语音存在概率控制,并由最小统计量控制语音存在概率。这种算法不直接依赖于最小统计量,具有较好的鲁棒性,它是使用一个平滑参数对功率谱的过去值进行平均,该平滑参数是根据每个子带中语音存在的概率进行调整的。在一给定帧6的某个子带中语音是否存在的概率可以由带噪语音的局部能量值与其待定时间窗内的最小值的比值决定,把该比值与某一门限做比较,小的比值意味着该子带中不存在语音,反之,意味着该子带内存在语音。如果给定帧的某个子带中存在语音,那么该子带内的噪声谱等于上一帧的噪声谱,如果不存在,则根据带噪语音的功率谱更新噪声谱。最后,为了防止估计的噪声起伏较大,对其进行了递归平滑。为了进一步提高算法性能,本文研究了一种改进的最小统计量控制递归平均算法。该算法采用递归平均进行噪声估计,其递归平均的平滑因子受语音存在概率控制,而语音存在概率的计算采用了两次平滑和最小统计量跟踪。与COHEN提出的IMCRA算法相比,本文采用的是一种快速有效的最小统计量跟踪算法,在IMCRA算法的基础上,利用其对语音最小统计量估计的鲁棒性,采用了一种简单有效的最小统计量估计算法,在保证噪声估计准确性的同时,减小了算法的复杂度。仿真结果表明在非平稳噪声条件下,算法具有较好的噪声跟踪能力和较小的噪声估计误差,可以有效地提高语音增强系统的性能。73基于语音活动性检测的噪声估计算法及MATLAB实现传统的噪声估计方法使用语音活动监测(VAD)技术分离出无声段,这时无声段主要表现为噪声特性,然后再通过某种统计方法,即可获得背景噪声特性的近似估计。尽管该方法在噪声为平稳的情况下是可行的,但是在实际的噪声环境中噪声谱的特性变化很大,就很难达到好的降噪效果。从实用性、易实现性等方面考虑,很多算法都是建立在相对理想的实验室条件下的,要求背景噪声保持平稳,信噪比较高,而且需要一定的训练算法以预先得到背景噪声及语音的统计信息。在实际工作中,这些条件很难得到满足,而且经常会遇到信噪比较低,背景噪声缓慢变化的情况,也不可能预先得到背景噪声或语音的统计信息。而且在低信噪比下,VAD的误检率会增大,在不能正确判断出有声/无声段的情况下,估计出来的噪声很难保证准确性。因此,为了实现精确的噪声估计,就要对噪声谱进行实时的估计。近年来,人们提出了一种自适应连续噪声谱估计方法,它是一种专门用语单声道语音增强系统的噪声估计。噪声谱在所有的帧中连续的更新,并不关心本帧是语音帧还是噪声帧,对每一帧都重新计算其噪声功率谱,它不需要语音的有声/无声检测,对非平稳噪声也有较好的适应性,即使在有语音存在的情况下,也能够实现噪声的连续估计和不断更新。本章从语音活动检测和连续更新噪声两方面入手,将几种算法的基本原理及过程进行了详细的描述,并分析了实验结果。31基于语音活动性检测的噪声估计算法311短时能量语音信号和噪声信号的区别可以体现在他们的能量上,对于一列叠加有噪声干扰的语音信号而言,其语音段的能量是噪声段能量叠加语音声波能量之和。因此,语音段的能量一般要大于噪声段的能量。如果环境噪声和系统输入噪声比较小,以至于能够保证系统的信噪比相当高,那么只要计算输入信号的短时能量或短时平均幅度就能够把语音段和噪声背景分开。这就是仅仅基于短时能量的端点检测方法。信号XT短时能量定义为?E(3????2MW???X1)语音信号的短时平均幅度定义为8M(3??????MXW2)短时能量有两种定义短时时域能量和短时谱幅能量,一般用的是短时频域能量表示,因此,短时能量用傅立叶变换后的平方表示,平均幅度为傅立叶变换后谱绝对值的和。短时能量主要有下面几个应用首先利用短时能量可以区分清音和浊音,因为浊音的能量要比清音的能量大得多;其次可以用短时能量对有声和无声段进行判断。312短时平均过零率信号XT的短时平均过零率定义为Z33????????MTHXMXWW????1SGNS21一般取HT其中N为窗长?????0,TN信号的过零率是其频率量的一种简单度量,窄带信号尤其如此。其中,当信号为单一正弦波时,过零率为信号频率的两倍。对于采样率为SF、频率为的正弦波数字信号,平均每个样本的过零率为S2F/F0。0F过零率有两个重要应用第一,用于粗略地描述信号的频谱特性。第二,用于判别清音和浊音、有声和无声。由上面定义出发,计算过零率容易受低频干扰,所以需要对上述定义做一点修改,设置一个门限T,将过零率的含义修改为跨过正负门限。如下式Z??????????????MTMXTX1SGNSGN2134?TH???这样过零率就有一定的抗干扰能力了。即使存在较小的随机噪声,只要它不使信号越过正负门限所构成的带,就不会产生虚假的过零率。313基于短时能量和短时平均过零率的语音活动性检测虽然短时能量有时能将噪声和语音分开,但是在实际应用中,往往很难保证有这么高的信噪比,因而仅依靠短时能量或短时平均幅度来检测语音段的起止点常会遇到问题。而且在一些特殊情况下,在以某些音为开始或结尾时,如当弱摩擦音(如F,H等音素)、弱爆破音(如P,T,K等音素)为开始或结尾;以鼻音(如NG,N,M等音素)为语音的结尾时,只用其中一9个参数量来判别语音的起点和终点是有困难的,往往会漏掉某些音素,必须同时使用这两个参数。所以,有了经典的端点检测方法LAWRENNCERABINER24提出的以过零率Z和能量E为特征进行端点检测。这种方法也常称为双门限比较法。此方法是在短时能量检测方法的基础上加上短时平均过零率,利用能量和过零率作为特征来进行检测。通常是利用过零率来检测清音,用短时能量来检测浊音,两者配合实现可靠的语音端点检测。该方法的基本原理25如下所述由于采集声音信号的最初的短时段为无语音段,仅有均匀分布的背景噪声信号。这样就可以用该语音信号的最初几帧(一般取10帧)信号作为背景噪声的统计样本来计算其过零率阈值ZT及能量阈值EL(低能量阈)和EU(高能量阈)。ZT的定义为(3??FZCIFZT,2,MIN??5)其中IF为经验值,一般取25;ZC、FZC分别为根据所取最初10帧样值算得的过零率的“均值”和“标准差”。计算EL和EU时,先算出最初10帧信号每帧的短时平均能量或平均幅度E,最大值记为EMAX,最小值记为EMIN。然后令36??EMINIEAXAMP????03137AP?42在本次设计中用前10帧的平均值来代替最小值EMIN最后按下式计算出EL和EU38??2,1INAMPEL?39U?5接下来就可以用过零率阈值Z及能量阈值EL和EU来进行起止点的判别。先根据EL,EU计算出初始起点S1。方法如下所述从第11帧开始,将每一帧的能量E值与门限EL相比较,如果能量E超过门限EL,则将该帧计为S1。但若后续N帧的平均能量或幅度尚未超过EU而能量又降到EL之下,则该帧不能作为初始起点S1,然后继续寻找下一个平均能量或幅度超过EU的帧,若后续N帧的平均能量或幅度超过EU,则将此帧计为S1,该帧就可以作为根据能量信号找到的语音的起点。但是,S1只是根据能量信息找到的起点,还未必是语音的精确起点。这是由于语音的起始段往往存在着能量很弱的清辅音(如F,S等),仅依靠能量很难把它们和无声区分开。但人们发现这些清辅音的过零率明显高于无声段,因此可以利用过零率这个参数来精确判断清辅音与无声区二者的分界点。当S1确定后,从S1帧之前的30帧搜索,依次比较各帧的过零率,若有3帧以上的过零率超过ZT,则将起始点S1定为满足ZZT的最前帧的帧号,如果这些帧的过零率都小于门限ZT则将S1作为起点。语音结束点S2的检测方法与检测起点相同,从后向前搜索,找出第一个平均能量幅度高于EL、且其前向帧的平均能量或幅度在超出EU前没有下降到EL以下的帧号,记为N2,随后根据过零率向10N225帧搜索,若有3帧以上的ZZT,则将结束点N2定为满足ZZT的最后的帧号即NE,否则即以N2作为结束点。314实验仿真下面是以一段语音为例,进行语音端点检测的MATLAB仿真。实验采用的纯净语音材料是HINT数据库中的一条语音(语音内容READVERSEOUTLOUDFORPLEASURE),大概21S左右;噪声材料取自NOISEX92的高斯白噪声和F16战斗机噪声。语音和噪声都是以8KHZ采样,16BIT量化,WAV格式存储,并通过MATLAB按一定线形比例混合成不同信噪比的带噪语音。图31语音的原始波形图图32语音的能量曲线图11图33语音的短时过零率曲线图由上图可以看出基于能量和短时过零率的端点检测算法在无噪声的环境下比较准确的检测到了语音的开始和结束点。为了验证其鲁棒性,利用了MATLAB给以上信号添加信噪比5DB的高斯白噪声,采用同样的算法,其仿真结果如下图所示图34加入高斯白噪声的语音波形图图35加入高斯白噪声的能量曲线图12图36加入高斯白噪声的短时过零率曲线图由以上图中可看出,在较强背景噪声的环境下,上述算法的准确性急剧下降,已经不能准确的检测出信号的端点了。因此,我们需要鲁棒性更强的算法,即使在有语音存在的情况下,也能够实现噪声的连续估计和不断更新。134最小统计递归平均的噪声估计算法及MATLAB仿真本章先研究了经典的噪声估计算法即最小值跟踪法,然后研究了基于统计信息的非平稳噪声自适应算法,最后对这两种噪声估计算法做了实验仿真。仿真结果表明最小值跟踪法对平稳噪声的估计是比较准确的,但是非平稳噪声就表现的不好了,而基于统计信息的非平稳噪声自适应算法在非平稳噪声环境中也表现的很好,能够比较准确的跟踪上噪声的突变。41最小值统计法411最优平滑设带噪语音信号为YT,它由纯净语音和噪声组成,即YTSTNT,这里T代表采样的时间标号。进一步假设ST和NT是统计独立的,并各自都是零均值的。为了将信号转化到频域,将信号分成长度为L个采样点的帧信号,帧间重叠为R点。对帧信号进行FFT计算,得到了频域的信号43?????10/2,LULKUJEHRYKY??其中为帧号即时间的标号,K为频率点的标号,Z,K﹛0,1,L1﹜,???HU是一个窗序列,并假设??102LUH先用一个平滑过程来粗估计噪声功率谱密度PΛ,K442,1,,YPK??????其中Α是平滑参数,噪声功率的进一步估计通过取PΛ,K在KN?一个滑动窗内的最小值来决定。上述估计还很粗糙,为了进一步提高估计的准确性还要考虑以下问题第一,固定的Α值将不适应有声/无声的变化与噪声的变化。第二,这样的噪声估计将比真正的噪声要滞后。第三,最小值的跟踪过程比真实的噪声要滞后。因此,对原有的噪声估计还需要一个随时间变化的平滑系数Α、一个偏差补偿系数与加速跟踪方法。为了简化计算,假设信号处于无声状态。将平滑过程写成由时变平滑系数作用的过程432,,1,,,KYKPKP????????为了使PΛ,K尽可能的接近真正的噪声功率谱密度,以下式的N?14期望值为零作为目标44???????0,1,,2???KPKKPEN???由上式得45????22,/,1,??KPNOPT?在实际运用中,最优估计式中的用上次的估计值代2N????KN,12???替,并且最优系数将被限制在一个最大值MAXΑ之间来避免ΓΛ,K1的死锁情况发生。为了提高在非稳定的噪声环境中的平滑效果,平滑系数设置一个下限为03。式子314可重新写成46????????????????22MAX1,/,1IN30AX,KKPKNOPT?????412最小功率谱统计跟踪最小功率谱统计跟踪的方法将跟踪短时谱的最小功率谱密度,这个最小功率谱是由一个连续时间段内的最小功率谱密度求出。因为随机变量的最小值总会小于平均值,所以用最小功率谱密度值的估计存在着偏差,要得到平均值就要对最小功率谱密度进行偏差修正。在推导最小功率谱统计跟踪方法时,为了简化计算,假设信号处于无语音状态,在有语音状态时只要将噪声的方差用带噪语音信号的方差代替即可。设在D个连续的短时功率谱密度估计PΛ,K中的最小值为,那么??KP,MIN?47?????????02,1,IIKYKP???假设独立同分布,所以PΛ,K的概率密度函数为??2,Y?48?????????021,1IINPKJ??????由于与\成正比,并且的方差正比于。所以???KPE,MIN?,2KN?P,MIN只要计算在1时的均值和方差就足够了。2N我们定义符号??????1,MIN1MIN2,,???KNKB?????????KPKQNEQ,VAR/,2,4??1549???????DHEQKQKDKB??????????,21,21,MIN???410MQEQEQ??,MD和HD都是关于D的系数函数,其中D取96,M960875,D96355。由于在非语音状态时取值比较大,所以可简写为??KQEQ,???KB,MIN????QDKBEQ,21,MIN????于是,噪声方差可以估计为,2N?411????????KPBKPEKEQKNN,,,,,?MINMIN1,MIN22???????其中,估计为QEQ,412??????KPKNEQ,RA?V,2???而是PΛ,K方差的估计,其估计式为????,RA?V?413??K,RA?V???22,,K?和分别是E{PΛ,K}和E{P2Λ,K}的一阶平滑估计??K,,2414??????P,1,,?????415K,2?KK22?ΒΛ,K为平滑系数,且????OPT,,??为了在非平稳噪声环境中得到更好的估计,将乘以系数,??KB,MIN???,?CB而416???1???QABVC其中??????101,LKEQQ?2V由于该算法在对有声/无声时使用同一标准来估计噪声,所以不需要有声/16无声检测。另外,噪声估计是通过最小值来搜索,然后再对其进行修正,所以算法比较简单。413实验仿真实验中采用了两种带噪语音文件,一种是信噪比为5DB的平稳带噪语音,噪声为高斯白噪声;另一种是前32S为10DB的高斯白噪声,后34S为5DB的F16战斗机噪声的非平稳语音,且实验中采用汉明窗,帧长20MS,帧间重叠50,同时取频率分量取5。图中横坐标是时间,纵坐标表示功率谱,实线表示真实的噪声谱,虚线表示估计的噪声谱。其仿真结果分别如图37,图38所示。图41真实噪声谱和MS算法估计的噪声谱5DB高斯白噪声图42真实噪声谱和MS算法估计的噪声谱信噪比从10DB突变为5DB由上图可知,当噪声和信噪比同时突变的情况下,此算法仍然不能快速跟踪真实噪声的变化。而且该算法可能会偶尔削弱低能量音素,且在15MS的窗内跟踪新的噪声谱,时间太长,但如果减小窗口的长度,跟踪到的频谱最小值不够准确,这样会导致语音信号的失真,特别是语音的持续时间超过窗口长度时。虽然此局限能够得以克服,但是代价却是很高的计算复杂度。1742基于统计信息的非平稳噪声自适应算法421概述在大多数语音增强算法中,都假定噪声功率谱的估计是已知的,这些噪声功率谱的估计或者噪声参数的估计对所增强的语音信号有着极其重要的影响。如果噪声功率谱估计太低,那么所残留的噪声干扰将会被听得到。同样,如果噪声功率谱估计太高,那么语音信号质量将会在很大程度上受到损害。最简单的方法就是在纯净语音的间隙去估计和更新噪声功率谱,例如,语音活性VAD算法,尽管这种方法在平稳噪声中如白噪声,可能表现的较好,但是在大多数的实际环境中表现的就没那么好了,因为在这样的环境中噪声是时变的。因此,在大多数噪声估计算法中,如果噪声突然变大,那么噪声估计都不能及时跟踪它的变化。在带噪语音的每一帧处,基于带噪语音的功率谱和其局部最小值的比率来判断纯净语音是否存在,结果表明在噪声水平突然增加的情况下,RANGACHARI的非平稳噪声估计算法仅仅需要05S就更新了噪声参数,而其它的算法大概需要115S。在本文中,我们介绍一种改进的算法基于统计信息的非平稳噪声自适应算法1不需要明确的语音活性检测VAD来更新噪声参数的估计。2利用帧间相关性估计纯净语音存在概率。这种算法基于语音存在概率来计算时频平滑参数,从而更新噪声参数。422非平稳噪声自适应算法设观察到的带噪语音为417????TNSTY??其中,ST是纯净语音,NT是加性噪声。先用一个递归的平滑过程来计算带噪语音的语音的功率谱418?????2,1,,KYKPK?????其中,是平滑功率谱,是帧的标号,K是频点的标号,是带噪??KP??,语音的功率谱,。70??1跟踪带噪语音最小值在以前的算法中如MARTIN的最小值跟踪法,通过一个固定的窗长去跟踪带噪语音功率谱的最小值。这些方法对于外部环境很敏感,并且依据窗长去更新最小值。下面用递归法则去跟踪最小值IFTHEN???KPP,,1MIN????????KKKP,1,,I,IN????????18ELSE??KP,,MIN??END其中,是带噪语音的局部最小功率谱,,。图4??KPMIN?80?9??3是带噪语音的功率谱和其局部最小值。噪声是由白噪声和F16战斗机噪声组合而成,,信噪比SNR5DB。FS8?0501001502002503003504004505005051015202530功功功功DB图43带噪语音的功率谱和其局部最小值图中,虚线表示带噪语音功率谱,实线表示带噪语音局部最小值,频率分量K8(2)语音存在概率这里介绍的判断语音存在概率的方法类似于2002年COHEN在噪声估计算法中使用的方法,用带噪语音功率谱和其局部最小值得比率来计算语音存在概率,用下式表示419????KPKSR,MIN/,,???计算出来的概率和经验频率值比较,如果大于判断为语音存在频率??点,否则判断为语音盲点。原因是在语音盲点时刻,带噪语音功率谱接近于其局19部最小值,因此,在312式中比率越小,处于语音间隙的可能性就越大。语音是否存在用下式判断IFTHEN??KSR???,语音存在4201?IELSE语音间隙??0,KEND其中,用下式来确定??K?421????????2/521FSKMDLK?其中,LF和MF分别对应于1K和3K的频率点,FS是采样频率。从上式的判断规则,用下式来更新语音存在概率422??????KIKPKPP,1,,???????其中,。注421式利用了相邻语音帧间相关性。20?P?2计算时频平滑参数??KS,利用上面的语音存在概率估计,用下式计算时频平滑参数??KS,??423????KPKDDS,1,???????,的取值范围是850?D???KS?S3更新噪声功率谱最后,在计算了时频平滑参数后,利用下式来更新噪声功率谱??KS?424????2,,1,,KYDKSS???????其中,是噪声功率谱的估计值,整个算法的描述过程根据式42D1判断何时是语音存在频点,何时是语音间隙频点然后根据式422来更新语音存在概率再根据式423来更新时频平滑参数最后,根据式424来更新噪声功率谱的估计。图44描绘了真实的噪声功率谱和用我们的算法所估计出来的噪声功率谱,噪声是由白噪声和F16战斗机噪声组合而成,FS8K,信噪比SNR5DB。2002040608010012014016018086420246810FRAMEFREQUENCYDB图44真实的噪声谱和估计的噪声谱图44中,虚线表示真实噪声功率,实线表示估计噪声功率,频率分量K8。可以看出在大约100帧处,噪声功率突升,估计噪声功率也即刻突升,表明算法能够即刻跟踪噪声的变化。43最小值控制递归平均算法COHEN和BERDUGO在文献5中提出了一种基于最小值约束的递归平均(MCRAMINIMACONTROLLEDRECURSIVEAVERAGING)方法。该方法使用一个平滑参数对功率谱的过去值进行平均,该平滑参数是根据每个子带中语音存在的概率进行调整的。在一给定帧的某个子带中语音是否存在的概率可以由带噪语音的局部能量值与其待定时间窗内的最小值的比值决定,把该比值与某一门限做比较,小的比值意味着该子带中不存在语音,反之,意味着该子带内存在语音。如果给定帧的某个子带中存在语音,那么该子带内的噪声谱等于上一帧的噪声谱,如果不存在,则根据带噪语音的功率谱更新噪声谱。最后,为了防止估计的噪声起伏较大,对其进行了递归平滑。MCAULAY提出语音存在和语音缺失的两态假设模型28425???????????2,,,,11KNSKYHO??21其中,1式代表语音缺失,2式代表语音存在,YΛ,K,SΛ,K和NΛ,K分别代表带噪语音、纯净语音和噪声的短时傅立叶变换后的幅度,和分别代表语音缺失和语音存在概率假设。??H,0???,1那么就可以在这两种假设模型下更新噪声谱,更新的方法是如果该子带中存在语音,噪声谱保持不变;反之则根据带噪语音的功率谱进行更新,如下式426???????????????2,11,?,?,?2KYKKDDD?????其中,1式代表语音存在,2式代表语音缺失,为平滑参数,取值为D085。为了达到上式的噪声估计,首先对输入的每一帧信号用下式进行频域平滑427???????WIFKYBKS21,,??其中,BI为加权系数,YΛ,K是第Λ帧的第K个频率点的幅度,2W1是进行频域平滑的相邻频点数。其次,用一阶递归进行时域平滑428??????KSKSKFSS,1,,???????其中,为平滑参数,本节中取08,SΛ?1,K为前一帧带噪信号的功率S?谱。431计算局部能量最小值局部能量最小值等于前一帧局部能量最小值与当前帧带噪信号功率谱中较小的一个,即9429??????KSSKS,,1MIN,IIN????同时定义一个临时变量,表示如下TMP430????KKTMPT,,I每当处理第NL帧时,更新局部能量最小值和临时变量,SIN???KSTMP,?分别为??????KKSTMP,1,I,MIN???22431??KSTMP,,??其中,L为一个包含多帧的窗口大小,决定了局部最小值搜索的范围,考虑到语音的连续性和噪声的改变,窗口大小需要限制在0515S内。432估计语音存在的概率用带噪语音功率谱和其局部最小值的比率来计算语音存在概率,如下式表示432????KSKSR,/,,MIN???计算出的概率和经验频率值Δ比较,如果大于Δ判断为语音存在频带,否则判断为语音盲点。之所以这样判断是因为在语音盲点时刻,带噪语音功率谱接近于其局部最小值,因此,在上式中比率越小,处于语音间隙的可能性就越大。语音是否存在用下式来判断IFTHEN?????KSR,语音存在1?IELSE语音不存在433??0,KEND从上式的判断规则,用下式来更新语音存在概率??KP,??434????IKPK1,?,???????其中,是平滑常量,本节中取02。Δ取值5,IΛ,K是上式中的指P?标函数。433更新噪声谱的估计获得语音存在的概率后,就可以更新噪声谱了。如下式????????????2,1,?,?1,?,,1?KYKKPKPKDDDD????????????????4352YD?其中,????KKDDD,?,?2344一种改进的最小统计量控制递归平均噪声估计算法441改进的噪声估计算法设XN和D,1分别表示干净语音信号和加性噪声信号,则带噪语音信号YNXNDN。其中,XN和DN相互独立。对带噪语音信号分帧并变换到频域可以得到YK,1XK,ZDK,Z,K为频带序号,L为帧序号。通过对带噪语音信号功率谱进行一阶递归平滑得到噪声功谱8436????????2,,1,,1,LKYLKLDDD????????其中,既七,F为受语音存在概率PK,Z控制的自适应平滑?LKD,?因子。设为语音无声段的固定平滑因子,则可以表示为850???LKD,437????LPLKDDD,1,????假定XK,L和DK,L均满 关 键 词: 噪声 估计 算法 matlab 实现 毕业设计

 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

mcra matlab,噪声估计的算法及matlab实现毕业设计相关推荐

  1. matlab dfp法,DFP算法及Matlab程序.docx

    DFP算法及Matlab程序 作业二 用DFP算法求解,取,.一.求解:求迭代点x1令,得的极小值点,所以得:于是,由DFP修正公式有下一个搜索方向为求迭代点x2令,得的极小值点于是得:,所以:,因H ...

  2. matlab hist函数_算法工匠MATLAB专训营:Matlab绘图,小试牛刀

    作者 | 蔡老师 仿真秀专栏作者 首发 | 仿真秀平台 导读:正文之前,我在此详细说明一下,因为本文包含的程序太难得,网上肯定找不到这样的程序.随着讲课的越来越深入,我给出的程序会越来越实用,接近于实 ...

  3. ukf实测信号的预测 matlab,ukf(无迹卡尔曼滤波)算法的matlab程序.

     ukf(无迹卡尔曼滤波)算法的matlab程序. function [x,P]=ukf(fstate,x,P,hmeas,z,Q,R) % UKF   Unscented Kalman Filt ...

  4. 图像降噪算法matlab,数字图像去噪典型算法及matlab实现

    I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);% ...

  5. 神经网络算法二matlab实现,模糊神经网络算法之MATLAB实现.doc

    模糊神经网络算法之MATLAB实现.doc 用户名 密码 提 交登录 注册 矿业人生的空间主页博客相册|个人档案 |好友 |i 贴吧 查看文章 [转] 模糊神经网络算法之 MATLAB 实现2011- ...

  6. pso算法matlab程序,基本PSO算法的matlab源程序

    <基本PSO算法的matlab源程序>由会员分享,可在线阅读,更多相关<基本PSO算法的matlab源程序(2页珍藏版)>请在人人文库网上搜索. 1.主函数源程序( main. ...

  7. matlab dfp法,DFP算法及Matlab程序(最新整理)

    <DFP算法及Matlab程序(最新整理)>由会员分享,可在线阅读,更多相关<DFP算法及Matlab程序(最新整理)(7页珍藏版)>请在人人文库网上搜索. 1.作 业 二用 ...

  8. matlab dfp法,DFP算法及Matlab程序Word版

    <DFP算法及Matlab程序Word版>由会员分享,可在线阅读,更多相关<DFP算法及Matlab程序Word版(6页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版 ...

  9. matlab粒子群优化算法工具箱,MATLAB粒子群优化算法(PSO)

    MATLAB粒子群优化算法(PSO) 一.介绍 粒子群优化算法(Particle Swarm Optimization Algorithm)是一种群智能算法,为了寻求全局最优.群体迭代,粒子在解空间追 ...

最新文章

  1. ng-cordova和cordova区别
  2. Unity3D Adam Demo的学习与研究
  3. 3D模型在网页上显示
  4. 08-spring整合 junit
  5. IDEA配置git环境
  6. 给自己走过的路留下一些痕迹
  7. 每个tabpage中都有一个dategridview_其实每个人都是一个孩子,仅此而已
  8. 容器化单页面应用中RESTful API的访问
  9. 前端学习(3175):react-hello-react之解决跨域问题
  10. khoury计算机科学学院,2021年美国东北大学计算机研究生专业有哪些?入学要求高吗?...
  11. 探讨PHP 静态变量 静态方法 初始化类的问题 哪种写法合格
  12. 全局光照模型与Rendering Equation(全局光照的最为基础的核心理论) .
  13. 【数据结构】树状数组效果讲解
  14. 信息发展树标杆 智慧城市筑屏障
  15. mit的java教材_关于学习MIT6.828操作系统课程lab1记录
  16. python迭代法求极值_4计算函数零点和极值点的迭代法
  17. 查询数据表中重复数据及重复次数
  18. 百度竞价该如何选择关键词?
  19. Pytorch显存分配机制与显存占用分析方法
  20. 《虎胆龙威4_终极警探4》

热门文章

  1. Linux修改文件出现[O]pen Read-Only、(E)dit anyway、(R)ecover解决方法
  2. Tableau 超市经典案例之配送分析(一)
  3. 性能测试环境如何搭建?我来告诉你
  4. 小白学C++ L11 数组和字符数组及string 类型
  5. Crapapi管理平台的搭建
  6. 【Qt】使用Qss设置QPushButton图标和显示文本的位置
  7. 翼码张波O2O分享8:O2O的消费体验
  8. 为什么有些 985 的本科学生即使在大学里混得很水,在找工作时学历却那么管用?...
  9. 三个办公室随机分配8位老师,且每个办公室不能少于2个老师
  10. C++实现 单词首字母大写