具有用于最佳适应的卡尔曼滤波器的回声消除器的制作方法

文档序号:7532595阅读:487来源:国知局
专利名称:具有用于最佳适应的卡尔曼滤波器的回声消除器的制作方法
技术领域
该发明涉及一种在电信系统中自适应滤波器类型的回声消除方法。

背景技术
在无线电通信系统中,回声控制是一个重要的问题。在公共交换电话网(PSTN)中,由于阻抗不匹配,回声常常在四线到两线的连接处产生。更精确地,在用户和交换机之间的本地回路使用两线连接,而交换机之间的连接使用四线。在两线和四线连接之间地耦合由一种称之为混合电路的电气设备形成。理想地,混合电路应该将所有流入信号能量从远端(远处的说话者)直接传送到近的终端。由于是全双工的连接,当远端说话者在讲话时,近端说话者也必须可能讲话。不幸地是,这意味着由于在混合电路中阻抗不匹配,一些来自于远端的信号能量会被反射回远端。这些混合电路的数目是很多的,因此手动调整它们是不可行的。这种情况是对称的,即,当近端说话时,在远端会产生同样的效果。
在解决回声消除问题的尝试中,曾建议使用自适应滤波器,尤其是相应于NLMS算法修改的滤波器。这种算法由于它的相对低的复杂性而吸引人。然而,该算法的一个缺点是它的慢收敛性。
发明概要
因此,提供一个具有改进的收敛时间和低复杂度的回声消除方法是该发明的一个目标。
这样一种回声消除方法其特征在于权利要求1的特征,
附图简要描述
该发明以及进一步的目标和它的优越之处可以通过参考下面与附图一起进行的描述而更好地理解。其中


