回声消除-理论篇

一、前言

要了解回声消除技术,就不得不提及作为现代通讯技术的理论基础——数字信号处理理论。首先,数字信号处理理论中有一门重要的分支,叫做自适应信号处理,而经典的教材里,回声消除问题从来都是作为一个经典的自适应信号处理案例来讨论的。既然回声消除在教科书上都是作为一种经典具体的应用,那么从理论角度也就没有什么神秘感的了。但是,为什么提供回声消除技术(不管是芯片还是算法)的公司都是来自国外,回声消除技术的难点和神秘性又在哪里呢?

二、回声消除原理
从通讯回音产生的原因看,可分为声学回音(Acoustic Echo)和线路回音(Line Echo),相应的回声消除技术就叫声学回声消除(Acoustic Echo Cancellation,AEC)和线路回声消除(Line Echo Cancellation, LEC)。声学回音是由于在免提或会议应用中,扬声器的声音被多次反馈到麦克风而引起的;线路回音是由于物理电子线路的二四线匹配耦合而引起的。

回音的产生主要有两种原因:

1.  由于空间声学反射产生的声学回音(见下图):

图中男子的语音信号(speech1)传到女士所在的房间,由于空间的反射,形成回音speech1(Echo)重新从麦克风录入,同时叠加女士的语音信号(speech2),该混合了的语音信号传递到男子房间进行播放时,此时男子将会听到女士的声音和叠加了的自己声音,影响了正常的通话质量。如果在女士的房间中应用回音抵消模块,将可以抵消掉男子回音speech1(Echo),防止叠加在女士语音信号上回传。

2.  由2-4线转换引入的线路回音(见下图):

在ADSL Modem和交换机上都存在2-4线转换的电路,由于电路存在不匹配的问题,会有一部分的信号被反馈回来,形成了回音。如果在交换机侧不加回音抵消功能,电话中对方就会听到自己的声音。

不管产生的原因如何,对语音通讯终端或是语音中继交换机需要做的事情都一样:在发送时,把不需要的回音从语音流中间去掉。

试想一下,对一个至少混合了两个声音的语音流,要把它们分开,然后去掉其中一个,难度何其之大。就像一瓶蓝墨水和一瓶红墨水倒在一起,然后需要把红墨水提取出来,这恐怕不可能了。所以回声消除被认为是神秘和难以理解的技术也就不奇怪了。诚然,如果仅仅单独拿来一段混合了回音的语音信号,要去掉回音也是不可能的(就算是最先进的盲信号分离技术也做不到),但实际上,除了这个混合信号,我们还可以得到产生回音的原始信号,虽然不同于回音信号。

我们看下面的AEC声学回声消除框图(见下图):

其中,我们可以得到两个信号:一个是蓝色和红色混合的信号1,也就是实际需要发送的speech和实际不需要发送的echo回音语音流; 另一个就是虚线的信号2,也就是原始的引起回音的语音流。

那大家会说,哦,原来回声消除这么简单,直接从混合信号1里面把这个虚线2减掉不就行了?请注意,拿到的这个虚线信号2和回音echo是有差异的,直接相减会使语音面目全非。我们把混合信号1叫做近端信号ne,虚线信号2叫做远端参考信号fe,如果没有fe这个信号,回声消除就是不可能完成的任务。虽然参考信号fe和echo不完全一样,存在差异,但二者是高度相关的,这也是echo称之为回音的原因。

既然fe和echo高度相关,echo又是fe引起的,我们可以把echo表示为fe的数学函数:

echo=F(fe)。

函数F被称之为回音路径。

在声学回声消除里面,函数F表示声音在墙壁,天花板等表面多次反射的物理过程;
在线路回声消除里面,函数F表示电子线路的二四线匹配耦合过程。
很显然,我们下面要做的工作就是求解函数F。得到函数F就可以从fe计算得到echo,然后从混合信号1里面减掉echo就实现了回声消除。

尽管回声消除是非常复杂的技术,但我们可以简单的描述这种处理方法:
  1、房间A的音频会议系统接收到房间B中的声音
  2、声音被采样,这一采样被称为回声消除参考
  3、随后声音被送到房间A的音箱和声学回声消除器中
  4、房间B的声音和房间A的声音一起被房间A的话筒拾取
  5、声音被送到声学回声消除器中,与原始的采样进行比较,移除房间B的声音
求解回音路径函数F的过程恐怕就是比较难以表达的数学公式了。鉴于通俗表达数学公式的难度比发现数学公式还难,笔者就不费力解释了。下面这段表达了利用自适应滤波器原理求解函数F的过程。

