基于飞思卡尔MCU的AEC算法实现_第1页
基于飞思卡尔MCU的AEC算法实现_第2页
基于飞思卡尔MCU的AEC算法实现_第3页
基于飞思卡尔MCU的AEC算法实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于飞思卡尔MCU的AEC算法实现0 引言VoIP是在IP网络上实现音视频及传真信号传输的一门全新的集成业务数据网络技术。IP语音传输技术具有节省带宽、话费低,可方便地集成智能型开放体系结构以及多媒体业务等优势。但较之传统电话,其语音质量较差。事实上,影响因特网语音质量的因素是多方面的,关键因素之一是回声的影响。因此,要提高因特网的语音质量,就必须在语音传输过程中进行回声消除。AEC是基于自适应算法并可用于VoIP的声学回声消除技术。而用于AEC算法0 引言VoIP是在IP网络上实现音视频及传真信号传输的一门全新的集成业务数据网络技术。IP语音传输技术具有节省带宽、话费低,可方便地集成智能型开

2、放体系结构以及多媒体业务等优势。但较之传统电话,其语音质量较差。事实上,影响因特网语音质量的因素是多方面的,关键因素之一是回声的影响。因此,要提高因特网的语音质量,就必须在语音传输过程中进行回声消除。AEC是基于自适应算法并可用于VoIP的声学回声消除技术。而用于AEC算法的实现与研究的硬件平台是以freescale公司的MCF5235为核心的开发板。MCF523x系列MCU是首个以带有增强型乘加运算单元(eMAC)的ColdFire V2内核为核心,该产品同时结合了增强型时序处理单元(eTPU)和10100以太网多媒体通道控制模块(MAC)的MCU,因而具有强大的数据处理能力和丰富的接口,能

3、够满足VoIP电话终端对数据处理速度以及网络通讯安全的要求。1 回声消除1.1 声学回声消除原理AEC是以扬声器信号与由它产生的多路径回声的相关性为基础建立的远端信号语音模型,利用它可对回声进行估计,并不断地修改滤波器的系数,以使估计值更逼近真实的回声,然后,将回声估计值从话筒的输人信号中减去,从而达到消除回声之目的。声学回声消除器的结构原理如图1所示。其中y(n)代表远端语音信号,r(n)代表回声,x(n)是已经叠加了回声信号r(n)的近端语音信号。对回声消除器来说,可将远端信号作为一个参考信号,然后由自适应滤波器通过它来产生回声的估计值r(n),再从近端带有回声的语音信号中减去r(n),从

4、而估计出近端输出信号(n)。在近端未说话时,即当x(n)=0时,(n)即为回声的残差信号e(n)。e(n)的计算方程为:e(n)=r(n)-r(n) (1)此时,回声的残留信号的理想值应为0。1.2 自适应FIR滤波器在声学回声消除器里,横向结构的自适应滤波器可通过参考信号来产生回声的副本,其原理如图2所示。如果这个横向结构的自适应滤波器的转换函数与回声通道的函数模型一致,那么,回声的副本与回声就应该是一致的,这样,通过两者的抵消便可达到消除回声之目的。FIR滤波器的最主要特点是没有反馈回路,这是一种非递归系统,它的冲激响应是一个有限长序列。FIR滤波器的输出计算公式为:自适应FIR滤波器根据

5、上一刻的近端输出信号(n)及远端语音信号y(n),并通过自适应算法来估算当前时刻FIR滤波器的系数ak(n+1)。1.3 LMS算法和NLMS算法在输入信号和参考信号都是平稳随机信号的情况下,自适应滤波器的均方误差Ee(n)性能曲面是滤波器加权系数ak的二次函数。其系数修正算法通常采用可使均方误差最小的最优化求解算法。由于实际的梯度值只能根据观测数据估计,因此LMS算法提出的一个基本思想就是用平方误差Ee2(n)来代替均方误差Ee(n)。它是对基本的最速下降算法的改进,其算法迭代公式为:ak(n+1)=ak(n)+2e(e)*y(n) (3)其中y(n)为输入信号,为迭代步长常量。规一化LMS

6、 (NLMS)算法可用来在LMS自适应滤波器方程里修正FIR滤波器的系数。NLMS算法与LMS算法几乎是一样的,唯一的不同是NLMS算法中使用可变步长控制因子来代替LMS算法中的常量因子。其目的是加快算法的收敛速度。其算法迭代公式为:其中,可由试验来确定。但应注意,的选取至关重要,为了确保收敛,必须满足02。本方案中的自适应算法就是采用NLMS算法。1.4 语音检测语音活动检测可用来确定三种语音状态:近端讲话状态、远端讲话状态和双端讲话状态。因为AEC要根据不同的语音活动状态来进行相应的处理。它在检测到近端语音活动状态时,滤波器既不进行滤波,也不进行系数更新;而在检测到双端语音活动状态时,将停

7、止滤波器系数的更新,但要进行滤波。由于在只有远端语音活动的状态下,既要进行滤波,又要进行系数更新。因此,语音活动状态检测的正确与否在很大程度上会影响回声消除的效果。语音活动检测流程如图3所示。双端讲话情况可以通过设计近端话音检测器,并采用Geigel算法来判决。利用该算法计算回声延时大小范围内的瞬时能量比较,具有着良好的性能优势。其Geigel算法描述如下:式中,N是FIR延时级数,之所以将r(i)和最近N个远端输入的最大值进行比较,而不是仅仅和当前远端输入点y(i)进行比较,是因为回声路径延时具有不确定性。2 实现方案声学回声消除器AEC主要包括FIR滤波模块、Geigle双端语音判决模块、

8、NLMS系数更新模块、语音状态控制模块四个部分,图4所示是该AEC的简要工作流程。Freescale公司的硬件开发平台以Coldfire系列MCF5235为核心。该系列MCU支持标准C语言及其专用的汇编语言。因此,在该平台上运行的功能模块需要使用C语言或者专用汇编。AEC的开发及移植过程如图5所示。设计时。首先应搭建AEC的Matlab模型并对该模型进行仿真验证。然后以已通过验证的模型为标准,搭建可在MCF5235开发板上运行的C语言模型。最后根据需要将运算较为密集的那部分C语言程序转化为Coldfire芯片的专用汇编语言。3 实验结果及分析在Matlab环境下对AEC进行测试时,可将需要的三

9、部分语音信号同时输入到回声消除器,然后测试回声消除的相关性能。本测试所输入的语音信号波形如图6所示。从上到下依次是远端语音信号y(n)、近端语音信号x(n)和回声信号,其中与之和作为近端输入与y(n)一同构成了回声消除器的两个输入信号。将滤波器的阶数设置为512。即采取64 ms延时的回声消除。通过回声消除处理后所得到的残差信号e(n)的波形如图7所示。从图6和图7的对比可以发现,当只存在远端信号和回声信号,而近端缄默的情况下,回声消除器能够快速收敛并消除绝大部分回声;而当双端都存在信号时,回声消除器能在消除回声的基础上较好的保持近端语音波形。将AEC功能模块集成到用MCF5235开发板搭建的VoIP终端上,来建立两个通信终端的语音通信,即可对AEC功能模块进行实时免提通话测试。4 结束语本文介绍了声学回声消除的原理、声学回声消除器的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论