啸叫的信号处理解释
啸叫是日常生活中经常遇到的现象。比如在上课的时候,老师胸前挂着话筒讲课,时不时可能就会出现一下啸叫。再比如开会的时候,主席台上某个人正在讲话,冷不丁可能出现一声啸叫。啸叫不能说有多大的危害,但大家一般情况下不喜欢啸叫应该是没有疑问的。粉丝追星时的啸叫则是另外一回事。
从声学的角度看,话筒拾音的音响系统,都有反馈啸叫的可能。这个是否能从信号处理的角度来解释呢?
话筒拾音的音响系统,实际上可以等效为一个简单的FIR滤波器。考虑最简单的情况:
y(n)=x(n)+h*x(n-tao)
其中y(n)表示驱动音箱的输出,当然实际中要变成模拟信号。x(n)表示话筒输入的语音,当然是对原始模拟信号采样之后得到的。tao表示音箱发出的声音到话筒之间的延时,h表示声音从音箱到话筒之间的衰减。这样,上面这个式子表示的物理意义就非常清楚了。音箱的输出等于当前的输入加上前一个时刻声音的影响。更严格地说,这里应该还有一个放大的环节,但对我们的解释没有太大的影响。
即便不告诉上面这个式子是对语音拾音系统的建模,只要稍有一点信号处理基础的人一眼就能想到这是一个简单的FIR滤波器。从滤波器的角度就可以很好的理解,改变h或者tao,都会对系统的频率响应产生影响。啸叫则源于系统对某个频率的增益太大。这个式子就将我们熟悉的信号处理知识与啸叫这个物理现象联系起来了。当然,这只是最简单的假设,实际上,不仅是前一个时刻的声音会反馈到话筒,更前面的声音也可能会反馈到话筒,只是延时和衰减不同。当然,这对用FIR滤波器来理解啸叫影响不大。
从FIR系统响应的角度,就非常好理解消除啸叫的一些措施。比如说,我们经常发现,老师讲课时啸叫的话,走几步调整一下话筒与音箱之间的距离,啸叫就可能没了。这是因为改变了h及tao,系统的频率响应有所改变,在刚才引起啸叫的频率上可能增益降低了。再比如说,常用的消除啸叫的宽带陷波法和窄带陷波法等等方法,更是明显地与滤波器有关。