王森,宮玉琳,王春陽,李明秋,李建建
(長春理工大學電子信息工程學院,長春 130022)
MATLAB加窗濾波在廣義互相關時延估計中的應用
王森,宮玉琳,王春陽,李明秋,李建建
(長春理工大學電子信息工程學院,長春 130022)
針對麥克風陣列廣義互相關聲源定位方法中,麥克風接收到的人聲信號摻雜混響以及噪聲,導致算法求解過程中準確性不高的缺點,通過MATLAB分窗濾波的方法,在算法中對實時接收的聲音信號進行預處理,針對人聲頻率進行改進,提升低信噪比狀況下估計時延的準確性,完成人聲聲源定位的目的,并通過仿真實驗驗證了該方法的有效性。
聲源定位;分窗濾波;廣義互相關
麥克風陣列對語音定位的方法,常常應用在智能機器人、通信、火警救援等眾多領域[1],關于定位算法,當今使用較多的有高分辨率譜估計的定位方法,基于可控波束形成器的定位方法和基于到達時間差(TDOA)的定位方法等。
幾種方法各有優(yōu)劣:(1)基于高分辨率譜估計的定位方法是先求取麥克風陣列采集信號間的相關矩陣的空間譜,然后通過求取相關矩陣,確定出聲源的方向角。由于它要求信號是平穩(wěn)的,而且其不適合做近場聲源定位,導致定位效果下降;(2)基于可控波束形成器的方法是將M個麥克風收到的信號進行加權、延遲后相加,然后通過角度掃描,計算相加后的結果,不同角度時結果不同,當角度和目標方向一致時,會使相加和達到最大值。不同的加權方法,可以得到不同的波束形成方法,但該方法需要聲源和環(huán)境噪聲的先驗知識,這是其重大的缺陷;(3)基于到達時間差(TDOA)的定位方法是通過計算出兩路信號的到達時間差然后通過算法計算出語音的角度和距離[2]。該方法計算量小,定位精度高,不需要太多的先驗知識,因此應用廣泛。但是在實際應用中由于環(huán)境噪聲、房間混響的原因,麥克風收集的聲音信號受到了很大的干擾,尤其在復雜的環(huán)境中,定位的精確度受到了很大的影響。
綜合比較并結合實際,本文使用基于到達時間差(TDOA)的廣義互相關定位方法,針對其缺點,使用MATLAB分窗濾波方法對算法效果進行了改進,并針對實際聲音進行仿真實驗,結果表明,該方法對去除噪聲和定位的性能有很大的提高。
TDOA定位方法研究歷史已經(jīng)很長,在實際中得到了廣泛的應用,該方法主要有兩個步驟,第一步為時延估計,用該方法計算被測聲音信號到達不同麥克風的時間差;第二步為位置估計,利用第一步中得到的值結合麥克風陣列中麥克風具體的幾何位置關系來確定聲源的位置,步驟表示如圖1所示。
圖1 TDOA實驗估計步驟
時延估計方法有許多種,這些方法各有優(yōu)劣,針對實際中不同的狀況有著不同的定位效果。本論文針對實際應用中噪聲干擾強,混響嚴重的情況下的人聲定位,使用了廣義互相關的方法,流程如圖2所示。
圖2 廣義互相關法進行時延估計框圖
圖中(?)·為共軛運算;ψ12(ω)為廣義互相關方法的加權函數(shù);FFT為傅里葉變換;IFF為反傅里葉變換。
1.1 基本互相關方法
假設兩個麥克風M1、M2,其接收到的聲音信號的模型為式(1):
其中,接收到的信號用s(t)表示,兩麥克風的高斯白噪聲用n(t)表示,聲音信號到達麥克風的時間用τ來表示,這樣,τ12=τ1-τ2就是聲音信號的到達時間差值,這里我們假設模型中s(t),n1(t),n2(t)是互不相關的平穩(wěn)隨機變化過程,則x1(t),x2(t)的互相關函數(shù)可以表示為式(2):
將兩信號模型帶入上式中,得式(3):
前面已經(jīng)假設說明,s(t),n1(t),n2(t)之間兩兩互不相關,簡化上式得到式(4):
由自相關的性質得知:當τ-(τ1-τ2)=0時,R12(?)達到最大值,這時,最大值對應的τ值就是兩麥克風的時間延時值。所以,M1、M2兩麥克風之間的到達時間延遲可以表示為式(5):
由此,兩個不同位置的麥克風之間的時延值就可以通過求兩個信號的互相關函數(shù)R12(?)的極大值的方法來獲得。當互相關函數(shù)最大峰值比較尖銳明顯時就可以準確地求出極大點所在的位置,最大峰值越尖銳,越明顯,那么計算出的時延值就越精確。
基本互相關方法是通過互相關函數(shù)的峰值來得到延遲時間差值,這種方法計算量小,而且容易實現(xiàn),但是該方法要求噪聲和噪聲之間都是兩兩不相關的函數(shù),這個前提在實際應用中并不一定能夠實現(xiàn)。并且,該互相關函數(shù)在數(shù)學角度上可看成嚴格的統(tǒng)計平均。當條件為平均遍歷時可以用無窮時間平均值來替代嚴格統(tǒng)計平均,而在實際應用中,一般是用有限定的時間平均值來代替嚴格統(tǒng)計平均,該方法不可以忽略噪聲對相關函數(shù)的影響,會導致互相關函數(shù)峰值變得不明顯,最終降低延時估計的精度。為降低噪聲的影響,產生了廣義互相關算法。
1.2 廣義互相關法
廣義互相關法首先求出兩信號間的互功率譜,并在頻域進行加權。可以白化處理信號和噪音,同時增強信噪比的頻率比重,進而抑制噪音的功率,再反變換到時域,得到廣義互相關函數(shù),使互相關函數(shù)的峰值更加尖銳,提高準確性。具體流程如下:
對式(1)做傅里葉變換,得到x1(t)和x2(t)信號的互功率譜為:
傅里葉變換后對上式進行加權,加權后反傅里葉變換到時域[3],如式(7):
φ12是廣義加權函數(shù),隨實際狀況中噪聲和混響的不同而有不同的選擇,使R12(τ)具有明顯的峰值。表1是幾種常見的加權函數(shù)。
表1 幾種常見的加權函數(shù)
針對這些加權函數(shù),選用了前面三種加權方法,對其定位的效果做了仿真實驗,聲音的波形,是以橫坐標軸為對稱軸上下波動的,所以在MATLAB中使用余弦波形模擬了一定長度的聲音信號并對聲音信號加入了隨機白噪聲,然后對定位的效果做了仿真,在仿真過程中設置延遲時間為0.01秒,仿真結果如圖3~5所示:
(1)PHAT-GCC方法
圖3 PHAT-GCC方法仿真
(2)ROTH-GCC方法
圖4 ROTH-GCC方法仿真
(3)SCOT-GCC方法
圖5 SCOT-GCC方法仿真
在仿真實驗中發(fā)現(xiàn),PHAT-GCC方法估計的延遲為0.0060s,ROTH-GCC方法估計的延遲為0.0360s,SCOT-GCC方法估計的延遲為0.0110s。
可見,這幾種方法在加入了噪聲信號之后,聲音延遲的時間跟加入的延遲時間0.01s相比,均有很大的偏差,會導致定位不準確,并且隨噪聲的情況計算精度也不同,甚至出現(xiàn)了錯誤的聲音延遲計算。為此對聲音信號處理如下。
聲音是隨時間變化的,一般在10ms到30ms內是被視為短時平穩(wěn)的。為了減少頻譜能量泄露,可以采用不同的截取函數(shù)對信號進行截斷,該函數(shù)就稱為窗函數(shù)。分幀加窗處理可以實現(xiàn)語音平穩(wěn)化,一般來說,每秒鐘聲音信號可以分成33~100幀。分幀的一般方法是連續(xù)交疊分段,交疊部分在1/3~1/2之間時,取得的語音分析效果最佳。在這個過程中主要考慮三方面:幀長、交疊長度、加窗函數(shù)選擇[4]。
聲音在分幀加窗處理之后,就可以對其進行傅里葉變換研究了。對幾種廣義互相關不同的加權方法進行了仿真實驗,發(fā)現(xiàn)分幀加窗可以對聲音定位的效果有很大的提升。
本文采用了漢寧窗的加窗方法,漢寧窗又稱升余弦窗,漢寧窗可以看作是3個矩形時間窗的頻譜之和,其使旁瓣互相抵消,消去高頻干擾和漏能。漢寧窗可以使主瓣加寬并降低,旁瓣則顯著減小。其函數(shù)為:
在以上三種加權方法的定位算法中加入了漢寧窗函數(shù),效果如圖6所示:
圖6 三種加權方法在加窗后的互相關效果
在廣義互相關的計算研究中發(fā)現(xiàn),實際環(huán)境中的噪聲和混響嚴重影響了互相關的計算,得到的延遲誤差仍然較大。對于這個問題,本文考慮針對人聲的頻率20Hz~20KHz,使用MATLAB軟件進行濾波處理,去除其它非人聲頻率的無用聲音,從而減小噪聲對互相關方法定位結果的影響。
為了便于觀察效果,采集了一段男性聲波信號,并以此來驗證濾波的效果。原始信號如圖7所示:
圖7 實際采集的男性聲音信號
兩個麥克風接收到的信號如下:
圖8 兩麥克風接收信號
MATLAB可以簡便地構造模擬濾波器函數(shù),常見的方法有貝塞爾(Bessel)模擬濾波器、巴特沃思(Butterworth)模擬/數(shù)字濾波器、切比雪夫(Chebyshev)I型模擬/數(shù)字濾波器等等。
利用MATLAB的構造濾波器函數(shù)的方法,構造了一個貝塞爾(Bessel)模擬帶通濾波器,并且設置了其帶通頻率為20Hz~20KHz,然后將其應用在廣義互相關定位的計算中。
以下是濾波之前與濾波之后的仿真比較:
(1)PHAT-GCC方法
圖9 PHAT-GCC濾波前后效果圖
(2)ROTH-GCC方法
圖10 ROTH-GCC濾波前后效果圖
(3)SCOT-GCC方法
圖11 SCOT-GCC濾波前后效果圖
可以很明顯地看出,經(jīng)過加窗濾波后的聲音信號在進行廣義互相關的聲源定位計算時,其效果比直接進行計算要準確的多,得到的互相關波形中,許多不必要的噪聲干擾已經(jīng)消除,并且其波峰變得突出明顯,聲源定位的效果得到了很大的提高,該結果顯示,加窗濾波在復雜環(huán)境中的定位計算中,有很高的應用價值。
本文簡述了廣義互相關的定位方法,并且對互相關定位的計算中加入了分窗、濾波的方法,針對人的聲音信號,對聲音中摻雜的噪音進行了去除。通過加窗、濾波后的廣義互相關波形與未做任何處理的廣義互相關波形的比較,表明該方法對去除噪聲、平穩(wěn)聲音信號、聲源定位計算有良好的作用。通過該方法,聲源定位結果的精度有很大提高。接下來我們將會對人聲信號中噪聲的去除做進一步的研究。
[1]夏陽,張元元.基于矩形麥克風陣列的改進的GCC-PHAT語音定位算法[J].山東科學,2011,12(24):76-79.
[2]宋志亞.基于麥克風陣列的室內聲源定位方法研究[D].重慶:重慶大學,2012.
[3]梁宇,馬良,納霞,等.基于廣義互相關算法的時延估計[J].計算機科學,2011,10(10A):454-456.
[4]段麗萍.基于TDOA算法的四麥克風陣列三維聲源定位研究[D].蘭州:蘭州理工大學,2014.
Application of MATLAB Windowing and Filtering in Generalized Cross-correlation Time Delay Estimation
WANG Sen,GONG Yulin,WANG Chunyang,LI Mingqiu,LI Jianjian
(School of Electronics and Information Engineering,Changchun University of Science and Technology,Changchun 130022)
Aiming at the shortcomings of the microphone array signal de-noising and the reverberation of the human voice signal received by the microphone in the generalized cross-correlation sound source localization method,this paper uses MATLAB to divide the windowing and filtering method,And the accuracy of estimating the time delay under the condition of low SNR is improved and to complete the task of estimating the localization of the human voice source. Simulation experiments havs been carried out to verify the effectiveness of the proposed method.
sound source localization;windowing and filtering;generalized cross correlation
TN912.3
A
1672-9870(2016)06-0048-05
2016-09-23
王森(1991-),男,碩士研究生,E-mail:wangsen321@126.com
宮玉琳(1983-),男,博士,講師,E-mail:garrygong1983@126.com