为满足电视电话电话会议、车载免提电话、热线电话等高质量话音通信的需要,一种消极的处理方法是进行功率控制,降低功率增益以不产生啸叫,这样做是以牺牲音量为低价的。目前,公认最有效的回改朝换声抑制方法是采用自适应回声对消。在回波对消的研究过程中,必须有效模拟出讲话者所在空间的声回授通道特性。本文重点介绍利用TI公司开发的廉价的DSKplus套件,采用白噪声激励和谱估计的方法进行房间声回授系统的离线辨识,并取得了良好的实验结果。
1 DSKplus Board介绍
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),那么有:
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的运行程序和主机的数据发送、接收、分析处理程序。
DSP程序采用TI公司提供的代数语言编写,其功能包括:对模拟通道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),即:
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,由此看出,实际测量与理论基础相符。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』