首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

回声消除基于NLMS改进算法的研究

作者:彭娟 洪小斌 来源:现代电子技术

摘 要: 为了提高VoIP的通信质量,减少回声干扰,对LMS算法、NLMS算法进行阐述, 基于NLMS提出了一种运算量小并且提高收敛性能的改进的自适应滤波算法。通过在Matlab下的仿真研究和对误差曲线的分析,证明了该改进算法的收敛速度快,均方误差小。用改进的算法对语音回声信号进行消除,仿真得到消除回声后的信号效果明显,为IP电话中回声消除的自适应滤波问题提供了一个较好的算法。

关键词: 回声消除; 自适应滤波算法; 量化误差算法; 可变步长算法

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2013)22?0035?04

0 引 言

相比于传统的PSTN,VoIP(Voice over Internet Protocol)有很大的优势,它的网络利用率高,通信成本低,而且能广泛地采用Internet和全球IP互连的环境,提供比传统业务更多、更好的服务。

随着VoIP的迅速发展,如何提高通信质量是研究的重点难题[1]。而在实际通信中,回声会严重影响通信质量,因此如何消除回声是提高通话质量的关键技术之一。为了消除回声,一般采用的自适应滤波算法如:最小均方误差算法(Least Mean Square,LMS)、归一化LMS算法(Normalized LMS,NLMS)等,但是这些算法都存在一些收敛速度、均方误差的问题。基于算法的收敛性能和稳态性能,本文提出了一种改进的算法,使其在快速收敛的情况下,具有较好的稳态性能。

1 回声消除技术介绍

现代进行回声消除的技术主要是基于自适应滤波器,该滤波器能够根据参考信号,预测出接收信号中的回声,并将回声从信号中消除和抑制,从而消除回声。

1.1 自适应滤波器结构

自适应滤波器的结构如图1所示,其是由自适应算法来不断调整滤波器系数实现的。自适应滤波器由两部分组成:一个是滤波器结构,另一个是调整滤波器系数的自适应算法。自适应滤波器的结构[2?3]可以采用FIR结构或者IIR结构,但是由于IIR滤波器存在一些稳定性的问题,所以一般选择FIR滤波器作为自适应滤波器的结构。

图1中:x(k)是输入信号;y(k)是输出信号;d(k)是参考信号或者期望信号;e(k)为d(k)和y(k)之间的误差信号。误差信号e(k)控制自适应滤波器的滤波器系数,根据自适应滤波算法以及e(k)的值自动调整自适应滤波器的滤波器系数。

1.2 自适应滤波算法

1.2.1 最小均方自适应算法

最小均方自适应算法(LMS算法)[4]是线性自适应滤波器算法。其权值的递推公式为:

[wn+1=wn+2μenxn] (1)

式中:w(n)为第n步迭代的权向量;[μ]是步长因子;e(n)是误差信号;x(n)是输入信号。这里,0<[μ]<1。在收敛范围内通过步长选择来控制收敛速度和稳态误差。

1.2.2 归一化LMS算法

归一化LMS(NLMS)算法[5?7]是基于LMS算法的一种改进,两种算法的不同在于LMS算法中的固定步长因子[μ]是一个常数,而NLMS算法中采用了可变的步长因子[μ],其目的是为了加快算法的收敛速度。在NLMS算法中,根据式(2)来定义可变步长因子[μ]:

2 基于NLMS的改进算法

2.1 算法分析

在NLMS算法中,步长因子[μ]对收敛有极大的影响。步长决定算法的稳定性、收敛速度和自适应过程的平稳性。在收敛初始阶段或者未知系统参数发生变化时,步长因子的值应该较大,这样使得算法会有较快收敛速度或对于时变系统来说会有较快的跟踪速度。然后随着收敛的加深,步长因子应该逐渐减小以此来减小稳态误差。

在NLMS算法中步长因子:

在语音处理中,一段语音的输入序列都会很长,甚至长度未知,而且其非平稳性。[N0]可根据LMS算法在实际问题中收敛到稳态解时的迭代次数确定,而[Nd]则可根据输入数据的长度确定。

这样开始收敛时,[f(k)]为一较小的常数;当[k≥N]时,随着收敛级数k的逐渐增大,[f(k)]逐渐变大,步长因子[μ]逐渐变小。

2.2 仿真分析

图2,图3为LMS算法的仿真,采用的是32阶FIR滤波器。在自适应滤波器结构中采取的是LMS算法,其中LMS的步长因子[μ]=0.008。

在图2中,横坐标为迭代次数,纵坐标为信号幅值。desired是希望输出的信号,output是回声消除后的信号,error是desired信号与output信号之间的误差。

