×
FPGA/DSP > DSP系统 > 详情

TIDSKplusBoard在房间声回授通道特性测量中的应用

发布时间:2020-07-01 发布时间:
|


为满足电视电话电话会议、车载免提电话、热线电话等高质量话音通信的需要,一种消极的处理方法是进行功率控制,降低功率增益以不产生啸叫,这样做是以牺牲音量为低价的。目前,公认最有效的回改朝换声抑制方法是采用自适应回声对消。在回波对消的研究过程中,必须有效模拟出讲话者所在空间的声回授通道特性。本文重点介绍利用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),那么有:

    等式两边同乘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的运行程序和主机的数据发送、接收、分析处理程序。

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),即:

    这里,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,由此看出,实际测量与理论基础相符。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MOS管与简单CMOS逻辑门电路