首页 > 代码库 > 啸叫抑制(howling suppression)
啸叫抑制(howling suppression)
作者:桂。
时间:2017-05-16
链接:http://www.cnblogs.com/xingshansi/p/6862683.html
前言
下午看到群里讨论有人提到这个问题,记录一下。
一、啸叫 定义
在平时跟别人用电脑语音聊天,声音传给你-再传给对方-再传给你,循环往复且不消失,这个就是啸叫了。专业一些的说法就是:
在声学场景中,当形成声反馈闭合回路时容易出现啸叫现象,如图:
其原因是:话筒采集的声音信号包含了经过扬声器放大的声音信号,该信号在声反馈回路中不断叠加放大,正反馈产生震荡,产生啸叫。
二、啸叫 产生原理
啸叫形成原理图:
其中,是近端语音信号,是扬声器聩给信号,是传声器采集信号,是经过传递函数作用产生的反馈信号。是放音系统传递函数,主要是A/D、D/A产生的时延,K是扬声器增益。
根据上面的框图可以建立方程:
进一步得出整个系统的响应函数:
这里用到信号处理的一个基本特性:
如何产生自激振荡呢?可见需要满足相位、幅值两方面的条件。
相位:
=0的极值点落在虚轴,且共轭对称,从而有:其实就是同向位。
幅值:
整个反馈的幅值需要将信号放大:C(w)→K→G(w) 增益:|C(w)G(w)K|有:
三、啸叫 常用抑制方法
啸叫噪声往往比较尖锐刺耳:
因此希望通过一定的方式进行治疗,常用方法有:
- 移频移相法
相位就是频率,频率就是相位,该方法可以破坏相位特性,有一定失真。
- 陷波抑制法
就是通过窄带滤波器/自适应滤波器进行特定频率的滤波,前提是找到这个频率,这就需要先进行啸叫检测:
检测原则可以通过峰值/均值比等参数准则得出。检测出成分之后,利用陷波滤波器:
- 自适应反馈抵消法
因为扬声器的信号是已知的,这就是一个先验知识(也就是desired signal),从而可以利用adaptive filter,该类方法复杂度高:
参考:
- 周璐:《响自适应反馈啸叫抑制算法性能的声学因素分析》
啸叫抑制(howling suppression)