zoukankan      html  css  js  c++  java
  • 啸叫抑制(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,该类方法复杂度高:

    参考:

    • 周璐:《响自适应反馈啸叫抑制算法性能的声学因素分析》
  • 相关阅读:
    Noe4j启动警告
    SpringBoot
    MySQL数据库 java SQL语句区分大小写分析
    day24 模块的语法
    day23 re模块
    day22 常用模块02 序列化
    day21 常用模块01
    day20 面向对象06 MRO和C3算法
    day19 面向对象05 约束
    day18 面向对象04 反射
  • 原文地址:https://www.cnblogs.com/xingshansi/p/6862683.html
Copyright © 2011-2022 走看看