0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DSP系统的自适应回声消除模块的设计

电子设计 来源:郭婷 作者:电子设计 2019-08-07 08:11 次阅读

引言

常见的DSP系统的结构主要由低通滤波器放大器模数转换器ADC)、数字信号处理器数模转换器DAC)五个模块构成。DSP系统设计步骤如图1所示。

DSP系统的自适应回声消除模块的设计

1 系统架构

本文回声消除模块的总体设计如图2所示。

DSP系统的自适应回声消除模块的设计

如图,本文设计的DSP系统可以划分成信号输入模块、算法实现模块和信号输出模块。

信号输入模块,可分为主通道和参考通道。DSP在处理算法时需要用到远端语音输入信号和近端语音输入信号。主通道和参考通道分别采集近端语音信号和远端语音信号,经过处理转换成数字信号,同时送入到DSP中进行处理。

算法实现是自适应滤波器设计的核心部分。本文采用型号为TMS320F28335的高速信号处理器。已经转换成数字信号的主通道和参考通道信号在高速信号处理器中按照自适应滤波算法进行处理,处理完成以后送到系统的输出模块。在信号的输出模块,通过数模转换器得到模拟信号,再经过低通滤波,送给扬声器输出,由此得到经过回声消除以后的语音信号。

本文设计的自适应回声消除模块的程序设计流程图如图3所示。在各个子模块的程序设计中,通过调用集成在CCS开发平台中的芯片支持库,可以有效地简化开发流程,极大地提高工作效率。

DSP系统的自适应回声消除模块的设计

2 软件设计

CCS(Code Composer Studio)是美国德州仪器公司Texas Instrument,简称TI)推出的代码开发和调试软件。

自适应滤波算法的软件实现流程框图如图4所示。根据滤波器系数迭代数据以后,并不需要根据计算误差e(n)来判断计算得到的数据是否输出。而是不管得到的数据和目标数据的误差有多大,都把该数据输出,所以输出的数据有个收敛的过程,刚开始误差比较大,往后就稳定在一个较小的误差范围以内。

在CCS开发平台上搭建好开发环境,选择目标配置对象为TMS320F28335,用C语言编写实现LMS自适应算法的核心程序代码如下:

for(i=0;i《n;i++)《 p=“”》

{

sum = 0.0f;

for(j=0;j《m;j++)《 p=“”》

{

sum+=h[j]*x[i+j];

}

y[i]=sum;

error=d[i]-y[i];

for(j=0;j《nh;j++)《 p=“”》

{

h[j]=h[j]+(miu*error*x[i+j]);

}

}

首先对程序中需要用到的各个参数进行初始化,取每一次需要处理的信号序列长度N=512,滤波器的阶数M=4,步长因子miu=0.0001。用MATLAB录制一段语音从参考通道输入,作为回声消除算法的远端参考语音。同时把这段语音从主通道输入,在DSP处理器中把它缩小为原来的三分之一,作为近端回声信号。

DSP系统的自适应回声消除模块的设计

视频音频数据流控制中经常用到一种被称为“乒乓操作”的处理机制。它的最大特点是接收数据流的缓存单元按照一定规律有节拍的切换,这样数据就传送的很顺畅,不会丢失,而且没有任何停顿,不会阻塞。这种方式非常适合音频和视频数据的流水线处理。在每一段单位时间内,处理器处理数据的时间不能过长,否则本段数据还没有处理完成,下一段数据就已经来了,这样就会导致数据的丢失和错乱。通过DMA实现“乒乓操作”的流程如图5所示。

DSP系统的自适应回声消除模块的设计

3 双端检测(DTD)

双端通话指近端和远端同时说话的情况,此时远端、近端语音信号不相关,近端语音在算法处理时会表现成一个干扰信号,使得自适应滤波器性能变差,甚至发散。因此,为了使滤波器适应双端通话的情况,需要在回声消除系统中添加一个双端通话检测器(Double-Talk Detector,DTD)。通过它来区分单端和双端通话,如果不存在双端通话时,滤波器就实时更新其系数,反之,滤波器系数则停止更新。

DSP系统的自适应回声消除模块的设计

目前,最常见的DTD算法有互相关比较法和能量比较法。

