萬(wàn)若楠,孫小廣,張亦勛,劉朝山
(1. 廣州城市理工學(xué)院電子信息工程學(xué)院,廣東 廣州 510800;2. 火箭軍工程大學(xué),陜西 西安 710025)
聲源定位是一種典型的被動(dòng)式目標(biāo)定位技術(shù),僅需要接收來(lái)自定位目標(biāo)的相關(guān)特征參數(shù)如聲音信號(hào)到達(dá)麥克風(fēng)陣列的入射角、時(shí)間差就可以完成目標(biāo)定位,具有極強(qiáng)的隱蔽性。因此,作為典型被動(dòng)式目標(biāo)定位、跟蹤技術(shù)越來(lái)越成為新的研究熱點(diǎn),在軍事、工業(yè)、民用等領(lǐng)域都有廣泛應(yīng)用。如鳴笛抓拍系統(tǒng)[1-3],通過(guò)麥克風(fēng)陣列完成音頻采集,運(yùn)用聲源定位技術(shù)對(duì)鳴笛車輛進(jìn)行定位,最后運(yùn)用高清攝像頭完成抓拍功能。利用聲源定位獲取聲源信息,可以使得視頻會(huì)議中的麥克風(fēng)自動(dòng)跟蹤說(shuō)話人,獲得更加精確的采集語(yǔ)音,實(shí)現(xiàn)語(yǔ)音增強(qiáng)[4];可以進(jìn)一步提高智能機(jī)器人的聲音定位能力、語(yǔ)音交互能力[5,6]。利用聲源定位獲取聲源信息,可對(duì)闖入一些禁區(qū)如核電站、軍事基地等“黑飛”的四旋翼無(wú)人機(jī)定向定位以及實(shí)施有效攔截[7]。目前主要采用的聲源定位算法有三種:基于波束形成(Beam Forming)的定位算法、高分辨率譜估計(jì)(high resolution spectral estimation)的定位算法,以及到達(dá)時(shí)延差(Time Difference of Arrival:TDOA)技術(shù)定位算法[8]。Matlab 2020a相控陣系統(tǒng)工具箱提供了對(duì)應(yīng)的算法,其中TDOA定位算法相對(duì)較簡(jiǎn)單,是實(shí)際應(yīng)用最廣泛的一種定位方法。
在基于TDOA的聲源定位場(chǎng)景中,聲源s(t),環(huán)境中僅存在噪聲,麥克風(fēng)1、2接收到的混合聲音信號(hào)可以被數(shù)學(xué)建模為[9]
x1(t)=s(t)+n1(t)
(1)
x2(t)=as(t-τ12)+n2(t)
(2)
其中x1(t)與x2(t)為麥克風(fēng)接收到的混合聲音信號(hào),s(t)為聲源信號(hào),a為麥克風(fēng)2接收到的聲音信號(hào)的能量相較于陣列中心的衰減系數(shù),τ12為聲音信號(hào)到達(dá)麥克風(fēng)的傳播時(shí)間差,n1(t)與n2(t)為均值為0、方差為1的高斯白噪聲。聲源s(t)與噪聲n1(t)、n2(t)相互獨(dú)立。
在聲源定位系統(tǒng)中,麥克風(fēng)陣列的每個(gè)單元所接收到的目標(biāo)信號(hào)xi(t),(i=1,2,3,4)源于同一個(gè)聲源,顯然,不同通道信號(hào)xi(t)之間具有較強(qiáng)的相關(guān)性。通過(guò)計(jì)算每?jī)赏ǖ佬盘?hào)之間的相關(guān)函數(shù)Rx1x2(τ),確定出兩通道麥克風(fēng)接收信號(hào)之間的時(shí)延[10]。
Rx1x2(τ)=E(x1(t)x2(t-τ))
(3)
將方程(1)、(2)代入方程(3),考慮到聲源s(t)與噪聲n1(t)、n2(t)互不相關(guān),最后化簡(jiǎn)為
Rx1x2(τ)=α1α2Rss(τ-τ12)
(4)
由相關(guān)函數(shù)的性質(zhì)可知,當(dāng)兩個(gè)麥克風(fēng)之間的時(shí)延τ12=τ1-τ2時(shí),Rx1x2(τ)取最大值。為抑制噪聲和混響干擾,采用廣義互相關(guān)-相位變換方法(Generalized Cross Correlation Phase Transformation,GCC-PHAT)。在頻域內(nèi)引入φ12(ω)對(duì)互功率譜進(jìn)行PHAT加權(quán),可銳化Rx1x2(τ)的峰值,提高計(jì)算的精度。依據(jù)互相關(guān)函數(shù)和互功率譜的關(guān)系
(5)
最后利用傅里葉逆變換,可得廣義互相關(guān)函數(shù)Rx1x2(τ)
(6)
針對(duì)不同的應(yīng)用環(huán)境,可選擇不同的加權(quán)函數(shù)[11,12]。
如圖1所示,將四元麥克風(fēng)放置在S1,S2,S3,S4四個(gè)點(diǎn)的位置上,組成空間四面體的麥克風(fēng)陣列,并建立對(duì)應(yīng)的三維直角坐標(biāo)系。
圖1 空間四元麥克風(fēng)陣列
圖2 聲音信號(hào)傳播延時(shí)與距離關(guān)系
(7)
將上述方程組展開(kāi),有
(8)
用方程組(8)中的后三個(gè)方程分別減去第一個(gè)方程,并考慮ri-r1=di1,當(dāng)di1?ri時(shí),有ri+r1≈2r0,因此有
(9)
基于方程組(9)可以求得聲源點(diǎn)P的位置坐標(biāo)(xs,ys,zs)與r0和di1關(guān)系的表達(dá)式
(10)
根據(jù)上述聲源點(diǎn)的坐標(biāo)關(guān)系,可推導(dǎo)出方位角φ和俯仰角θ
(11)
系統(tǒng)硬件主要由聲波信號(hào)采集、處理系統(tǒng)、指向執(zhí)行系統(tǒng)等組成。
在空間直角坐標(biāo)系中放置四個(gè)駐極體麥克風(fēng),分別位于四面體的四個(gè)頂點(diǎn)上,其中麥克風(fēng)1(0.14m,0.14m,0.28m)、麥克風(fēng)2(-0.14m,0.14m,0)、麥克風(fēng)3(-0.14m,-0.14m,0.28m)、麥克風(fēng)4(0.14m,-0.14m,0)。聲音信號(hào)經(jīng)麥克風(fēng)采集、信號(hào)調(diào)理單元放大,放大倍數(shù)為100倍左右(可調(diào))。最后,輸入電腦聲卡,采樣頻率設(shè)為44.1kHz。
由于電腦聲卡是雙通道,每次只能采集兩個(gè)麥克風(fēng)的信號(hào)。為降低成本,在采集聲音信號(hào)時(shí)采用繼電器控制麥克風(fēng)的工作,其中麥克風(fēng)1持續(xù)工作,另三個(gè)由繼電器控制分別依次工作,依據(jù)方程組(7),可以測(cè)得四麥克風(fēng)2、3、4與麥克風(fēng)1之間三組時(shí)延,解算出聲源的位置。顯然,本仿真系統(tǒng)對(duì)靜止、低速運(yùn)動(dòng)聲源的定位具有很好的性價(jià)比。
為了控制兩軸自由度平臺(tái)轉(zhuǎn)動(dòng),采用ULN2803來(lái)驅(qū)動(dòng)28BYJ48型的5V步進(jìn)電機(jī),達(dá)到精確控制角度的目的??刂菩盘?hào)通過(guò)驅(qū)動(dòng)芯片與光耦連接,可以隔離掉電機(jī)的起止電流對(duì)于單片機(jī)的影響,從而提高系統(tǒng)穩(wěn)定性。
為了提高效率、更好控制硬件設(shè)備,采用MATLAB軟件進(jìn)行了原理性仿真驗(yàn)證。具體仿真流程見(jiàn)圖3。
圖3 程序流程圖
由于采集到的信號(hào)具有噪聲,因此需要進(jìn)行過(guò)濾步驟。采用MATLAB中的smooth平滑函數(shù)和帶通濾波器可以實(shí)現(xiàn)對(duì)聲音信號(hào)的濾波。
倒譜參數(shù)(Mel Frequency Cepstral Coefficents:MFCCs)是一種在自動(dòng)語(yǔ)音以及說(shuō)話人識(shí)別中使用最為普遍的特征,從Mel標(biāo)度頻率域中提取出來(lái),這種特征具有更好的魯棒性[14,15]。本文直接采用Matlab 2020a音頻工具箱(Audio Toolbox)提供的數(shù)據(jù)集(Data Set);特征提取(Feature Extraction);分類器訓(xùn)練(Training a Classifier);分類器測(cè)試(Testing the Classifier)及其相關(guān)的支持函數(shù)(Supporting Functions),實(shí)現(xiàn)聲音信號(hào)的識(shí)別。
考慮到影響定向精度的因素主要有聲源點(diǎn)的距離、基陣的尺寸以及時(shí)延估計(jì)誤差等,文章主要從以上幾個(gè)方面對(duì)定向精度進(jìn)行了分析。
圖4是通過(guò)MATLAB軟件仿真得到的時(shí)延估計(jì)圖,由圖中可以看到三個(gè)峰值,分別對(duì)應(yīng)了三個(gè)時(shí)延值,將峰值與程序所設(shè)定的數(shù)值進(jìn)行比較,基本是一致的,即仿真系統(tǒng)成功識(shí)別出聲源信息。
圖4 GCC-PHAT時(shí)延估計(jì)圖
圖5是聲源點(diǎn)分別在x、y、z 三個(gè)方向上距離變化時(shí)對(duì)方位角測(cè)量誤差的影響,仿真中俯仰角取值為35.3°,方位角取值為45°,聲陣臂長(zhǎng)定為0.14m,時(shí)延估計(jì)誤差為15μs,仿真取點(diǎn)間隔設(shè)置為0.05m。
由圖5可見(jiàn),在4到10m的范圍內(nèi),三個(gè)方向上聲源點(diǎn)距離對(duì)方位角誤差的影響不大,整體誤差在±1°左右。聲源點(diǎn)在x方向改變距離時(shí),得到方位角誤差的平均值和標(biāo)準(zhǔn)差分別為:0.31414和0.19745;聲源點(diǎn)在y方向改變距離時(shí),得到方位角誤差的平均值和標(biāo)準(zhǔn)差分別為:-0.31934和0.22537;聲源點(diǎn)在z方向改變距離時(shí),得到方位角誤差的平均值和標(biāo)準(zhǔn)差分別為:-0.00680和0.20864;由這些數(shù)據(jù)可見(jiàn),在x方向上改變聲源點(diǎn)距離時(shí),測(cè)量值與預(yù)測(cè)值較相符合,y方向上的誤差相對(duì)大一些,同時(shí)方位角對(duì)z方向聲源點(diǎn)距離改變最為不敏感。
圖6為麥克風(fēng)陣列臂長(zhǎng)h對(duì)俯仰角測(cè)量誤差的影響,在仿真計(jì)算時(shí)俯仰角選取為35.3°,方位角選取為45°,聲陣臂長(zhǎng)取值為0.14m,仿真取點(diǎn)間隔設(shè)置為0.01m。由圖6可見(jiàn),麥克風(fēng)的陣列臂長(zhǎng)h對(duì)俯仰角精度的測(cè)量有較大影響。當(dāng)麥克風(fēng)陣列臂長(zhǎng)h在0到0.1m的范圍內(nèi)時(shí),俯仰角的仿真誤差比較大接近8°,當(dāng)麥克風(fēng)陣列臂長(zhǎng)h在0.1到1m的范圍內(nèi)變化時(shí),俯仰角仿真誤差明顯減小,整體誤差在±2°左右。仿真結(jié)果進(jìn)一步表明,當(dāng)麥克風(fēng)陣列臂長(zhǎng)h超過(guò)1m時(shí),俯仰角精度也明顯低于0.1到1m時(shí)的精度范圍。總的來(lái)說(shuō),適當(dāng)?shù)柠溈孙L(fēng)陣列臂長(zhǎng)h的取值范圍對(duì)俯仰角估計(jì)精度有明顯效果。
圖6 麥克風(fēng)陣列臂長(zhǎng)h對(duì)俯仰角誤差的影響
本文借助MATLAB信號(hào)處理工具箱、相控陣系統(tǒng)工具箱,實(shí)現(xiàn)有限集合的聲音信號(hào)識(shí)別,并由GCC-PHAT算法確定聲波的時(shí)延,成功實(shí)現(xiàn)了聲源定位定向仿真,并分析了對(duì)定向精度測(cè)量的影響因素,得到了比較理想的結(jié)果。本文提供的聲源定向定位方法最大優(yōu)勢(shì)是實(shí)驗(yàn)硬件簡(jiǎn)單,信號(hào)處理、分析算法豐富且易于實(shí)現(xiàn),為開(kāi)發(fā)、評(píng)估聲源定向定位算法和教學(xué)提供了新的仿真平臺(tái)。