<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 語音通信中的自適應(yīng)噪聲對消系統(tǒng)設(shè)計

          語音通信中的自適應(yīng)噪聲對消系統(tǒng)設(shè)計

          作者: 時間:2007-08-03 來源:網(wǎng)絡(luò) 收藏
          現(xiàn)實的可能發(fā)生在嘈雜的環(huán)境中,例如工廠中的手機通訊會受到機器轟鳴聲的影響;火車駕駛室中的會受到電機運行和鐵軌碰撞聲的干擾。的統(tǒng)計特性跟現(xiàn)場密切相關(guān),即使同一場合的統(tǒng)計特性也可能會隨時間發(fā)生某種變化,這都要求消噪設(shè)備必須具有噪聲跟蹤的自能力。自信號處理的理論經(jīng)過40多年的發(fā)展和完善,已經(jīng)在許多領(lǐng)域中得到應(yīng)用[1,2]。本文將自信號處理技術(shù)應(yīng)用于的噪聲,通過仿真研究和樣機實驗對軟硬件參數(shù)進行了優(yōu)化,研制了一種適用于手機麥克風、火車駕駛室中使用的自適應(yīng)。

          1噪聲原理

          自適應(yī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],本文的采用遞推方法實現(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 電路

          自適應(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)能力。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();