4 硬件设计

DSP系统的自适应回声消除模块的设计

具体硬件设计如图6所示。整个硬件系统以TMS320F28335型号的DSP为核心,通过编码器TLV320AIC23b与外部进行语音信号的交换(TLV320AIC23b实现语音信号的模拟-数字,数字-模拟的转换工作)。TMS320F28335对TLV320AIC23b的控制通过I2C总线实现,其数据交换通过多通道缓冲端口(McBSP)来完成。JTAG通过仿真器连接DSP与上位机,以实现程序的下载、调试。其他模块与DSP构成能正常工作的最小系统。DSP与编码器的具体连接如图7所示。TLV320AIC23b数字音频接口与DSP之间的数据传输时序如图8所示。

DSP系统的自适应回声消除模块的设计

在音频信号的输入端和输出端各加了一级滤波器,滤除高频信号的干扰。共有两个通道,分别获取远端参考信号和近端回声信号。

为了使编码器能够正常工作,需要对它内部的寄存器进行配置,配置是通过控制接口(I2C接口)来完成的。对应的配置命令字的前7位表示的是寄存器地址,后9位代表对寄存器的配置内容。该音频芯片提供了11个配置寄存器,如表1所示。

DSP系统的自适应回声消除模块的设计

在本DSP系统设计中,采用+5 V的稳压直流输入作为外部引入电源,这样首先就满足了模拟电路供电需求,并且通过LM117DT3-3.3电源转换芯片将5 V转换为3.3 V来给I/O引脚及部分外围电路,再通过LM117DT3-1.8电源转换芯片将3.3 V主电源转换为1.8 V,给DSP内核供电。

5 回声消除系统调试

为了验证本文所设计的自适应滤波器的功能,设计了一个模拟实际通话环境的回声消除实验。

场景布置:房间A作为远端房间,房间B作为近端房间,两个房间的参与者利用局域网传输工具FeiQ进行语音通信。A说话的声音被计算机的麦克风捕获到,通过网络传到B房间的计算机中,此时声音从计算机中分为两路输出,其中一路直接输入到回声消除模块的参考通道,另一路则通过扬声器输出,作为远端参与者传输给近端参与者的声音信息。扬声器出来的声音和近端参与者说话的声音通过麦克风进入回声消除模块的主通道,主通道和参考通道的声音经过DSP处理后输出,输出的声音通过电脑的麦克风再经过网络传输给A房间的远端参与者。

6 结果分析

根据原理图设计PCB,最后设计好的完整的回声消除模块如图9所示。模块中包含两个输入通道,两个输出通道,一个电源接口,一个调试接口。按照上文所述的方式搭建测试环境。

DSP系统的自适应回声消除模块的设计

第一次测试,不加回声消除算法,用录音软件录下回声大小,如图10所示。

DSP系统的自适应回声消除模块的设计

在相同条件下,加入回声消除算法,用录音软件录得的回声波形如图11。

DSP系统的自适应回声消除模块的设计

通过波形曲线,测得不加回声算法和加入回声算法的回声幅度大小,经过计算,回声抑制比为26 dB,对回声起到了很好的抑制作用,增强了近端和远端说话者的通话体验。

从图11中可以看出,回声的波形仍然存在,所以回声只是被抑制了,并没有被彻底消除。这是因为实际的环境没有仿真环境理想,DSP的精度限制了回声算法的收敛精度,使得最后的收敛曲线会在一个很小的范围内波动;另一方面,算法的性能也影响收敛精度,步长因子和权系数迭代公式决定了误差的波动范围。所以,提高回声抑制比的最主要方式是提高DSP的运算精度和算法的性能。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    552

    文章

    7958

    浏览量

    347849
  • 放大器
    +关注

    关注

    143

    文章

    13522

    浏览量

    212849
  • 滤波器
    +关注

    关注

    160

    文章

    7694

    浏览量

    177393