自适应滤波器
自适应滤波器是以输入和输出信号的统计特性的估计为依据,采取特定算法自动地调整滤波器系数,使其达到最佳滤波特性的一种算法或装置。自适应滤波器可以是连续域的或是离散域的。离散域自适应滤波器由一组抽头延迟线、可变加权系数和自动调整系数的机构组成。附图表示一个离散域自适应滤波器用于模拟未知离散系统的信号流图。自适应滤波器对输入信号序列x(n)的每一个样值,按特定的算法,更新、调整加权系数,使输出信号序列y(n)与期望输出信号序列d(n)相比较的均方误差为最小,即输出信号序列y(n)逼近期望信号序列d(n)。以最小均方误差为准则设计的自适应滤波器的系数可以由维纳-霍甫夫方程解得。

B.维德罗提出的一种方法,能实时求解自适应滤波器系数,其结果接近维纳-霍甫夫方程近似解。这种算法称为最小均方算法或简称 LMS法,其利用最陡下降法,由均方误差的梯度估计从现时刻滤波器系数向量迭代计算下一个时刻的系数向量

式中ks为一负数,它的取值决定算法的收敛性, V【ε2(n)】为均方误差梯度估计,

自适应滤波器应用于通信领域的自动均衡、回声消除、天线阵波束形成,以及其他有关领域信号处理的参数识别、噪声消除、谱估计等方面。对于不同的应用,只是所加输入信号和期望信号不同,基本原理则是相同的。

上面这段话表明,需要求解的回音路径函数F就是一个自适应滤波器W(n)收敛的过程。所加输入信号x(n)是fe,期望信号是echo,自适应滤波器收敛后的W(n)就是回音路径函数F。 收敛之后,当实际回音发生,我们把fe通过函数W(n),就可以得到一个很准确的echo,把混合信号直接减去echo,得到实际需要发送的语音speech,完成回声消除任务。

值得注意的两点:

1、     自适应滤波器收敛阶段,期望信号是完全的echo,不能混杂有speech。因为speech和fe是没有关系的,会扰乱W(n)的收敛过程。也就是说要求回声消除算法开始运转后收敛要非常快,最好对方还来不及说话,你一说就收敛好了;收敛好之后,如果对方开始说话,也就是有speech混合过来,这个W(n)系数就不要变化了,需要稳定下来。

2、  回音路径可能是变化的,一旦出现变化,回声消除算法要能判断出来,因为自适应滤波器学习要重新开始,也就是W(n)需要一个新的收敛过程,以逼近新的回音路径函数F。

基本上来说,上面这两点是矛盾的,一个需要自适应滤波器收敛后保持系数稳定,以保证不受speech说话干扰,另一个需要自适应滤波器随时保持更新状态,以保证能够追踪变化的回音路径。

这样一来,仅从数学算法层面,回声消除已经是难上加难!
简单地说,回声消除自适应滤波器的设计具有两个互相矛盾的特性,也就是快速收敛和高度的稳定性,如何同时实现这两项特性,正是设计上的主要挑战。

经过上面的分析,相信大家对回声消除的原理和技术有了深刻的理解,这是一门即容易理解又难以实现的技术。

原文链接: http://silversand.blog.51cto.com/820613/166095

时间: 2024-10-21 17:43:39

回声消除-理论篇的相关文章

LMS、NLMS最优步长理论分析与Speex回声消除可能的改进想法

一.回声消除算法模型 先来分析下自适应回声消除的主要组成部分,大体上可以把回声消除模型分为两个部分 横向滤波器结构 滤波器系数自适应与步长控制 横向滤波器用脉冲响应w(n)[有的地方也称为回声路径]与远端说话者信号u(n)卷积得到回声估计,并用y(n)表示该估计.麦克风输出信号做为期望响应d(n),从期望响应d(n)中减去滤波器的”合成回声”,得到误差信号e(n).通过不断的调整滤波器系数w(n)使误差信号的均方值最小化,其结果就是:误差信号为本地语音提供了一个近似的估计.这就是为什么这样的结构

回声消除技术(2)

从应用平台来看,可以把回声消除分为两大类: (1). 基于DSP等实时平台的回声消除技术 (2). 基于Windows等非实时平台的回声消除技术 两者的技术难度和重点是不一样的. 三.基于DSP平台的回声消除技术 回声消除技术传统的应用领域是各种嵌入式设备,包括各种电信网络设备和终端设备.比如交换机,网关等网络设备; 移动电话,视频会议等终端.现代通讯产品里面大量应用了回声消除技术,包括在我们看得到的(比如手机)和看不到的终端产品(比如交换机).这些嵌入式设备的共同点就是各自采用了适配型号的DS

