当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]IP电话回声消除器的设计及其DSP实现

介绍了一种用于IP电话中的自适应回声消除器,采用归一化最小二乘(NLMS)自适应滤波器实现,包括语音模式检测器和粗略时延估计器。最后以TI公司的TMS320C5402 DSP芯片为平台,实现了该回声消除器,还对关键代码进行了分析。
     关键词:回声消除,自适应滤波,NLMS,DSP


1 在VoIP中采用回声消除技术的必要性
  与传统的PSTN网络采用电路交换技术不同,IP电话采用的是分组交换技术,充分利用Internet来传输语音数据,使得价格大大降低,从而取得了长足的发展。但是IP电话也存在一些弊端,比如语言质量比较差,导致这一弊端的因素很多,其中主要的因素就是网络延时和算法延时,这主要是由于互联网的数据传输特点以及语音编解码耗时较大导致的,总延时长达100ms。根据经验,如果语音的延时超过了50ms,那么,人耳就可以鉴别出自己的回声,显然,IP电话系统的回声是非常严重的,鉴于此,国际电联(ITU)也相应地制定了回声消除的国际规范,如G.165,G.168。
2 回声消除器的结构框图和基本原理
    图1所示是VoIP回声消除系统结构图。

  从图1可以看出,整个回声消除系统分成三个部分:NLMS自适应滤波器、语音检测器和粗略时延估计器。其中,语音检测器又分为三个部分:近端说话检测器、远端说话检测器和双端说话检测器。
  图1中,A、B端代表远端用户,C、D端代表近端用户,y(n)代表时刻n来自远端的语音采样值。y(n)经过互联网到达近端用户的扬声器端,由于从扬声器出来的声音信号经过空气形成的回声通道H(z)又会被近端的话筒拾取,这部分回声信号echo(n)会混同近端用户的语音信号一起进入近端的话筒,也就形成近端的声学信号r(n),r(n)再通过互联网,向远端用户的扬声器传输。如果不采取回声消除措施,只要远端信号y(n)通过互联网传回远端扬声器的时间超过50ms(这是经常出现的情况),那么,这部分被近端拾取的回声信号echo(n)会被远端用户分辨出来,结果就使得远端用户听到了自己的声音,会大大降低通话的质量,这是用户所不能容忍的。所以,必须采取消除回声的措施。
  完成回声消除的一个很重要的模块就是自适应滤波器,本文采用NLMS算法进行自适应滤波。当远端信号y(n)到达近端之后,先把这个信号“复制”一份,放到存储器中,结合误差信号,利用NLMS算法不断调整自适应滤波器的系数,使得y(n)经过自适应滤波器后的输出尽量逼近回声信号echo(n),这样,当近端的语音信号x(n)=0的时候,从B端输出的误差信号e(n)也就接近0,从而达到了回声消除的目的。
  当然,在NLMS自适应滤波器进行滤波和系数更新之前,必须检测语音模式是近端说话模式、远端说话模式、还是双端说话模式,因为不同的说话模式NLMS自适应滤波器所执行的功能是不完全相同的。另外,由于远端信号y(n)被自适应滤波器“复制”到存储器中的时刻t1和y(n)经过回声通道H(z),进入近端话筒并作相应的处理的时刻t2是不相同的,t2要大于t1,这主要是语音数据编码、打包和压缩造成的。为了使得滤波器处理的信号y(n)和传回远端的信号r(n)保持对应,即echo(n)和y(n)保持高度的相关性,那么被自适应滤波器“复制”的y(n)信号,最好在存储器中延时一段时间,这样才能保证达到回声消除取得比较好的效果。
3 NLMS自适应滤波器原理
  为了讨论方便,这里先考虑远端说话模式,即近端语音信号x(n)为0。为了简单起见,把图1中的NLMS自适应滤波器部分单独抽出来,简化成图2。图2所示是NLMS自适应滤波器结构图。

[!--empirenews.page--]

  其中,H(z)传递函数用来表示回声通道的特性。NLMS自适应滤波器就是要尽快地调整自己的系数,使其冲击响应尽量逼近H(z)的冲击响应,这样才能使误差信号e(n)逼近0。具体的实现过程如下。
    自适应滤波器的输出由式(1)给出:

其中:N是NLMS自适应滤波器的阶数。BT=〔b0,b1Λ,bN-1〕是滤波器的系数矢量。-1),Λ,y(n-N+1)〕是滤波器n时刻的输入信号矢量。
  由于前面已经假设为远端说话模式,故,近端语音信号x(n)为0。误差信号e(n)可由式(2)给出:

其中:μ为步长因子,是一个常数,由试验来确定,μ的选取至关重要,为了确保收敛,必须满足0<μ<2。μ取值过大,虽然可以加快自适应滤波器的收敛速度,但是误差信号e(n)也会大,μ取值过小,则使收敛速度变慢。e(n)由式(2)计算。P(n)是n时刻输入信号矢量yn的短时平均功率,。

4 语音检测器
  语音检测器在整个回声消除系统中也占据非常重要的地位,这是因为不同的语音模式自适应滤波器所要求执行的功能是不相同的,下面分别说明。
4.1 远端说话检测器
  当近端用户不说话而只有远端用户说话的时候,就是远端说话模式。式(4)用于检测远端说话模式。

代表远端信号和近端信号的较短窗功率估计值。是阀值常量,要由实验来确定,取得太大或者太小都会导致检测错误。
  如果检测出为远端说话模式,那么,应该通过图1中的NLMS控制器同时打开NLMS自适应滤波器的滤波功能和系数更新功能。
4.2 双端说话检测器
  当近端用户和远端用户同时说话的时候,就是双端说话模式。式(5)用于检测双端说话模式。

表误差信号和近端信号的短窗功率估计值。C是系数常量,C=10ERLE/10,一般ERLE取为8dB。D是阀值常量,要由实验来确定,取得太大或者太小都会导致检测错误,影响滤波效果。
  如果检测出为双端说话模式,则要冻结FIR滤波器的系数更新功能,只需要完成滤波功能,即只要计算滤波器输出r(n)的值。
4.3 近端说话检测器
  当只有近端用户说话而远端用户不说话的时候,就是近端说话模式。式(6)用于检测近端说话模式。

表近端信号短窗功率估计值和长窗功率估计值。NES MARGIN是阀值常量,要由实验来确定。
  如果检测出为近端说话模式,那么,应该通过图1中的NLMS控制器同时冻结NLMS自适应滤波器的滤波功能和系数更新功能。
5 粗略时延估计器
  由于远端信号y(n)通过回声通道要经过编码、打包和压缩的处理,会花费大量的时间,这就必然会产生延时。而且这种延时还是在一定范围内随机波动的,这就增加了估计的难度,要想准确地计算出延时的大小是不可能的,只能是一个粗略的估计值,故称为粗略时
  延估计器。可以按照式(7)和式(8)来估计延时值:

  首先按照式(7)计算从近端传到远端的声学信号和误差信号的互相关函数,然后从中选出绝对值最大者,作为延时的估计参数。
6 DSP芯片简介及关键代码介绍
  本文选择TI公司的DSPTMS320C5402为硬件平台来实现回声消除,TMS320C54x是一款低功耗、高性能的定点数字信号处理器,运行速度可达到100MIPS。有两个40位累加器A、B,192K字可寻址空间(64K字的程序存储器、64K字数据存储器及64K字I/O空间)。采用8总线增强型哈佛结构,多级流水线操作,专用的硬件乘法器,DSP的专用指令(如FIRS,LMS)。
  下面是用DSP实现回声消除的NLMS算法的关键代码:
[!--empirenews.page--]

  编程的时候,为了提高程序的运行效率,要充分利用DSP芯片的优点。要尽量使用指令周期少的寻址方式,如直接寻址、双操作数寻址。在设计滤波器的数据和系数缓冲区的时候采用循环寻址,这样可以避免大批数据的搬移,节省指令周期,如果开辟一个长度为L的缓冲区,必须保证其首址最低位至少有N个0,N是满足2N>R的最小整数。还要多采用如ST‖MPY等并行指令,多采用DSP的专用指令,如LMS、FIRS。
7 结束语
  回声消除技术在IP电话中占有非常重要的地位,本文介绍了用NLMS算法设计回声消除器,还涉及到语音检测和时延估计,以及如何在DSP上实现。下面给出63阶的NLMS自适应滤波器的系数更新结果,为了方便起见,把回声通道H(z)等效成一个63阶的FIR滤波器,其冲击响应如图3所示,并假设近端语音信号x(n)为0,不考虑延时,一段时间后NLMS滤波器的冲击响应见图4。图4所示是收敛后的NLMS自适应滤波器系数。由图4可以看出,NLMS自适应滤波器的收敛效果较好。

  经过测试,本文所述的回声消除器用于VoIP电话中,可以比较明显地改善语音的质量。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