位置:51电子网 » 技术资料 » 其它综合

基于MCU的AEC算法实现

发布时间:2008/6/5 0:00:00 访问次数:484

引言

较之传统电话,voip语音质量较差。影响因特网语音质量的关键因素之一是回声。要提高因特网的语音质量,就必须在语音传输的过程中进行回声消除的处理。aec是基于自适应算法、可被应用于voip的回声消除技术。

本文用于aec算法实现与研究的硬件平台足以freescale公司的mcf5235为核心的开发板。mcf523x系列是以带有增强型乘加运算单元(emac)的coldfire v2内核为核心,同时结合了增强型时序处理单元(etpu)和10/100m以太网多媒体通道控制模块(mac)的mcu,具有强大的数据处理能力和丰富的接口,能够满足voip电话终端对于数据处理速度以及刚络通信安全性的要求。

回声消除器介绍

声学回声消除原理

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

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

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

自适应fir滤波器

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

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


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

lms和nlms算法

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

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

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

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

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

实现方案

声学回声消除器aec主要包括fir滤波模块、geigle双端语音判决模块、nlms系数更新模块、语音状态控制模块4个部分,图2为aec简要的结构。


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

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

实验结果及分析

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

输入语音信号波形如图4所示,从上到下依次表示远端语音信号y(n)、近端语音信号x(n)和回声信号echo(n),其中,echo(n)与x(n)之和作为近端输入,与y(n)一同构成了回声消除器的两个输入信号。

引言

较之传统电话,voip语音质量较差。影响因特网语音质量的关键因素之一是回声。要提高因特网的语音质量,就必须在语音传输的过程中进行回声消除的处理。aec是基于自适应算法、可被应用于voip的回声消除技术。

本文用于aec算法实现与研究的硬件平台足以freescale公司的mcf5235为核心的开发板。mcf523x系列是以带有增强型乘加运算单元(emac)的coldfire v2内核为核心,同时结合了增强型时序处理单元(etpu)和10/100m以太网多媒体通道控制模块(mac)的mcu,具有强大的数据处理能力和丰富的接口,能够满足voip电话终端对于数据处理速度以及刚络通信安全性的要求。

回声消除器介绍

声学回声消除原理

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

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

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

自适应fir滤波器

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

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


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

lms和nlms算法

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

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

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

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

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

实现方案

声学回声消除器aec主要包括fir滤波模块、geigle双端语音判决模块、nlms系数更新模块、语音状态控制模块4个部分,图2为aec简要的结构。


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

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

实验结果及分析

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

输入语音信号波形如图4所示,从上到下依次表示远端语音信号y(n)、近端语音信号x(n)和回声信号echo(n),其中,echo(n)与x(n)之和作为近端输入,与y(n)一同构成了回声消除器的两个输入信号。

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!