新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > IP电话回声消除器的设计及其DSP实现

IP电话回声消除器的设计及其DSP实现

作者: 时间:2011-07-05 来源:网络 收藏

  其中,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 芯片简介及关键代码介绍
  本文选择TI公司的TMS320C5402为硬件平台来回声消除,TMS320C54x是一款低功耗、高性能的定点数字信号处理器,运行速度可达到100MS。有两个40位累加器A、B,192K字可寻址空间(64K字的程序存储器、64K字数据存储器及64K字I/O空间)。采用8总线增强型哈佛结构,多级流水线操作,专用的硬件乘法器,的专用指令(如FIRS,LMS)。
  下面是用DSP回声消除的NLMS算法的关键代码:



评论


相关推荐

技术专区

关闭