基于MCU的AEC算法实现

发布者:沈阳阿荣最新更新时间:2012-01-18 关键字:回声消除  LMS算法  NLMS算法  语音判决算法 手机看文章 扫描二维码
随时随地手机看文章

引言

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

本文用于AEC算法实现与研究的硬件平台足以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简要的结构。


MCF5235开发板上运行的C语言模型。最后根据需要,将运算较为密集的那部分C语言程序转化为Coldfire芯片的专用汇编语言。

实验结果及分析

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

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

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

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

结语

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

参考文献
1. 王琦. VOIP 中为保证语音质量所采用的关键技术[J ] 1 中国数据通信, 2002, (2) : 25 291
2. MCF5235 ColdFire Integrated Microprocessor User’s Manual. Freescale Semiconductor, Inc. 2004.
3. Emmanuel C. Ifeachor, Barrie W. Jervis. Digital Signal Processing A Practical Approach, Second Edition. 北京:电子工业出版社 2004.

关键字:回声消除  LMS算法  NLMS算法  语音判决算法 引用地址:基于MCU的AEC算法实现

上一篇:基于SPCA563B芯片的图像识别系统设计
下一篇:基于M68HC08的LIN节点设计与实现

推荐阅读最新更新时间:2024-03-16 12:51

系统的动态提高回声与噪声消除性能
移动手持终端、无线网络、免提设备及其它移动通信系统的语音质量是建立消费者偏好的关键因素。回声和噪声是无线通信固有的毛病。我们需要信号处理技术来解决语音质量问题,确保提供能被市场接受的高质量音频输出。传统方法是在近端或传输路径上采用独立的回声和噪声消除模块,这种方法在周边条件不变的情况下表现出色,但如果周围环境发生了变化,如出现开门或较大的噪声,那么音频系统会很难适应变化,且音频性能也会下降。 新方法则集回声消除、噪声抑制及其它音响增强技术于一体,能够根据环境变化更快地动态调节系统参数。在大多数情况下,消费者还没发现音质出现问题之前,我们就能完成调节。同样,这种新方法实现了更高的集成度,能解决较大的噪声和回声问题,从而能够实现听起来非
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved