基于MCU的AEC算法实现

时间:2022-07-13 03:11:16

基于MCU的AEC算法实现

摘要:本文介绍了声学回声消除的基本原理,提出了一种基思卡尔公司MCF5235 Coldfire微控制器的AEC实现方案,在Matlab环境下进行了仿真,并在VoIP电话终端上集成AEC模块测试实时效果。

关键词:回声消除;LMS算法;NLMS算法;Geigle语音判决算法

引言

较之传统电话,VoIP语音质量较差。影响因特网语音质量的关键因素之一是回声。要提高因特网的语音质量,就必须在语音传输的过程中进行回声消除的处理。AEC是基于自适应算法、可被应用于VolP的回声消除技术。  本文用于AEC算法实现与研究的硬件平台是以Freescale公司的MCF5235为核心的开发板。MCF523x系列是以带有增强型乘加运算单元(eMAC)的ColdFire V2内核为核心,同时结合了增强型时序处理单元(eTPU)和10/100M以太网多媒体通道控制模块(MAC)的MCU,具有强大的数据处理能力和丰富的接口,能够满足VoIP电话终端对于数据处理速度以及网络通信安全性的要求。

回声消除器介绍

声学回声消除原理

AEC是以扬声器信号与由它产生的多路径回声的相关性为基础,建立远端信号的语音模型,利用它对回声进行估计,并不断修改滤波器的系数,使得估计值更加逼近真实的回声。然后,将回声估计值从话筒的输入信号中减去,从而达到消除回声的目的。

声学回声消除器的结构。y(n)代表远端语音信号,r(n)代表回声,x(n)是近端语音信号。近端信号x(n)叠加了回声信号r(n)。对回声消除器来说,将远端信号作为一个参考信号,自适应滤波器用它来产生回声的估计值r'(n),从近端带有回声的语音信号中将r'(n)减去,估计出近端输出信号μ(n)。在近端没有说话的情况下,即当x(n)=O时,μ(n)为回声的残差信号e(n)。e(n)的计算方程为:

e(n)=r(n)-r'(n)

(1)

此时,回声的残留信号的理想值应为0。

自适应FIR滤波器

在声学回声消除器里,横向结构的自适应滤波器通过采用参考信号来产生回声的副本,如果这个横向结构的自适应滤波器的转换函数与回声通道的函数模型一致,那么,回声的副本与回声就应该是一致的,通过两者的抵消就可以达到消除回声的目的。

FIR滤波器的最主要特点是没有反馈回路,是一种非递归系统,它的冲激响应h(n)是一个有限长序列。下面的方程被用来计算FIR滤波器的输出:

自适应FIR滤波器是根据上一时刻的近端输出信号μ(n)以及远端语音信号y(n),通过某种自适应算法来估算当前时刻FIR滤波器的系数ak(n+1)。

LMS和NLMS算法

在输入信号和参考信号都是平稳随机信号的情况下,自适应滤波器的均方误差E[e(n)]性能曲面是滤波器加权系数钆的二次函数。其系数修正的算法通常是采用使均方误差最小的最优化求解算法,如最速下降算法。

由于实际的梯度值只能根据观测数据估计,因此,LMS算法提出的一个基本思想就是用平方误差来代替均方误差。它是对基本的最速下降算法的改进,其算法迭代公式为:

ak(n+1)=ak(n)+2μe(n)×y(n)

(3)其中,y(n)为输入信号,μ为迭代步长常量。

规一化LMS(NLMS)算法被用来在LMS自适应滤波器方程里修正FIR滤波器的系数。NLMS算法与LMS算法几乎是一样的,唯一的不同是在NLMS算法中用可变的步长控制因子代替了LMS算法中的常量因子,其目的是加快算法的收敛速度。其算法迭代公式为:

其中μ应由试验来确定。μ的选取至关重要,为了确保收敛,必须满足0<μ<2。本方案中的自适应算法就采用了NLMS。

实现方案

声学回声消除器AEC主要包括FIR滤波模块、Geigle双端语音判决模块、NLMS系数更新模块、语音状态控制模块4个部分,AEC简要的结构。

Freescale公司的硬件开发平台是以Coldfire系列MCF5235为核心。该系列MCU支持标准C语言以及其专用的汇编语言。最终在该平台上运行的功能模块需要使用C语言或者专用汇编语言。AEC的开发以及移植过程如图3所示。