收藏 人收藏

    评论

    相关推荐

    speex中的回声消除模块如何移植到dsp

    speex回声消除在CCS中运行出现下面的错误:DescriptionResourcePathLocationType#5could not open source file "
    发表于 08-22 14:44

    基于FPGA的多路回声消除算法的实现

    基于FPGA的多路回声消除算法的实现中文期刊文章作  者:尹邦政 朱静 毛茅作者机构:[1]广州广哈通信股份有限公司,广东广州510663;[2]广州大学实验中心,广东广州510006出 版 物
    发表于 05-08 10:23

    如何在PFGA中实现高速的自适应滤波器?

    自适应滤波器一直是信号处理领域的研究热点之一,经过多年的发展,已经被广泛应用于数字通信、回声消除、图像处理等领域。自适应滤波算法的研究始于20世纪50年代末,Widrow和Hoff等人
    发表于 08-20 08:01

    LabVIEW开发自适应降噪ANC

    ,使用自适应滤波器来执行噪声消除回声消除。 项目采用LabVIEW图形化开发环境和Compact RIO硬件执行实时自适应降噪。典型的
    发表于 11-30 19:38

    长时延环境中的回声消除器设计

    本文讨论了回声消除器的基本原理以及软件环境中声音信号的时延特性,并提出了一种适用计算机软件实现回声消除器的改进的时延估计算法。实验结果表明该算法增强了
    发表于 08-28 10:00 26次下载

    自适应小波变换扩频数字水印检测DSP系统

    在分析了自适应小波变换和扩频特性的基础上,提出一种基于自适应小波变换的扩频数字水印算法,并利用DSP系统实现了该数字水印算法。对用DSP实现
    发表于 07-27 16:03 8次下载

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

    介绍了一种用于IP电话中的自适应回声消除器,采用归一化最小二乘(NLMS)自适应滤波器实现,包括语音模式检测器和粗略时延估计器。最后以TI公司的TMS320C5402
    发表于 05-06 20:22 2440次阅读
    IP电话<b class='flag-5'>回声</b><b class='flag-5'>消除</b>器的设计及其<b class='flag-5'>DSP</b>实现

    如何发现与消除视频会议中的回声

    如何发现与消除视频会议中的回声  回声是电视会议中最常见的声音问题之一。在会议电视系统的调试过程中,回声的发现与
    发表于 02-21 09:53 3203次阅读

    基于改进LMS自适应并行多址干扰消除

    在介绍码分多址通信系统中2种自适应多址干扰消除算法的基础上,提出一种变步长的自适应并行干扰消除算法。并通过仿真计算,完成了该算法的收敛性、稳
    发表于 05-28 16:24 25次下载
    基于改进LMS<b class='flag-5'>自适应</b>并行多址干扰<b class='flag-5'>消除</b>

    基于DSP的异步电机自适应模糊PID控制的设计

    基于DSP的异步电机自适应模糊PID控制的设计-2009。
    发表于 04-05 10:33 10次下载

    如何使用VSS-LMS算法进行自适应回声消除算法的研究与实现

     自适应回声消除器是利用自适应滤波器来消除多媒体通讯中的回声信号,是多媒体领域中一个非常活跃的研
    发表于 12-18 11:32 17次下载
    如何使用VSS-LMS算法进行<b class='flag-5'>自适应</b><b class='flag-5'>回声</b><b class='flag-5'>消除</b>算法的研究与实现

    LMS自适应滤波器的MATLAB仿真和DSP实现

    LMS自适应滤波器的MATLAB仿真和DSP实现
    发表于 06-09 10:47 64次下载

    自适应反馈消除 3

    自适应反馈消除 3
    发表于 11-15 19:50 0次下载
    <b class='flag-5'>自适应</b>反馈<b class='flag-5'>消除</b> 3

    Ezairo(R) 预配置套件自适应反馈消除

    Ezairo(R) 预配置套件自适应反馈消除
    发表于 11-15 20:09 0次下载
    Ezairo(R) 预配置套件<b class='flag-5'>自适应</b>反馈<b class='flag-5'>消除</b>器

    什么是回声?什么是回声消除?什么是噪音抑制?什么是智能降噪?

    什么是回声?什么是回声消除?什么是噪音抑制?什么是智能降噪? 回声是指声波在环境中反射后到达听者耳朵的现象。在大部分情况下,我们都不会感受到回声
    的头像 发表于 03-14 15:46 1216次阅读