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