音频噪声抑制(3):维纳(Wiener)滤波器篇之有辅助观测数据

来源:互联网 发布:mac邮件图片显示问号 编辑:程序博客网 时间:2024/06/02 20:05

前面的文章讲了,维纳滤波器的设计和用维纳滤波器来抑制噪声。

Review:维纳滤波器的设计

Review:噪声抑制之维纳(Wiener)滤波器篇

当时的噪声抑制,有两个阶段。滤波器系数的求解阶段,和后面的噪声抑制阶段。

可能这样能有一丢丢效果,但好像并不是很理想。


对音频信号噪声抑制的提升一种手段就是,多花点钱,用两个麦克风。一个录语音(含噪v2),另一个录噪声(v1)。v2和v1可能不同,但两者之间却存在一定的关系。

据说,飞机上就是这样的设计。

坐过飞机的人应该都有这样的体会,飞机那个引擎声,真的是震耳欲聋的。尤其是助跑加速起飞前的那一瞬间!

这么大的噪声,这么恶劣的环境,这么低的信噪比,如果塔台和飞行员要通话,不进行噪声抑制,根本没法正常通信啊!

不可能用44100kHz采样、24bit量化、双声道传输吧…

一开始,麦克风接收飞行员的声音在量化的时候已经有量化噪声了。

再加上这么大的引擎噪声。必须去噪啊!


所以,有些天才就这么设计语音系统了。

基本思想大概是这样。

假设飞行员说话的信号时x(t),发动机的噪声时v1(t),v1(t)传到麦克风这里,由于经过了某个信道,变成了v2(t),

叠加到纯净的语音信号x(t)上,麦克风收到的就是y(t) = x(t) + v2(t)了。

所以,如果能在发动机附近也装一个麦克风,去收集来自发动机的噪声v1(t),再通过一些技术手段,利用v1(t)估计出v2(t),

再用y(t) - v2(t)的估计,就应该能得到比较纯净的语音信号x(t)了吧。


这就是,有数据辅助的维纳噪声抑制。

下面是我上学期一门课的一次作业,讲的就是这个案例。







可以看出了,在一定范围内,滤波器阶数取得越高,似乎噪声抑制得越好。

但是,滤波器阶数太高了,似乎噪声抑制的效果反而变差了!

这是为什么呢?在课堂上,我们的讨论结果是,可能因为取的x的样本点数目有限,阶数太高,自相关函数估计就不准了…

滤波后的结果如下。






如果辅助观测信号也泄露了一些“所期望”的信号以后,效果也会变差的。

最后,这种噪声抑制效果的提升,还是付出了很大的代价的。至少有两点,

第一,要多买一个麦克风。

第二,还要有机会能采集到“基本干净”的噪声。



0 0