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

一、回声消除算法模型

  先来分析下自适应回声消除的主要组成部分,大体上可以把回声消除模型分为两个部分

  1. 横向滤波器结构
  2. 滤波器系数自适应与步长控制

  横向滤波器用脉冲响应w(n)【有的地方也称为回声路径】与远端说话者信号u(n)卷积得到回声估计,并用y(n)表示该估计。麦克风输出信号做为期望响应d(n),从期望响应d(n)中减去滤波器的”合成回声”,得到误差信号e(n)。通过不断的调整滤波器系数w(n)使误差信号的均方值最小化,其结果就是:误差信号为本地语音提供了一个近似的估计。这就是为什么这样的结构能去掉回声的原因。

 二、LMS算法最优步长分析

  下面我们重点说一下LMS滤波器系数自适应更新中的步长控制问题,也就是如何获得最优步长的问题。我们首先把期望响应用向量的形式表示如下:

\[d(n) = {w^H}u(n) + v(n)\]

  上式中,w是横向滤波器的未知参数向量,v(n)中加性干扰噪声。通过LMS滤波器计算得到的抽头权向量是对w的估计,它们之间的失配用加权误差向量

\[\varepsilon (n + 1) = w - \hat w(n)\]

来衡量,由横向滤波器系数的的自适应更新机制

\[\hat w(n + 1) = \hat w(n) + \mu u(n)e(n)\]

  可得

\[\varepsilon (n + 1) = \varepsilon (n) - \mu u(n)e(n)\]
  如果我们对抽头权向量n次迭代到n+1次迭代的抽头权向量的增量变化最小为准则来选择最优步长,即使

\[E\{ |\varepsilon (n + 1){|^2}\}  - E\{ |\varepsilon (n){|^2}\} \]

达到最小,为求最优步长,将其展开,得到

\[E\{ |\varepsilon (n + 1){|^2}\}  - E\{ |\varepsilon (n){|^2}\}  =  {\mu ^2}E\{ {e^2}(n)|u(n){|^2}\}  - 2\mu E\{ e(n){\varepsilon ^T}(n)u(n)\} \]

  设额外误差向量(有的地方也称为无干扰误差,即假设没有噪声情况下的系数输出误差)与滤波器权值误差向量之间的关系为

\[\xi (n) = {\varepsilon ^T}(n)u(n)\]

  则

\[E\{ |\varepsilon (n + 1){|^2}\}  - E\{ |\varepsilon (n){|^2}\}  =  {\mu ^2}E\{ {e^2}(n)|u(n){|^2}\}  - 2\mu E\{ e(n)\xi (n)\} \]

  对上式两边求导,并置导数为0,很容易就可以得到最优步长为

\[{\mu _{opt}}(n) = \frac{{E\{ e(n)\xi (n)\} }}{{E\{ {e^2}(n)|u(n){|^2}\} }}\]

  又因为额外误差可以视为系统输出误差与加性干扰噪声之差

\[\xi (n) = e(n) - v(n)\]

  再假设加性干扰噪声信号与额外误差信号相关独立,则最优步长可以写为

\[{\mu _{opt}}(n) \approx \frac{{E\{ e(n)\xi (n)\} }}{{|u(n){|^2}E\{ {e^2}(n)\} }} = \frac{{E\{ {e^2}(n)\}  - E\{ {v^2}(n)\} }}{{|u(n){|^2}E\{ {e^2}(n)\} }}\]

  可以看出,当噪声信号不存在时,LMS算法的最优步长等于固定步长的NLMS算法

三、NLMS算法最优步长分析

  下面再分析下NLMS滤波器的最优步长,NLMS横向滤波器系数的的自适应更新机制为

\[w(n + 1) = w(n) + \frac{\mu }{{|u(n){|^2}}}u(n){e^2}(n)\]

  两边减去w,整理可得

\[\varepsilon (n + 1) = \varepsilon (n) - \frac{\mu }{{|u(n){|^2}}}u(n){e^2}(n)\]

  我们同样对抽头权向量n次迭代到n+1次迭代的抽头权向量的增量变化最小为准则来选择最优步长,即使

\[E\{ |\varepsilon (n + 1){|^2}\}  - E\{ |\varepsilon (n){|^2}\}  = {\mu ^2}E\left\{ {\frac{{|e(n){|^2}}}{{|u(n){|^2}}}} \right\} - 2\mu E\left\{ {\frac{{e(n)\xi (n)}}{{|u(n){|^2}}}} \right\}\]

  最小,按上面分析LMS滤波器时的思路进行求导并整理,最终得到NLMS的最优步长为

\[{\mu _{opt}} = \frac{{E\{ e(n)\xi (n)/|u(n){|^2}\} }}{{E\{ |e(n){|^2}/|u(n){|^2}\} }}\]

  为了简化最优步长的计算,我们假设从一次迭代到下一次迭代的输入信号能量的波动足够小,以满足以下近似