Speex回声消除原理深度解析

这里假设读者具有自适应滤波器的基础知识.Speex的AEC是以NLMS为基础,用MDF频域实现,最终推导出最优步长估计:残余回声与误差之比.最优步长等于残余回声方差与误差信号方差之比,这个结论可以记下,下面会用到的. 对于长度为N的NLMS滤波器,误差信号定义为期望信号与估计信号之差,表示如下: \[e(n) = d(n) - \hat y(n) = d(n) - \sum\limits_{k = 0}^{N - 1} {{{\hat w}_k}(n)x(n - k)} \] 则,滤波器的系数更

解密回声消除技术--转

一.前言 因为工作的关系,笔者从2004年开始接触回声消除(Echo Cancellation)技术,而后一直在某大型通讯企业从事与回声消除技术相关的工作,对回声消除这个看似神秘.高端和难以理解的技术领域可谓知之甚详. 要了解回声消除技术的来龙去脉,不得不提及作为现代通讯技术的理论基础——数字信号处理理论.首先,数字信号处理理论里面有一门重要的分支,叫做自适应信号处理.而在经典的教材里面,回声消除问题从来都是作为一个经典的自适应信号处理案例来讨论的.既然回声消除在教科书上都作为一种经典的具体的应

回声消除技术解析——转

一.前言 因为工作的关系,笔者从2004年开始接触回声消除(Echo Cancellation)技术,而后一直在某大型通讯企业从事与回声消除技术相关的工作,对回声消除这个看似神秘.高端和难以理解的技术领域可谓知之甚详. 要了解回声消除技术的来龙去脉,不得不提及作为现代通讯技术的理论基础——数字信号处理理论.首先,数字信号处理理论里面有一门重要的分支,叫做自适应信号处理.而在经典的教材里面,回声消除问题从来都是作为一个经典的自适应信号处理案例来讨论的.既然回声消除在教科书上都作为一种经典的具体的应

《JVM调优实战-理论篇》

1 理论篇1.1 多功能养鱼塘-JVM内存大鱼塘O(可分配内存): JVM可以调度使用的总的内存数,这个数量受操作系统进程寻址范围.系统虚拟内存总数.系统物理内存总数.其他系统运行所占用的内存资源等因素的制约.小池塘A(堆内存):JVM运行时数据区域,它为类实例和数组分配的内存.堆可以是固定大小的也可以是可变大小的.其中 Heap = {Old + NEW = { Eden , from, to } }.小池塘B(非堆内存):包括所有线程之间共享的一个方法区域和JVM为优化或内部处理所分配的内存

回声消除中的自适应算法发展历程

传统的IIR和FIR滤波器在处理输入信号的过程中滤波器的参数固定,当环境发生变化时,滤波器无法实现原先设定的目标.自适应滤波器能够根据自身的状态和环境变化调整滤波器的权重. 自适应滤波器理论 $x(n)$是输入信号,$y(n)$是输出信号,$d(n)$是期望信号或参考信号,$e(n)=d(n)-y(n)$为误差信号.根据自适应算法和误差信号$e(n)$调整滤波器系数. 自适应滤波器类型.可以分为两大类:非线性自适应滤波器.线性自适应滤波器.非线性自适应滤波器包括基于神经网络的自适应滤波器及Vol

【SSH2(理论篇)】--Struts2配置详解

上篇博客讨论了SSH2框架模型,在开发过程中发现SSH2的开发模型其实类似于经典的三层模式,在每一层中分别添加了不同的框架,显示层使用的是Struts2进行配置的,业务逻辑层使用的是Spring配置,数据持久层则采用的是Hibernate,开发模式简单易懂,接下来将会分别从三层着手讨论每一层的运行内容. 一.Struts体系简介 struts,是Apache软件基金会(ASF)赞助的一个开源项目,它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-V

【机器学习】Logistic Regression 的前世今生(理论篇)

Logistic Regression 的前世今生(理论篇) 本博客仅为作者记录笔记之用,不免有非常多细节不正确之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请附上本文链接,不甚感激! http://blog.csdn.net/cyh_24/article/details/50359055 写这篇博客的动力是源于看到了以下这篇微博: 我在看到这篇微博的时候大为触动,由于,如果是rickjin来面试我.我想我会死的非常慘,由于他问的问题我基本都回答不上来.