从图2可以看出期望输出的信号与回声消除后的信号还是有比较大的差异,特别是在迭代刚开始的时候两个信号之间的误差比较明显。由图3可以看出,在100次迭代以前,误差比较大,随着迭代次数增大,误差逐渐减小,直到迭代次数在150次以后,误差在一个较小的幅度内波动,慢慢趋于平稳。

由图4可以看出期望信号与回声消除后的信号之间的差异不是特别明显,随着迭代次数越来越大,两个信号非常近似。

由图5可以看到迭代次数为80以前,信号之间的误差比较明显,之后误差急剧下降,迭代次数到达250以后,误差基本上就非常小。

图6、图7为改进的NLMS算法的仿真,为了便于比较,和LMS、NILMS算法一致,定义了32阶的FIR滤波器。在自适应滤波器中使用的是改进的NLMS算法,其中改进的NLMS算法的步长因子[μ]=1。

由图6可以明显看出期望信号与回声消除后的信号之间基本上是重合的,在迭代初期两个信号之间有比较小的差异,随着迭代次数越来越大,两个信号基本一致。

由图7可以看到迭代次数为50以前,信号之间有比较大的误差,之后迭代次数增大,误差也逐渐下降,迭代次数到达100以后,误差就基本上稳定在一个比较小的范围。

图8为LMS、NLMS、改进的NLMS三种算法期望信号与回声消除后信号均方误差的比较,其中红色的线代表的是LMS算法,绿色的线代表的是NLMS算法,黑色的线代表的是改进的NLMS算法。

由图8可以很明显地看出,在刚开始收敛时,LMS算法和NLMS算法的均方误差比较大,而改进的NLMS算法的误差相比而言小一点。当收敛级数到50的时候,改进的NLMS算法基本上就趋于稳定,而LMS还有NLMS算法依旧还是有一定的误差。

改进的NLMS算法既有较小的误差,收敛速度也比较快。综合看来,改进的NLMS算法有比较好快速收敛性能和稳定性能。

采用改进的NLMS算法对实际语音信号[8]进行回声消除。图9中,第一幅图是近端信号,也就是实际希望得出的信号,第二幅图是近端信号中混入了远端回声信号后得到的麦克风信号,第三幅图是利用改进的算法进行回声消除后得到的信号。

从图9中可以看出,消除回声后的信号与近端信号基本一致,回声消除效果比较理想。

在实际运用的时候,步长因子[μ]的选择非常重要,因为它会对滤波器收敛性能有很大的影响,它控制了算法的收敛速度。本文试验中采用的步长因子[μ]是经过多次测试得到的。

3 结 语

本文主要是研究自适应信号处理技术在语音通信的回声消除方面的应用。

传统的LMS算法因为它简单的结构、稳定的性能以及容易在硬件上实现等许多优点而被广泛地用在自适应控制、雷达、系统辨识及信号处理等各个领域。但是LMS自适应算法的收敛速度比较慢。而NLMS算法虽然收敛速度有所提高,但是它具有一个致命的弱点,就是当输入信号是像语音等相关性很强的信号[9]时,算法的收敛速度会显著降低,从而影响回声消除的质量。本文主要是基于NLMS算法进行改进,通过理论的分析和Matlab[10]仿真研究表明,本文提出的算法能加快算法的收敛速度并且有较好的稳定性,为回声消除的实际运用提供了比较好的解决方案,在回声系统中能够较好地满足IP电话对于语音的要求,从而提高了通话的质量。

参考文献

[1] 王琦,马跃,喻炜.VoIP中为保证语音质量所采用的关键技术[J].中国数据通信,2002(2):25?29.

[2] 尹浩琼.通信系统中回声消除的研究[D].北京:北京邮电大学,2006.

[3] 西蒙.自适应滤波器原理[M].北京:电子工业出版社,2006.

[4] 龚耀寰.自适应滤波[M].2版.北京:电子工业出版社,2003.

[5] 郑宝玉.自适应滤波器原理[M].4版.北京:电子工业出版社,2003.

[6] EWEDA E. Convergence analysis of adaptive filtering algorithm with singular data covariance matrix [J]. IEEE Transactions on Signal Processing, 2001, 49(2): 334?343.

[7] LIU Jian?feng. A novel adaption scheme in the NLMS algorithm for echo cancellation [J]. IEEE Signal Processing Letters, 2001, 8(1): 20?22.

[8] 魏臻.归一化LMS算法在IP电话回声消除的研究[J].微计算机信息,2010,28(1):27?28.

[9] 皇甫堪,陈建文,楼生强.现代数字信号处理[M].北京:电子工业出版社,2003.

[10] 陈怀琛,吴大正,高西全.Matlab及在电子信息课程中的应用[M].3版.北京:电子工业出版社,2006.