用TMS320C54x DSKplus Board构建声回波对消器

时间:2011-06-17

 

  随着信息技术,特别是通信技术的不断发展,各种满足不同需求的通讯方式不断出现,如可视电话,视频会议等。然而这些语音通信系统都不同程度地有回波的存在,这致使系统的通讯质量及可靠性有所下降,甚至严重时会使通讯崩溃。声回波是指在语音通信中,远端的语音信号通过近端扬声器-房间-近端麦克风路径,又随着近端说话者的声音一同通过通信线路传播到了远端。然而,远端听话者是不愿听到自己声音回波的。

  尤其,当具有免提功能的各种通讯终端在进行通讯时,声回波的存在更加明显,在这种情况下,对于抵消声回波带来的不利影响就变得更加迫切和急需了。声回波对消器就是为此应运而生,用来抵消回波的,它是模拟近端扬声器-房间-近端麦克风路径的冲击响应,从而抵消声回波的。因此本文就是基于此类声回波对消器而展开的讨论。目前,公认有效的回改朝换声抑制方法是采用自适应回声对消。在回波对消的研究过程中,必须有效模拟出讲话者所在空间的声回授通道特性。本文重点介绍利用TI公司开发的廉价的DSKplus套件,采用白噪声激励和谱估计的方法进行房间声回授系统的离线辨识,并取得了良好的实验结果。

 

  1 DSKplus Board介绍

  TI公司为方便用户对DSP系统的开发而提供的开发工具。DSK开发套件和评估板是TI公司的第三方提供的一种简单的系统评估平台,DSK和EVM(评估板)除了提供基本的硬件平台外,还提供完整的代码生成工具和调试工具。用户可以使用DSK或EVM完成需要设计系统的硬件性能、软件算法的评估,为确定系统的软/硬件方案提供可靠的依据。

  DSKplus Board是TI公司研制的一种廉价的、为初学者使用的DSP应用开发板,本开发板中DSP芯片采用TMS320C542.TMS320C542是一种改进哈佛结构、运算速度可达40MIPS的定点DSP.它具有一个程序存储器总线,三个数据存储器总线,17×17位乘法器,一个供非流水线MAC(乘法/加法)使用的专用加法器,一个比较、选择、存储单元(Viterbi加速器)。其片内集成有10K字节的DRAM,2K字节的引导ROM.其外围设备包括有:与主机进行通信的主机接口HPI(Host Port Interface),与其他设备进行通信的时分复用串口和缓冲型串口等等。

  DSKplus Board的模拟通道采用TLC320AC01C芯片,它可同时完成音频频带内辨率为14位的模-数、数-模转换,并集成了带通输入滤波器和输出低通滤波器以及Sinx/x补偿器。其的优点在于它有一个串行通信口,DSP可通过对此串行口以软件编程方式控制其滤波器的频带宽度、截止频率以及采样频率等,并可调整输入输出增益。TLC320AC01C的采样频率可达43.2K,模拟输入增益可达12dB,输出衰减可达12d B.

  DSKplus Board与机通信是利用DSP的HPI进行的。在DSP片内有一容量为2K字节的内存区,地址从1000h到17FFh,这片内存区既可以被DPS访问,也可以被主机访问。在DSKplus Board中,DSP的HPI通过一片GAL22V10与计算机的并口相连,GAL22V10完成计算机并口信号与HPI信号之间的匹配。这样,主机就可通过读写并口的数据端口、状态端口、控制端口来访问DSP的共享内存区,为主机与DSP之间的数据交换提供了很大方便。

  2 系统原理

  测试系统原理见图1.把虚框部分看作系统h(n),系统的输入和输出分别为x(n)和y(n),那么有:

  等式两边同乘x(n-1),并求期望,得:

  式中,Rxx(n)为x(n)的自相关函数,Rxy(n)为x(n)与y(n)的互相关函数。对于白噪声输入激励,x(n)的自相关函数为δ_函数,即:

  Rzz(n)= δ(n)     (3)

  代入式(2),则有:

  h(l)=Rxy(l)    (3)

  因而,当x(n)为白噪声时,只需估计出x(n)、y(n)的互相关函数,即可求出声回授通道的冲激响应。图1中,A/D、D/A以及与主机通信部分均由DSKplus Board完成。

  3 软件实现

 

  整个系统软件包括两部分:DSKplus Board中DSP的运行程序和主机的数据发送、接收、分析处理程序。

  数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是值得称道的两大特色。

  其功能包括:对模拟通道TLC320AC01C进行初始化,完成数据的发送和采集以及与主机之间的数据交换。TLC320AC01C被初始化为:8k/s采样速率,低通滤波器带宽为3.6kHz,输入增益为12dB,输出增益为0dB.数据的发送和采集采用中断方式,由于数据的发送和采集是同步的,所以只需用同一个中断服务程序。每当采集缓冲区(64字节)满后,就把HPI的控制寄存器HPIC的HINT位置"1",主机通过检测这一位的状态来接收和发送数据。

  由于对数据的分析处理需要耗费大量的时间,所以主机程序分为两部分:数据发送、接收程序和后续处理程序。主机程序用C语言编写。为了能在1/8k秒内完成发送两次16位地址、16位数据和读取16位数据,数据速率为64Kbyte/s,加上主机从硬盘读取数据和把数据写入硬盘的时间开销,DPS运行在40MHz时,HPI口的数据传输速率可达8Mbyte/s主机并口的数据速率却达不到上述要求。所以发送数据时,应先把数据读入内存缓冲区,接收数据时,也应先把数据读入内存缓冲区,待数据接收完成后,再写入磁盘,这样才不会因来不及接收而丢失数据。程序流程见图2.

  后续处理程序功能包括:伪随机序列的产生和冲激响应的分析计算。伪随机序更的产生采用克努特算法,即线性同余算法:

  In+1=(J·In+1)modM    (5)

  式中,M为序列的长周期,J由不等式

  J·(M-1)<2的L次方   (6)

  确定。J越大,序列才趋向于更随机,但J的值受机器字长L限制。由式(5)求得的随机序列In,归一化后,在(0,1)区间呈均匀分布,再对序列进行高斯化,并用"3σ原理"进行16位整数化。

  由式(4)知,冲激响应的计算,即是对x(n)、y(n)的互相关函数进行估计。事实上,本文是用有限长数据样本来估计随机信号的互相关函数Rxy(k),即:

  这里,R'xy(k)是Rxy(k)的有偏估计,因为:

  这表明,当k接近N时,R'xy(k)的统计平均与Rxy(k)相差较大。在本文中,当房间冲激响应的有效长度远小于数据样本长度N时,这种偏差可以忽略。为了加快计算式(7),先对x(n),y(n)作FFT变换,X(n)的共轭与Y(n)相乘后,再作傅立叶反变换,即求得冲激响应h(n)。但以实际上h(n)是x(n)和y(n)的线性相关结果。所以,在进行N点FFT变换前,先把x(n)和y(n)的后N/2个点全置零,这样可避免循环相关带来的误差。为减小矩形数据窗带来的谱泄漏,程序中采用Hamming窗截取信号,即:

  w(t)=0.54-0.46cos(2πt/T) (9)

  为减小互相关函数的估计方差而引入的h(n)估计方差,在房间设施固定不变的情况下,用不同随机数种子的随机序列输入而求得的h(n)作平均运算,可有效减小h(n)的估计方差。

  4 实验结果

  典型的测量数据经过以上处理,得到如图所示的结果。图中,直达声是从场声器出来的声音经过直线路径直接到达麦克风的声音,混响声是从扬声器出来的声音经过房间的墙壁、室内物体等多次反射后到达麦克风的声音。在理论上,直达声的响应应该为零,混响以后的响应也应为零。但由于测量时不可避免地存在环境噪声以及算法本身存在的误差,图中这些响应有较小的起伏。可以估计,直达声从扬声器到麦克风之间大约有170个采样点,按8k/s采样纺计算,这段时间为:

  td=170/8000=0.02125s

  实际测量时,扬声器与麦克风相距7.5m,按空气中声波传输速率340m/s计算,这段时间应为0.02206s,由此看出,实际测量与理论基础相符。

 

 


  
上一篇:基于ADSP2186L的语音拨号器的设计与实现
下一篇:TMS320C2812在无刷直流电动机控制中的应用研究

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料