谱减算法利用了加性噪声的特点,在偏向于经验和直观意义上对语音做出增强处理。这种处理方式虽然简单、方便易懂,在数学上却显的不够严格。很难向大家证明它是某种最优的。下面我们关注下维纳滤波算法,它基于数学上易于处理的最优均方误差准则来得到增强的语音信号
维纳滤波算法假设滤波过程为线性的,就是把处理过程视为一个线性时不变系统,输入信号通过系统后,得到一个输出信号。那么,我们就可以设计这样一个系统,使得输出信号尽可能逼近我们所期望的信号,达到某种准则下最优,这个最优的准则,就是通过最小化系统输出信号与期望信号的误差,即最优均方误差。最优滤波器(传递函数)可以在时域进行计算,也可以在频域计算。
我们假设输入信号和期望信号是联合广义随机过程。其误差:e(n)=d(n)-y(n)。这里d(n)为期望信号,y(n)为我们设计的线性时不变系统的输出信号,然后对误差的平方求期望运算,可得到一个关于线性时不变系统传递函数的二次函数,因此,系统必有一个最值。再对这个二次函数关于传递函数求导,并置导数为0,可得到其达到最小值的充分条件为:估计误差e(n)需要正交于输入信号。这就是著名的最优线性滤波的正交原理。
最终,可以推出,我们需要的维纳滤波器系数为:输入信号的自相关矩阵乘上输入信号跟噪声的互相关矩阵就要以得到。其中,输入信号的自相关矩阵为对称阵且为Toeplitz矩阵。关于Toeplitz运算的一些算法请参考数字信号处理中的线性预测和最优线性预测滤波器部分。