語音通信中的自適應(yīng)噪聲對消系統(tǒng)設(shè)計
1噪聲對消原理
自適應(yīng)噪聲對消系統(tǒng)的原理如圖1所示。他有兩個輸入:原始輸入和參考輸入,參考輸入為噪聲源ν1(n),原始輸入為受噪聲污染的信號x(n)=s(n)+ν0(n)。當噪聲成分ν0(n)與信號s(n)不相關(guān)、與噪聲源ν1(n)相關(guān)時,自適應(yīng)濾波器AF可以根據(jù)誤差信號ej來調(diào)整自身濾波器的系數(shù),使其輸出yj趨于原始輸入中的ν0(n),從而使誤差信號0趨于信號s(n)。
最小均方(LMS)算法以其算法簡單、運算量小、實現(xiàn)容易等優(yōu)點在眾多自適應(yīng)信號處理算法中占有舉足輕重的地位[3,4],本文的系統(tǒng)設(shè)計采用遞推方法實現(xiàn)LMS算法。
自適應(yīng)濾波器AF在j時刻的輸出表示為:
這里的Wj為j時刻的濾波器系數(shù),Xj為j時刻的濾波器輸入。下一時刻(j+1)的權(quán)系數(shù)要根據(jù)當前時刻j的誤差信號ej進行調(diào)整,調(diào)整的遞推算法為:
其中μ為步長因子,他影響系統(tǒng)的收斂性,系統(tǒng)收斂的充分條件為:
μ值要針對語音通信的實際折衷考慮:μ太小時,權(quán)系數(shù)收斂慢,不能適應(yīng)噪聲不平穩(wěn)的場合;μ太大時,對消效果差,甚至引起系統(tǒng)發(fā)散。
2 系統(tǒng)仿真
2.1聲音樣本的獲取
Matlab 7.0的信號處理工具箱提供了從計算機標準音頻設(shè)備實時讀取音頻數(shù)據(jù)的Simulink模塊--From Wave Device,如圖2所示。
圖2中的Signal To workspace將采集的音頻數(shù)據(jù)保存到Matlab的工作空間。作為示例,本文采集了約0.3 s的人聲作為原始信號,采樣率為16 kHz,其時域波形如圖3所示。
2.2 步長因子優(yōu)化
用250 Hz的正弦波模擬現(xiàn)場噪聲,考慮到現(xiàn)場噪聲情況,噪聲幅度的取值應(yīng)與之相當,這里取0.01。將聲音樣本和噪聲疊加作為系統(tǒng)的原始輸入,如圖4所示。
取μ=0.5,采用128階的自適應(yīng)濾波器進行語音消噪,由圖5可以看出經(jīng)過0.03 s對消系統(tǒng)的輸出與原始信號相似。
自適應(yīng)濾波器的Wj,需要迭代多次才能達到理想值即E[ej2]E趨勢于[Eej2)min需要一個過程,鑒于步長因而會顯著影響系統(tǒng)的對消效果,下面重點考察了μ取不同時的學習曲線,如圖所示。
由圖6可以看出:
(1)隨著μ值變大,系統(tǒng)的學習速度明顯變快;
(2)信號非平穩(wěn)時,過大的μ值容易引起系統(tǒng)失調(diào),0.1處的均方誤差明顯變大。因而μ的取值應(yīng)當折衷考率:一方面當噪聲非平穩(wěn)時,系統(tǒng)的學習時間應(yīng)小于一個音的平穩(wěn)時間(約0.1 s);另一方面,盡量減小系統(tǒng)失調(diào)。細對比可以發(fā)現(xiàn):μ=0.25時的學習時間已經(jīng)小于一個節(jié)的平穩(wěn)時間,這比μ=0.1時已經(jīng)大大改善,所以將長因子取為0.25就可以滿足系統(tǒng)需要。
3 系統(tǒng)實現(xiàn)
3.1 電路設(shè)計
自適應(yīng)對消系統(tǒng)的信號處理器采用TI公司的定點DSP-TMS320VC5509,其內(nèi)核時鐘可以穩(wěn)定工作在200 MHz,完成兩次乘累加(MAC)運算僅需要一個指令周期(5 ns)。
系統(tǒng)有兩個麥克風通道,其中一個用于采集原輸入,另一個用于采集參考輸入。兩通道的電路形式完全一致,信號調(diào)理與模數(shù)轉(zhuǎn)換電路如圖7所示。其中16 b Codec AD73311通過同步串行接口與DSP相連。AD73311的參考輸出經(jīng)過AD8058的Buffer 作為麥克風的直流偏置;駐極體麥克風信號采用交流耦合輸入,放大電路的增益為50,以適應(yīng)模數(shù)轉(zhuǎn)換器的動態(tài)范圍。AD733ll采集數(shù)據(jù)會周期性地觸發(fā)接收中斷,通知DSP接收數(shù)據(jù)并做相應(yīng)處理。
3.2軟件設(shè)計
自適應(yīng)濾波對系統(tǒng)的實時性要求很高,因而將權(quán)系數(shù)遞推、濾波、噪聲對消放在采樣中斷服務(wù)程序中完成。軟件設(shè)計采用了DSP專門用于自適應(yīng)濾波的指令LMS,該指令可以在1個指令周期內(nèi)完成2個并行操作:乘累加(MAC)和權(quán)系數(shù)遞推。該指令大大提高了代碼效率,增強了自適應(yīng)信號處理的實時性。
TI-DSP開發(fā)環(huán)境CCS5000提供了相應(yīng)的DSP庫Dsplib的支持,庫中包含自適應(yīng)濾波在內(nèi)的常規(guī)數(shù)字信號處理函數(shù),其中絕大部分為匯編代碼,代碼效率高。庫函數(shù)提供C語言函數(shù)原型聲明,允許C程序直接訪問,降低了數(shù)字信號處理編程的難度。
自適應(yīng)濾波的庫函數(shù)對緩沖區(qū)首地址的對齊要求嚴格,軟件用偽語句"#pragma DATA SECTION()"對cmd文件的存儲器分配進行了特定的約束,從而更加合理地利用DSP芯片的運算資源。
4結(jié) 語
經(jīng)過反復實驗,樣機已經(jīng)能在特定的安裝條件下解決語音通信中的去噪問題。
為保證兩通道的噪聲成分具有足夠的相關(guān)性,麥克風的安裝間距應(yīng)小于20 cm,說話人(信號)距離原始輸入端應(yīng)小于5 cm,否則系統(tǒng)輸出會出現(xiàn)大量未抵銷的不相關(guān)的噪聲分量。
實驗中發(fā)現(xiàn),增加原始輸入端的延遲有利于改善噪聲的對消效果。經(jīng)分析,這與自適應(yīng)濾波器的工作狀態(tài)有關(guān),若參考輸入端的噪聲超前于原始輸入信號(不同步),自適應(yīng)濾波器實際上是一個預測器,預測的難度比濾波要高些且不容易實現(xiàn)。比較簡單的解決方法是對原始輸入端增加軟件延遲,從而提高了對消系統(tǒng)對噪聲源位置的適應(yīng)能力。
評論