噪语音幅度谱,错误!未找到引用源。是估计的噪声幅度谱。当错误!未找到引用源。,改善的算法通过消除那些宽波峰,去除所有的宽频带噪声。然后,提高频谱下限?Pn?w?,使得波峰与波峰间的波谷不会那么深。两者结合,使噪声波峰间的频谱偏移不再那么大,从而减少了音乐噪声。
第四章 维纳滤波法原理及其算法实现过程
本章我们深入研究了传统的维纳滤波算法,发现传统的维纳滤波算法虽然具有一定的语音增强效果,但是其滤波效果还不够理想。文章结合先验概率理论对算法进行了改进,并将实验结果与传统的维纳滤波语音增强算法进行比较,实验结果表明,改进后的语音增强算法的去噪效果要比传统的维纳滤波算法优越。
4.1 概述
维纳滤波器是以最小均方误差准则设计的数字滤波器,其输入端是带噪语音信号,输出端则是对带噪语音信号中所含纯净语音信号的估计。因此维纳滤波器又被称作是一个最佳滤波器。
在信号处理中,维纳滤波器对所处理的信号有比较苛刻的要求,信号必须满足平稳性,维纳滤波器是在平稳条件最小均方误差意义下的最优估计。但是通常情况下语音信号并不满足平稳性,实际环境中的噪声也是非平稳的。而且维纳滤波模型也没有完全利用语音生成模型来抑制噪声。
维纳滤波法是通过估计噪声和带噪语音信号的功率谱,构造维纳滤波器的传递函数,然后从带噪语音功率谱中计算纯净语音信号的功率谱,然后再利用带噪语音频谱的相位,经过傅里叶反变换来恢复增强后的语音信号。维纳滤波算法通常采用最小均方误差(LMS)准则来迭代估计其传递函数。这种方法的关键是如何得到语音信号中的噪声。目前较常用的方法是用帧间无语音段噪声来估计带噪声语音段的噪声,这样处理虽然能够简化算法的复杂度,但是会影响维纳滤波效果。
4.2 维纳滤波基本思想
设有一个线性系统,它的单位脉冲响应是h(n),当输入一个观测得到的随机信号,简称观测值x(n),且该信号包含噪声信号w(n)和语音信号s(n),其信号的模型如式(4-1)所示:
x?n??s?n??w?n? (4-1) 那么输出为y(n)为:
y?n??x?n??h?n??
m????h?m?x?n?m??? (4-2)
我们希望输出得到的y(n)与有用信号s(n)尽量接近,因此称y(n)为 s(n)的估计值,用s?(n)来表示,我们就有了维纳滤波器的系统框图,如图2-1。这个系统的单位脉冲响应也称为对于s(n)的一种估计器。
x(n) = s(n) + w(n)
h(n) y(n) = s?(n) 图4-1 维纳滤波器的原理框图
如果该系统是因果系统,式(2-2)的m=0,1,2,?n,则输出的y(n)可以看成是当前时刻的观测值和过去时刻的观测值x(n-1)、x(n-2)、x(n-3)?的估计值。从图4-1 的系统框图中估计到的信号s?n?和我们期望得到的有用信号s(n)不可能完全相同,这里用e(n)来表示真值和估计值之间的误差
e?n??s?n??s?n? (4-3)
显然e(n)是随机变量,维纳滤波的误差准则就是最小均方误差准则
?2????Ee2?n??E??s?n??s?? (4-4)
??????????维纳滤波法是根据全部过去观测值和当前观测值来估计信号的当前值,因此它的解析形式是系统的传递函数H(z)或单位脉冲响应h(n)。
可见设计维纳滤波器就是寻求在最小均方误差下滤波器的单位脉冲响应 h(n)或传递函数H(z)的表达式,其实质就是解维纳-霍夫(Wiener-Hopf)方程。求解维纳-霍夫(Wiener-Hopf)方程可得:
RSS?j???hopt?m??RSS?j?m??Rww?j?m??,j?1,2,?,n (4-5)
m?0N?1Ee?n?min?RSS?0???hopt?m?Rss?m? (4-6)
2m?0??N?1其中Rss 表示有用信号s 的自相关函数, Rww表示噪声信号w 的自相关函数,N 表示滤波器的阶数。然后可以根据式(4-5)跟(4-6)及所要求的均方误差精度来计算维纳滤波器的单位脉冲响应h(n)。
由式(4-5)跟(4-6)不难看出维纳滤波器的精度与收敛快慢都与维纳滤波器的阶数有直接的关系,要想降低均方误差,即要想使输出的信号与目标信号更加接近,就需要增加维纳滤波器的阶数。然而,当增加滤波器的阶数时,又会增加计算量,从而降低了滤波器的收敛速度,也就导致滤波效率的下降。
维纳滤波在时域的解是平稳条件下时域波形在最小均方误差准则下的估计。由于没只考虑到语音频谱分量的幅度对人的听觉最重要,没有考虑到相位对人听觉的影响,因此采用维纳滤波来增强语音存在一定的缺陷。
4.3 维纳滤波增强算法
利用维纳滤波器对信号进行最小均方误差条件下的最优估计时,信号必须满足平稳性条件。语音信号不满足平稳性条件,只在30ms 内近似平稳。因此在进行维纳滤波前,必须对语音信号进行短时处理,例如加短时窗,使语音信号帧长不超过30ms。
设离散带噪语音信号序列模型为:
x?n??s?n??w?n? (4-7)
其中x,s,w 分别表示带噪语音信号,纯净语音信号,加性噪声信号,s 与w 统计独立。且设x 已经过加窗处理,为短时平稳的带噪语音信号。那么非因果维纳滤波器的频率响应函数为:
H????PS??? (4-8)PS?Pw???其中PS???,Pw???PS??? 分别表示信号s, n 的功率谱。 广义的维纳滤波器:
?PS????H?????? (4-9)
??P?P?w?S??此时的维纳滤波器称为带参数的维纳滤波器,其中α 和β 是参数。当α 和β 的值变化的时候,滤波器具有不同的性质。由于语音信号的不平稳性,信号的功率谱无法直接计算,所以广义的维纳滤波器也常表达为:
2?ES???H?????22?????ES???EW?????????????
(4-10)
4.4 仿真结果
下面是对一帧信号的仿真结果:
原始语音0.50-0.500.51带噪语音1.522.5x 1040.50-0.500.51增强语音50-51.522.5x 10400.511.522.5x 104
原始语音1Frequency0.500200040006000Time带噪语音800010000Frequency10.500200040006000Time增强语音800010000120001Frequency0.500200040006000Time80001000012000