\[E\{ e(n)\xi (n)/|u(n){|^2}\}  = E\{ e(n)\xi (n)\} /E\{ |u(n){|^2}\} \]

  和

\[E\{ |e(n){|^2}/|u(n){|^2}\}  = E\{ |e(n){|^2}\} /E\{ |u(n){|^2}\} \]

  则最优步长可以重写为

\[{\mu _{opt}} = \frac{{E\{ e(n)\xi (n)\} }}{{E\{ |e(n){|^2}\} }}\]

  又因为加性干扰噪声信号与额外误差信号相关独立,再次重写最优步长

\[{\mu _{opt}} = \frac{{E\{ e(n)\xi (n)\} }}{{E\{ |e(n){|^2}\} }} = \frac{{E\{ [\xi (n) + v(n)]\xi (n)\} }}{{E\{ |e(n){|^2}\} }} = \frac{{E\{ |\xi (n){|^2}\} }}{{E\{ |e(n){|^2}\} }} = \frac{{E\{ |{\varepsilon ^T}(n)u(n){|^2}\} }}{{E\{ |e(n){|^2}\} }}\]

  如果我们接下来假设输入信号u(n)的频谱中,每个频点分别对加权误差向量频谱的对应频点的影响都是相同的,那么

\[E\{ |{\varepsilon ^T}(n)u(n){|^2}\}  \approx E\{ |{\varepsilon ^T}(n){|^2}\} E\{ |u(n){|^2}\} \]
  最终得到的最优步长可以近似为

\[{\mu _{opt}} = \frac{{E\{ |{\varepsilon ^T}(n)u(n){|^2}\} }}{{E\{ |e(n){|^2}\} }} \approx \frac{{E\{ |{\varepsilon ^T}(n){|^2}\} E\{ |u(n){|^2}\} }}{{E\{ |e(n){|^2}\} }}\]

  细心的朋友可能已经看出来了,这个结论与Speex回声消除原理深度解析一文中的最优步长结论意义上可以认为是相同的(采用的符号表示不同,不影响理解),这说明无论从哪个角度分析,在抽头权向量均方偏差最小的约束准则下,得到的最优步长的结论都是一样的。

四、改进思路

  既然原理已经分析清楚了,现在再来看看,针对这个原理的Speex实现,可以有哪些改进的思路。本人水平有限,这里先分享出来,欢迎各位朋友批评指正不足之处!

  1. 最优初始值问题,Speex虽然采用了MDF做为长延时滤波,但本质上仍然是时域滤波原理,只是在频域做罢了。那么为了尽可能的在启动时快速收敛,滤波器权向量的初始值问题就不好简单的用0来初始化。
  2. 回声对每个频点的影响是不同的,不能用一个泄露因子来表示,如果在频域进行分段处理,每段采用不同的泄露因子,应是可行的一个思路
  3. 在时域中回声路径是比较稀疏的,speex没有利用回声路径的稀疏性来加快收敛过程。
  4. 没有考虑不同扬声器到麦克风回声路径的非线性差异。这个差异在手机端效果效果很明显,如果对远端参考信号做非线性处理,可以弱化这个影响。

本文来自于icoolmedia,一个人水平有限,欢迎感兴趣的朋友加入音视频算法讨论群(374737122)就以上问题共同做进一步的讨论!

时间: 2024-12-20 01:08:36

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

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)} \] 则,滤波器的系数更

回声消除-理论篇

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

机器学习算法 - PCA理论分析

  主元分析(PCA)理论分析及应用 转载:http://www.360doc.com/content/10/0318/20/1024901_19297267.shtml

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

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

解密回声消除技术--转

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

回声消除技术解析——转

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

回声消除技术(2)

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

Flex回声消除的最佳方法

Adobe Flash Player 已经成为音频和视频播放的非常流行的工具.实际上,目前大多数因特网视频均使用 Flash Player观看. Flash Player 通过将许多技术进行组合可以提供具有丰富视觉体验和效率的高质量的播放功能,这些技术包括高级音频和视频压缩方法 (H.264.MP3和 AAC codecs).通用媒体功能 (多速率流媒体.播放列表.搜寻和其它功能) 和高效的播放机制 (硬件解码和直接渲染)等. 由于Flash Player 在桌面计算机上的广泛应用已经在移动设备

回声消除概述

在一般的VOIP软件或视频会议系统中,假设我们只有A和B两个人在通话,首先,A的声音传给B,B然后用喇叭放出来,而这时B的MIC则会采集到喇叭放出来的声音,然后传回给A,如果这个传输的过程中时延足够大,A就会听到自己刚才说的话,这就是回声. 回声消除器的作用就是在B端对B采集到的声音进行处理,把采集到的声音中包含的A的声音去掉之后在传给A,这样A就不会听到自己说过的话了. 传给回声消除器的两个声音信号,必须同步得非常好,就是说在B端接收到A说的话以后,要把这些声音数据传给回声消除器做参考,然后再