图1是说明回声产生过程的方框图。
图2是说明用于回声消除的一种自适应滤波器方法的方框图。及
图3是分别相应于以前技术运行的回声消除滤波器的收敛时间和相应于该发明运行的回声消除滤波器收敛时间的比较。
优选实施方案的描述
图1表示说明回声产生过程的方框图。说话者A在两线连接上讲话。在混合电路10,这一连接被变换成四线连接,语音被送到四线传送路径上的混合电路12,并具有一个由方块14表示的延迟。在混合电路12的另一边的两线连接上,语音到达听者B。同样地,来自B的语音将通过一个四线返回路径到达A,并具有一个由方块16表示的延迟。然而,由于在混合电路10,12中的阻抗误匹配,在返回路径上,A的回声也被送回给A。
因此,流入信号能量的一部分通常被反射回发送方。如果回路延迟较短,即小于10-15ms,说话者不能区别反射信号和来自他/她的终端旁边的音调。然而,当回路延迟大于10-15ms,说话者可以辨别来自回路另一端的回声。感知上,回声会听起来令人讨厌。如果(回声)大,它可以使对话实际上不可进行。注意到,在无线电通信系统中,回声也会由于其它机构产生。例如,在蜂窝电话的免提设备中,回声由扬声器和紧邻的麦克风之间的声耦合产生。
混合电路是一种动态电子电路,即,它必须从数学上被描述为一种动态系统,这意味着来自混合电路的反射信号也依赖于以前的流入信号。这对于设计象回声消除器这样的回声控制设备具有重要的意义。
图2说明了适于采用该发明方法的回声消除器的基本原理。这种思想是简单构造一个电路,该电路在当它被来自远端的信号激励时,模拟混合电路的特性。因为混合电路可以由一个线性动态系统来准确描述,回声消除器被构造成为一个滤波器。出于实际的原因,采用了一种时间离散有限脉冲响应滤波器(FIR)。在电话系统中,采样率是8kHz。此外,使得滤波器脉冲响应具有64ms的最长持续时间是很普通的。这对应于滤波器中的512抽头。
实验表明,混合电路具有变化很大的脉冲响应。因此,有必要使得回声消除器的FIR滤波器自适应。这意味着通过一些测量图2中残留回声y(t)-C(t)
(t)的机制来调整脉冲响应参数(它等于FIR滤波器的抽头值)。调整机制努力调整FIR滤波器的阶数,使得残留回声的方差最小。在下一部分中,描述了一些普通的自适应算法。
自适应滤波,NLMS和卡尔曼滤波
在[2]中详细描述了自适应滤波算法。这里给出一个简略的概括。通常通过一个适当的损耗函数的最小化来引入自适应。因此,复习一下最普通的算法即,最陡梯度降落搜索方法和更复杂的二阶牛顿法是有意义的。出于该目的,考虑最小化标量函数V(x)的问题,其中x是一个矢量。
最陡降落方法基于一种思想,这种思想建立一种迭代,其中对所搜寻的最小值的下一次估计等于前一次估计加上在V(x)负梯度方向上的一个小的修正。(朝着最小值下降)。这里给出迭代
(1)
这里,μ是个常数,n表示迭代次数。用户需提供一个适当的开始值。
牛顿法可以开始以估计值xn附近的V(x)的泰勒级数展开式来理解。因此有
(2)
其中,T表示转置,在最小值情形下,V(x)/x应该等于零。因此,利用近似式(2)来判定下一个估计值使得这一点保持正确。对(2)式微分并使结果等于零,得到(利用2V(x)/x2的对称性)
(3)
从迭代式中解出xn+1
(4)
这就是牛顿迭代。
注意到,上述V(x)是一个标量,V(x)/x是一个与x维数相同的矢量。而2V(x)/x2是一个方阵,它的行数和列数等于x的维数((2V(x)/x2|x=xn)-1可以被看作为常数标量μ对依赖于时间的矩阵形式的一个产生式)。因此,众所周知的是
在每一次迭代中,牛顿迭代要比最陡降落法复杂的多。
然而,牛顿迭代却有一个重要的有利之处
至少在接近最小值时,牛顿法比最陡降落法收敛的快的多。
下一步是应用上述方法来构造自适应FIR滤波算法。出于该目的,必须构造一个损耗函数。用y(t)来表示混合电路的输出,用y^(t,h)来表示自适应FIR滤波器的输出。这里,t表示离散时间(此后t代替了上述的迭代索引n)。h表示FIR滤波器的输出依赖于集中在参数矢量h中的未知的抽头值hi(将被自适应算法优化)。残留回声由下式给出
(5)
为了继续,需要确定FIR滤波器,它由下式给出。
(6)
(7) C(t)=(x(t)...x(t-n))
h=(ho...hn)T
(8)
现在可以构造一个损耗函数,根据该函数可以构造一种最陡降落类型的算法。该算法被称作为最小均方算法(LMS)。并普遍用于很多应用。该损耗函数为
(9)
其中,目标是通过最小化误差ε(t,h)来估计h。
由于最小化应该采用算法(1)。可以得到下述迭代
(10)
并且,因此有必要计算V(h)的梯度。可以利用(5)-(8)来完成这一点。考虑梯度矢量中的第j个元素
(11)
因此,根据下式更改第j阶抽头值。
(12)
所有抽头的梯度等式可以被叠加在每一个之上并公式化为下述矢量见(5)-(8)
(13)
这给出下面定义LMS算法的矢量迭代
(14)
应该注意到,在LMS算法中的更改步长是与C(t)和ε(t,h)|h=h^(t)的大小成比例的。尤其是,稳定性可以被表示为很大程度上依赖于远端信号x(t)的能量。为了避免这一点,LMS算法通常以输入信号的能量来归一化C(t)CT(t)。这给出广泛使用的归一化的最小均值平方算法。
(15)
该算法是现在大多数回声消除器中应用的技术。
卡尔曼滤波器可以被理解为一种二阶牛顿算法的版本。它的导出式是有些复杂的[5],并且不在次重新推导。为了这一目的,对于附录中假设A1中给出的模型,说明卡尔曼滤波器由(16),(17),(18)给出是充分的。
(16),
(17),
(18)
其中,h^(t)和C(t)连同假设A1一起在附录中被解释。R2(t)是来自近端的附加噪声的方差(例如,背景噪声)。R1(t)是技术上所谓的系统噪声,它说明,在抽头是常数的假设中,人们可以有多大的自信度。见附录假设A1中第三个等式。P(0)是P等式的开始值(Riccati等式)。这个量等于抽头hi的先验协方差。所有这些量被假设为至少在时间t是可以知道。
给定p(0),卡尔曼滤波器以(18)的一次迭代开始。这产生P(1),然后可计算出K(1)。此后,假设可得到h^(1)(由于h^(0)是用户提供的,K(0)由P(0)得到),h^(2)可被计算出。
注意到,如果FIR滤波器采用512抽头,卡尔曼滤波器P(t)就是一个512*512阶的矩阵,这样与NLMS算法比较,该算法的复杂度是巨大的。但是它最佳快速收敛。这种快速收敛是由于增益矢量K(t)(对每一抽头可被看作是一个单个的μ)是时变的。这种时变性是针对小的t的,当对估计的抽头一无所知时,增益高是为了快速地获得一个粗略的估计。然后增益逐渐减小以获得高准确性并抑制扰动。
该发明的目标在于引入卡尔曼滤波器的简化,将它的计算复杂度降低到相似于NLMS算法复杂度的水平。
注意到计算复杂度的主要来源是Riccati等式(18)。该目标可以按下面实现。
简化必须被引入到卡尔曼滤波器,使得对所有t,P(t)简化为一个对角线矩阵。这样,对于一个512抽头长度的滤波器,复杂度降低了大约512倍。这些简化必须以这样一种方式来完成,就是在简化了的算法中,至少保留了一些时间最优性。
在附录中简要给出了这点的具体做法。其结果是具有近似最优时变性的块NLMS类型算法。
这使算法具有
或者如同NLMS算法一样,对于同样的回声抑制具有降低的收敛时间,或者从初始起在相同的的收敛时间上,具有比NLMS算法更高的回声抑制。
调整可以根据有物理意义的量例如回声功率,回声波形,阶数和算法块来计算出的参数。
后一个特性给出下述该发明的第二个优点
最初,用一小组调整参数使该算法收敛。在收敛之后,可得到回声能量和回声波形的更准确的估计。然后可得到该算法的新的,改进的调整,它继而产生改进的回声抑制。
导出式的启发性解释
推导是基于[3]和[4]的。在[3]中,介绍了一种块NLMS算法,其中,每一块的调整增益μ之间的关系遵循一种指数关系。该想法是脉冲响应的早几抽头可能比后几抽头更大而且更重要。如果对重要的早几抽头施加更大的增益,而对不重要的抽头施加较小的增益,性能就可以改进。对不重要的小抽头施加较小增益的原因是,否则的话它们对由背景噪声造成的所谓的误调所起的作用与重要的早几抽头相等。但是,它们对回声作用不大,因此它们的等价SNR很低。因此,在模拟来自混合电路的回声时,它们在信号中的加权(坏信息)应该比较小。
为了继续附录中的描述,首先定义滤波器模型和卡尔曼滤波器的数量。如同注意到的,对(18)简化的一个主要障碍是C(t)预先不知道。因此,P(t)不能预先计算出。该思想是为了获得一个可预先计算的量,在Riccati等式上简单的进行常规的统计平均。假设A2和A3表达了实现这一点需要什麽,并产生附录中的(20)。为了继续,需要关于流入远端信号白化的附加假设(A5),以及技术假设A4。于是,如果用户选择R1(t)并根据A6和A7选择了P(0),正如上面想要作的一样,Riccati矩阵等式(18)简化为n标量近似Riccati等式。然而,留下一个问题。精确的Riccati等式总是稳定的,并具有一些吸引人的特征[5]。由于附录中的(22)是近似的,引入了变换和另外的条件以得到精确的(23)。然后,对应于(26),附录计算平均卡尔曼增益,并引入归一化,参照上面关于LMS和NLMS的讨论。
之后,附录给出用于图2中滤波器18中的详细的算法(AKFA),并讨论怎样选取各个参数以获得好的性能。首先考虑算法,第一行初始化能量估计和滤波器估计。第二行引入标量Riccati等式的初始化。第三行是流入的远端信号功率的估计器,该功率是第五行中卡尔曼功率增益的归一化所必须的。卡尔曼增益计算也需要每一个抽头不同Riccati等式值。如果需要,这些可以被预先计算并存储在存储器中。对应于上面处理的NLMS算法,该算法最后一行描述了滤波器抽头的更改。
然后剩下选择α,pi(0)和γi的值。这在算法以下给予解释,结果是
可以首先根据先验假设的最大回声功率(Power)来判定pi(0),在算法中的块的数目(m),先验假设的回声脉冲响应的包络波形(power,δ)及滤波器抽头数(n)。
然后根据p1(0),滤波器抽头数及一个稳定因子(f1)判定α。
最后,可以根据另一个稳定因子α,滤波器抽头数和P1(0)判定γ1。然后根据判定Pi(0)时计算出的量得出γi。
一个非常重要的观察结果是所有的调整参数可以根据直接关联到的物理量如回声功率,回声波形,算法块,滤波器长度和两个容易判定的稳定因子的量值计算出。这使得上面描述的再优化过程可能成为该发明的一个特别的优点。
实验结果表明,与传统的NLMS算法相比,确定的抑制水平的建立时间可以减小5倍。图3表示了分别用于该发明的NLMS算法和卡尔曼算法的误差信号建立时间的比较。从图中可以看到,NLMS算法的误差在近似15秒后收敛到一个稳定不变的状态,而相应于该发明方法的误差在经过近似3秒后收敛到一个稳定不变的状态(该图根据15秒8000Hz采样的语音获得,但只表示出了每个第100个误差)。该例以针对给定回声抑制的收敛时间的形式来比较NLMS算法和AKFA算法。x(t)是一个零均值白信号,均匀分布且方差为1.00。高斯测量噪声被加在模拟回声信号上(由一个实际的回声冲击响应产生)。使得y(t)的SNR为10db。NLMS算法使用一个自适应增益0.01954且n=512。通过利用P功率=0.25(-60db),n=512,m=16,δ=0.001,f1=1,fc=0.07815及N=512,AKFA被应用于同样的数据。
另一种方法,保持建立时间不变,回声抑制可以提高大约7db。
两种可选方法都可以以计算复杂度的少量百分比增加为代价来实现。
该领域的技术人员会明白,可以不叛离由附加权利要求定义的该发明的思想和范围而对该发明做各种的修正和改变。
附录
一个在回声消除方面广泛讨论的问题是回声消除器的最初收敛时间。这个问题涉及到一个事实,就是传统的NLMS算法的收敛时间受到回声产生信号的谱特性和估计FIR滤波器长度的限制。该附录的目的是获得具有减小的最初收敛时间的,低复杂度时变矩阵步长的NLMS类型算法。
平均的卡尔曼滤波
用h(t)来表示自适应FIR滤波器的未知参数矢量,其中t是离散时间。回声产生系统的输入x(t)被集中到矢量C(t)中。为了模拟滤波器初始化,假设x(t)=0,t<0,由y(t)来表示反射回声的测量值。这些测量值被掺杂了噪声e(t)。其中e(t)是具有零均值和协方差E[e(t)e(s)]=δt,sR2R2>0的高斯白噪声。这里E表示期望。该讨论是基于描述h(t)的展开的一种随机移动模型。系统噪声w(t)被假设为具有零均值及协方差矩阵E[w(t)wT(s)]=δt,sR1(t),R1(t)>=0的高斯白噪声。卡尔曼滤波器的推导因此基于假设
A1回声产生系统由下式描述h(t)=(h1(t)...hn(t))T
C(t)=(x(t-1)...x(t-n)),x(t)=0,t<0
h(t)=h(t-1)+w(t)
y(t)=C(t)h(t)+e(t)
E[e(t)e(s)]=δt.sR2,E[w(t)wT(s)]=δt.sR1(t)现在给出下面的最佳一步预测器
(19)
这里K(t)是根据Riccati等式[5]计算出的卡尔曼增益。C(t)预先不知道。因此有必要实时迭代全Riccati等式。然而,根据[4],如果不同的信号实现之间P(t)的展开没有太大差别,应该可能以一个对应的集平均来代替P(t)。因此,假设
A2P(t)是一个具有现存集平均E[p(t)]=P(t)的矩阵值随机过程。
A3ΔP(t)=p(t)-P(t)很小。
利用A2计算Riccati等式左边和右边的平均值,并如同在[4]中一样准确地使用A3,给出下面的近似平均等式。
(20)
在[4]中使用了x(t)的常数系数特性以进一步简化(20)。在回声消除情况中,这一点是不可能的,需要一种新的方法。注意到R1(t)/R2→0意味着当t→∞时,P(t)→0。因此,如果R1(t)/R2很小,要求R2>>C(t)P(t)CT(t)是合理的,如下式表示的
A4A4R2>>C(t)P(t)CT(t) t.
这将(20)变换为一个期望表达式的分母被简化为标量R2的等式,该标量R2可以被从期望表达式中提出来。由于获得了低的计算复杂度,E[CT(t)C(t)]的对角线型的可预计算近似式现在成为优选的。这一点由下式保证
A5x(t)是E[X(t)S(t)]=S(t)δt,sσ2的零均值信号。
这里,S(t)是在t=0时的单位步长函数,参照A1。当包括用于预白化和x(t)的偏差补偿的装置时,A5是合理的。这将(20)简化为
(21)
为了降低复杂度,通过下式,(21)被简化为一系列的标量Riccati等式。
A6…R1(t)=diag{ri(t)}i=1,...,n=diag{S(t-1)ri}i=1,...,n.
A7…P(0)=diag{Pi(0)}i=1,...,n=diag{Pi(0)}i=1,...,n=P(0).
A6和A7表明P(t)=diag{Pi(t)}i=1,…n,.t,其中Pi(t)遵从标量等式
(22)
由于(22)不是Riccati等式,可能不会保持Pi(t)>0,t。并且(22)会变的不稳定。然而,如果(22)中的R2可以由R2+S(t-i)σ2Pi(t)替换,(22)的结构将成为Riccati类型,它将保证稳定性及Pi(t)>0,t[4]。考虑A4。注意到由于P(t)=diag{Pi(t)}i=1…n,它保持C(t)P(t)CT(t)<supi,t|Pi(t)|nσ2。因此,如果R2>>supi,t|pi(t)|nσ2,那麽A4为真并且R2>>S(t-i)Pi(t)nσ2。在进一步简化R2>>supi,t|Pi(t)nσ2以得到A4’之前,产生的Riccati等式被表示为
(23)
通过注意到当t->∞时,(23)有稳定不变的解(24),上面的假设现在可以被进一步的修改
(24)
从(23)也可直接看出,对于t≥i
(25)
因此,Riccati等式(23)的稳定性和正值性,连同R2>>supi,t|pi(t)|nσ2,(24)和(25)一起促使了为什麽以下式替换A4是合理的。
A4′
现在,平均的卡尔曼增益矢量可以根据A1而计算出(参照[2],[4])。利用A2-A4’和(23)得到
(26)
由于涉及到几个近似,平均的卡尔曼滤波器要求稳定性检查。可以使用LMS分析中的技术来进行这种稳定性分析,在LMS分析中,t->∞并且得到了(23)的稳定不变的解。对于大的t,(24)和(26)给出
(27)
然而,通过利用(24)计算
及LMS稳定性理论,产生了条件A8
A8
算法和调整
通过将R2看作为一个设计变量并根据(28)选取R2,现在可以得到一种NLMS类型的算法。
(28) R2=ασ2
如果Nσ2被在线估计,根据A1,(19),(23),(26)可获得下面NLMS样的方案
平均的卡尔曼滤波器算法(AKFA)该算法概括为以下各式。
pi(0)=pi(0),i=1,...,n
C(t)=(x(t-1)...x(t-n))T,x(t)=0,t<0
如果需要,Pi(t)可以被预先计算并存储。对σ2N(t)([]>ε)的正值检测防止在卡尔曼增益计算中可能被零除的情况。
现在可以讨论pi(0)的选择。由于没有关于脉冲响应的详细的先验信息,传统的卡尔曼滤波器理论[5],和A7表明E[h(0)-1]=0并且pi(0)=E[hi2(0)-1],作为一个例子,作为i的函数,下面pi(0)的分段常指数分解式如在[3]中被引入。
(29)
其中m等于分段常数间隔的数目。[(I-1)/l]表示(I-1)/l的整数部分。如果由Power来表示回声脉冲响应功率的一个先验上界,它遵循Power等于pi(0),I=1.…n的和。将根据(29)产生的几何级数相加并解出β得到
(30)
其中γ可以利用(29)通过确定与抽头1相比抽头n的残留功率来判定。如果该残留功率由因子确定,它遵循βe-γ(m-1)=pn(0)=δp1(0)=δβ这给出
(31)
通过选择δ,n,m和Power,相应的Pi(0)可以被计算出。这里有m个不同的Pi(0)值。如果根据与Pi(0)相同的原则来选取γi这意味着只有m个Riccati等式需要被迭代,见下面。通过注意到如果Pi(0)=Pi+1(0)且如果γi=γI+1则Pi+1(t)=Pi(t-1)来处理乘以S(t-1)的操作。这可以将复杂度从与3n成比例降到与(2n+m)成比例(NLMS算法复杂度为2n)。由于通常n>>m,这表示接近50%的降低。考虑到Pi(t)的存储,在规定的ROM中,这种降低更大。
现在(28)将第一条件A4’变换为
(32)
其中f1是稳定因子。为了判定γi,首先注意到P+i(γI,R2,σ)是γi的单调递增函数。下面的必要条件用于判定允许的γi的范围,于是根据A4′,(28)和(29)产生
(33)
由于E[hi(t)-hi(0)]=tri,通过随机移动模型A1,γi涉及第I个滤波器抽头的平均变化率。相应的时间因此是t=pi(0)/γi。有理由假设对于所有抽头,pi(0)有同样的平均漂移时间。且(29)意味着
(34)
稳定条件A8也必须满足。利用(28)来推导A8很简单。其结果,连同(33)和(34)一起可以被集中在(35)。
(35)
其中f2是一个稳定因子。最终结果是
(36)
参考文献E.Hansler,“免提电话问题——带注释的参考书目”,信号处理,vol.27,no.3,pp.259-271,1992.H.Schutze和R.Zen,“快速递归最小平方正割自适应算法的数字特性——一种比较研究”信号处理,vol.27,no.3,pp.317-332,1992。S.Makino,Y.Kaneda和N.Koizumi,“基于一种房间脉冲响应统计的指数加权步长NLMS自适应滤波器”,IEEETrans.声学,语音,音频处理,vol.1,no.1,pp.101-108,1993.L.Lindbom,“衰减移动无线电通道的简化的卡尔曼估计在LMS计算负载下的高性能”,inProc.ICASSP,Pt.III,pp.352-355,1993.S.Haykin,现代滤波器,Macmillan出版,1989.
权利要求
1.在电信系统中的回声消除方法,其特征在于用卡尔曼滤波器来消除输入信号x(t)中所说的回声,该卡尔曼滤波器有一个与下面矢量成比例的时变卡尔曼增益矢量K(t)
(p1(t)x(t-l)...pn(t)x(t-n))T
其中pi(t)是满足Riccati等式的对角线矩阵P(t)中的对角线元素。
I表示P(t)的第I个对角元素。
t表示离散时间
n表示滤波器抽头
T表示转置
2.权利要求1的方法,其特征在于每一个对角线元素Pi(t)满足标量Riccati等式,其中γi和α是常数S(·)是单位步长函数。
3.权利要求2的方法,其特征在于由对角块矩阵形成所说的矩阵P(t),所说的对角元素Pi(t)在每一个块矩阵中相同。
全文摘要
卡尔曼滤波器被应用来获得一种快速收敛,低复杂度的回声(y(t))消除器(18)。一种平均的对角线Riccati等式允许以少量的标量Riccati等式来预先计算或在线计算最佳时变自适应增益K(t)。
文档编号H03H21/00GK1180460SQ9619307
公开日1998年4月29日 申请日期1996年2月12日 优先权日1995年2月15日
发明者T·维格伦 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1