摘? 要: 介紹一種新的測量房間聲回授通道特性的實驗方法。用TI(Texas Instruments)公司提供的DSKplus Board開發(fā)套件,實現數據的實時發(fā)送和采集,并把采集的數據送入主機保存,以備主機進行房間聲回波通道特性的分析計算。
關鍵詞: 聲回波對消 DSP芯片 聲回授通道特性
?
為滿足電視電話會議、車載免提電話、熱線電話等高質量話音通信的需要,一種消極的處理方法是進行功率控制,降低功率增益以不產生嘯叫,這樣做是以犧牲音量為代價的。目前,公認最有效的回聲抑制方法是采用自適應回聲對消。在回波對消的研究過程中,必須有效模擬出講話者所在空間的聲回授通道特性。本文重點介紹利用TI公司開發(fā)的廉價的DSKplus套件,采用白噪聲激勵和譜估計的方法進行房間聲回授系統(tǒng)的離線辨識,并取得了良好的實驗結果。
1 DSKplus Board介紹
DSKplus Board 是TI公司研制的一種廉價的、為初學者使用的DSP應用開發(fā)板,本開發(fā)板中DSP芯片采用TMS320C542。TMS320C542是一種改進哈佛結構、運算速度可達40MIPS的定點DSP。它具有一個程序存儲器總線,三個數據存儲器總線,17×17位乘法器,一個供非流水線MAC(乘法/加法)使用的專用加法器,一個比較、選擇、存儲單元(Viterbi加速器)。其片內集成有10K字節(jié)的DRAM,2K字節(jié)的引導ROM。其外圍設備包括有:與主機進行通信的主機接口HPI(Host Port Interface),與其他設備進行通信的時分復用串口和緩沖型串口等等。
DSKplus Board 的模擬通道采用TLC320AC01C芯片,它可同時完成音頻頻帶內分辨率為14位的模-數、數-模轉換,并集成了帶通輸入濾波器和輸出低通濾波器以及sinx/x補償器。其最大的優(yōu)點在于它有一個串行通信口,DSP可通過此串行口以軟件編程方式控制其濾波器的頻帶寬度、截止頻率以及采樣頻率等,并可調整輸入輸出增益。TLC320AC01C的最大采樣頻率可達43.2k,模擬輸入增益可達12dB,輸出衰減可達12dB。
DSKplus Board與主機通信是利用DSP的HPI進行的。在DSP片內有一容量為2K字節(jié)的內存區(qū),地址從1000h到17FFh,這片內存區(qū)既可以被DSP訪問,也可以被主機訪問。在DSKplus Board中,DSP的HPI通過一片GAL22V10與計算機的并口相連,GAL22V10完成計算機并口信號與HPI信號之間的匹配。這樣,主機就可通過讀寫并口的數據端口、狀態(tài)端口、控制端口來訪問DSP的共享內存區(qū),為主機與DSP之間的數據交換提供了很大方便。
2 系統(tǒng)原理
測試系統(tǒng)原理見圖1。把虛框部分看作系統(tǒng)h(n),系統(tǒng)的輸入和輸出分別為x(n)和y(n),那么有:
等式兩邊同乘x(n-l),并求期望,得:
式中,Rxx(n)為x(n)的自相關函數,Rxy(n)為x(n)與y(n)的互相關函數。對于白噪聲輸入激勵,x(n)的自相關函數為δ-函數,即:
代入式(2),則有:
因而,當x(n)為白噪聲時,只需估計出x(n)、y(n)的互相關函數,即可求出聲回授通道的沖激響應。圖1中,A/D、D/A以及與主機通信部分均由DSKplus Board完成。
?
3 軟件實現
整個系統(tǒng)軟件包括兩部分:DSKplus Board中DSP的運行程序和主機的數據發(fā)送、接收、分析處理程序。
DSP程序采用TI公司提供的代數語言編寫,其功能包括:對模擬通道TLC320AC01C進行初始化,完成數據的發(fā)送和采集以及與主機之間的數據交換。TLC320AC01C被初始化為:8k/s采樣速率,低通濾波器帶寬為3.6kHz,輸入增益為12dB,輸出增益為0dB。數據的發(fā)送和采集采用中斷方式,由于數據的發(fā)送和采集是同步的,所以只需用同一個中斷服務程序。每當采集緩沖區(qū)(64字節(jié))滿后,就把HPI的控制寄存器HPIC的HINT位置“1”,主機通過檢測這一位的狀態(tài)來接收和發(fā)送數據。
由于對數據的分析處理需要耗費大量的時間,所以主機程序分為兩部分:數據發(fā)送、接收程序和后續(xù)處理程序。主機程序用C語言編寫。為了能在1/8k秒內完成發(fā)送兩次16位地址、一次16位數據和讀取一次16位數據,數據速率為64KByte/s,加上主機從硬盤讀取數據和把數據寫入硬盤的時間開銷,DSP運行在40MHz時,HPI口的數據傳輸速率可達8MByte/s,主機并口的數據速率卻達不到上述要求。所以發(fā)送數據時,應先把數據讀入內存緩沖區(qū),接收數據時,也應先把數據讀入內存緩沖區(qū),待數據接收完成后,再寫入磁盤,這樣才不會因來不及接收而丟失數據。程序流程見圖2。
?
后續(xù)處理程序功能包括:偽隨機序列的產生和沖激響應的分析計算。偽隨機序列的產生采用克努特算法,即線性同余算法:
式中,M為序列的最長周期,J由不等式
確定。J越大,序列才趨向于更隨機,但J的最大值受機器字長L限制。由式(5)求得的隨機序列In,歸一化后,在(0,1)區(qū)間呈均勻分布,再對序列進行高斯化,并用“3σ原理”進行16位整數化。
由式(4)知,沖激響應的計算,即是對x(n)、y(n)的互相關函數進行估計。事實上,本文是用有限長數據樣本來估計隨機信號的互相關函數Rxy(k),即:
這表明,當k接近N時,的統(tǒng)計平均與Rxy(k)相差較大。在本文中,當房間沖激響應的有效長度遠小于數據樣本長度N時,這種偏差可以忽略。為了加快計算式(7),先對x(n),y(n)作FFT變換,X(n)的共軛與Y(n)相乘后,再作傅立葉反變換,即求得沖激響應h(n)。但以上過程相當于是對x(n)和y(n)作循環(huán)相關,而實際上h(n)是x(n)和y(n)的線性相關結果。所以,在進行N點FFT變換前,先把x(n)和y(n)的后N/2個點全置零,這樣可避免循環(huán)相關帶來的誤差。為減小矩形數據窗帶來的譜泄漏,程序中采用Hamming窗截取信號,即:
為減小互相關函數的估計方差而引入的h(n)估計方差,在房間設施固定不變的情況下,用不同隨機數種子的隨機序列輸入而求得的h(n)作平均運算,可有效減小h(n)的估計方差。
4 實驗結果
一次典型的測量數據經過以上處理,得到如圖3所示的結果。圖中,直達聲是從揚聲器出來的聲音經過直線路徑直接到達麥克風的聲音,混響聲是從揚聲器出來的聲音經過房間的墻壁、室內物體等多次反射后到達麥克風的聲音。在理論上,直達聲的響應應該為零,混響以后的響應也應為零。但由于測量時不可避免地存在環(huán)境噪聲以及算法本身存在的誤差,圖中這些響應有較小的起伏??梢怨烙?直達聲從揚聲器到麥克風之間大約有170個采樣點,按8k/s采樣率計算,這段時間為:
?
實際測量時,揚聲器與麥克風相距7.5m,按空氣中聲波傳輸速率340m/s計算,這段時間應為0.02206s。由此看出,實際測量與理論基本相符。
?
參考文獻
1 Texas Instruments Incorporated.TMS320C54X DSP Reference Set.Volume1,1997
2 Texas Instruments Incorporated.TMS320C54X DSKplus?User's Guide,1997
3 Texas Instruments Incorporated.TLC320AC01C Data Manual,1997
4 王永德.隨機信號分析基礎.成都:四川大學出版社,1993
5 王大凱,潘建壽.現代譜估計方法與應用.西安:西北大學出版社,1991