首先,搭建AEC的Matlab模型并对该模型进行仿真验证。然后,以已通过验证的模型为标准,搭建可在MCF5235开发板上运行的C语言模型。最后根据需要,将运算较为密集的那部分C语言程序转化为Coldfire芯片的专用汇编语言。

实验结果及分析

在Matlab环境下,对AEC进行测试。将需要的三部分语音信号同时输入到回声消除器,测试回声消除的相关性能。

输入语音信号波形,从上到下依次表示远端语音信号y(n)、近端语音信号x(n)和回声信号echo(n),其中,echo(n)与x(n)之和作为近端输入,与y(n)一同构成了回声消除器的两个输入信号。将滤波器的阶数设置为512,即采取64ms延时的回声消除,通过回声消除处理得到残差信号e(n),其波形。

对比中可以发现,当只存在远端信号和回声信号,近端缄默的情况下,回声消除器能够快速收敛并消除绝大部分的回声;当双端存在信号,回声消除器能在消除回声的基础上较好地保持近端语音波形。

将AEC功能模块集成到以MCF5235开发板搭建的VoIP终端上,建立两个通信终端的语音通信,可对AEC功能模块进行实时免提通话测试。

Silicon Laboratories推出100MIPS的8位MCU

目前,各个应用领域对处理器的处理能力要求都在不断提高,与此同时,8位MCU以其性价比优势牢牢占据着大量的市场份额(目前约为60亿美元)。而进一步提高其性能并缩小体积也是多数制造商关注的焦点。近期,Silicon Laboratories(芯科实验室)公司面向工业和消费类市场推出了一款具有较高效能的8位MCU――C8051F360。该芯片可提供100MHz的处理能力,而其封装尺寸只有5mm×5mm。100MIPS的运算效能甚至可以使C8051F360替代大多数16位MCU。

C8051F360内部包括1组双周期16×16乘加器(MAc)、1个精准度 为2%的内部振荡器和32kB可在线烧录闪存。它还拥有可配置式I/O引脚和各种通信外设,包括无石英晶体的UART。SPI和SMBus。这款微控制器的功能密度能让设计工程师缩小最终产品的体积并提高效能。C8051F360还整合了精准模拟功能以及1组线性10位200ksps SAR ADC和可编程DAC,用来提供测量与控制功能。C8051F360与C8051F310系列的引脚兼容,设计工程师不需要开发多种硬件平台就能利用这些解决方案提供加强型和低成本产品。

此外,Silicon Laboratories还为C8051F360提供了低成本开发工具,设计工程师可以利用它们立即展开工作。C8051F360DK是一套功能完整的开发套件,包含嵌入式系统开发所需的全邵硬件与软件。这组开发套件包括目标板、一套可直接连接C8051F360内建调试电路的整合开发环境(IDE)和Keil C51工具链软件试用版。SiliconLaboratories还提供了USB Stick形的ToolSfickSK子卡,可作为便于携带与使用的开发工具。

“Silicon Laboratories已发展出一系列功能密集和先进的小型8位微控制器。”Silicon Laboratories MCU产品亚太区营销经理Len Smiler表示,“随着C8051F360系列的推出,设计工程师就能在过去需要高成本的16位MCU和DSP的应用中使用8位MCU了。C8051F360系列最适合必须在嵌入式系统中同时执行参数取样、信息处理和通信功能的应用。”

结语

本文介绍了声学回声消除的原理,并介绍了声学回声消除器的设计以及AEC在基于MCF5235开发平台的VoIP语音通信终端上的集成。该AEC实现了包括语音检测、自适应滤波等语音处理算法。程序执行的实时性良好。通过Matlab模型的仿真和通话主观测试的结果,证明该方案实现的声学回声消除器能够满足网络通信对语音的要求。

参考文献

1.王琦.VOIP中为保证语音质量所采用的关键技术[J]1中国数据通信,2002,(2):25291

2.MCF5235 ColdFire IntegratedMicroprocessor User’s Manual.FreescaleSemiconductor,Inc.2004

3.Emmanuel C.Ifeachor,Barrie W.Jervis.Digital Signal Processing A Practical Approach,SecondEdition.

北京:电子工业出版杜2004.

上一篇:8位高速微控制器IP软核的设计与实现 下一篇:物流终端多串口扩展的设计