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