李皖婷, 李登峰, 張修靖, 張?zhí)戽茫?黃杉杉
(長(zhǎng)安大學(xué)電子與控制工程學(xué)院, 西安 710064)
聲源定位是以時(shí)延值已知與聲速已知作為前提條件,以時(shí)間與速度的關(guān)系式計(jì)算聲源到不同聲傳感器之間的距離[1],通過(guò)多元十字陣列計(jì)算得到目標(biāo)聲源的俯仰角、方位角和距離等位置信息[2]。由于多元十字陣列的幾何特性,在對(duì)聲源進(jìn)行定位的過(guò)程中時(shí)延值估計(jì)的誤差被放大,使定位誤差也隨之增大[3]。因此如何降低在時(shí)延估計(jì)過(guò)程中的誤差對(duì)提高聲源定位的準(zhǔn)確度具有重要意義。
在對(duì)時(shí)延值進(jìn)行估計(jì)時(shí),前期普遍使用的基本互相關(guān)算法具有峰值不凸出導(dǎo)致時(shí)延估計(jì)誤差較大等明顯的缺陷;為了彌補(bǔ)互相關(guān)算法的不足,前人在原有算法的基礎(chǔ)上引入了加權(quán)函數(shù)的概念后得到了廣義互相關(guān)算法,文獻(xiàn)[4]在相位變換(phrase transform,PHAT)加權(quán)函數(shù)的廣義互相關(guān)算法的基礎(chǔ)上,將算法的加權(quán)函數(shù)與相關(guān)噪聲的互功率譜相減,再根據(jù)信噪比的不同賦予其不同的權(quán)值,并添加一個(gè)相干函數(shù)來(lái)構(gòu)造一種新的加權(quán)函數(shù)的時(shí)延估計(jì)算法,該算法在信噪比為0 dB以上時(shí)能有效地抑制噪聲而凸出峰值, 降低了時(shí)延值在估計(jì)過(guò)程中的誤差,但并沒(méi)有對(duì)信噪比在0 dB以下時(shí)的峰值凸出情況進(jìn)行說(shuō)明;文獻(xiàn)[5]基于廣義平滑相干變換(smooth coherent transform,SCOT)算法和廣義HB算法,提出了一種SCOT-HB復(fù)合加權(quán)廣義互相關(guān)算法,在加權(quán)函數(shù)的分子項(xiàng)中加入模平方相干函數(shù)來(lái)提高信號(hào)中高信噪比部分的能量并抑制低信噪比部分的能量,在信噪比不高于0 dB時(shí)減少了時(shí)延估計(jì)過(guò)程中的計(jì)算量,而且提升了時(shí)延估計(jì)的穩(wěn)定性和正確率,但該算法并沒(méi)有對(duì)0 dB以下時(shí)的峰值凸出和時(shí)延估計(jì)情況進(jìn)行解釋說(shuō)明;文獻(xiàn)[6]將最小平均P范數(shù)與加權(quán)函數(shù)相結(jié)合,提出了一種基于最小平均P范數(shù)的時(shí)延估計(jì)算法,該算法在非高斯環(huán)境下具有能有效抑制諧波、收斂性強(qiáng)、時(shí)延估計(jì)精度高和迭代速度快等優(yōu)點(diǎn),但當(dāng)其受到的噪聲信號(hào)強(qiáng)度大于語(yǔ)音信號(hào)強(qiáng)度時(shí)該算法的時(shí)延估計(jì)精度降低。文獻(xiàn)[7] 基于高階累積量和二次相關(guān)算法,提出了一種結(jié)合希爾伯特變換方法的時(shí)延估計(jì)算法,該算法使得峰值更加凸出,均方根誤差更低且能獲得更高的時(shí)延估計(jì)精度,但在2 dB以下的信噪比時(shí)算法失效。
針對(duì)上述問(wèn)題,現(xiàn)提出一種應(yīng)用在低信噪比條件下的指數(shù)形式的廣義二次相關(guān)算法。首先,以已有廣義二次相關(guān)算法為基礎(chǔ),將獲得的功率譜函數(shù)進(jìn)行傅里葉逆變換后,對(duì)結(jié)果進(jìn)行指數(shù)運(yùn)算,得到改進(jìn)算法;然后在由軟件構(gòu)造的加有高斯白噪聲的兩路單頻正弦波信號(hào),分別在不同信噪比下對(duì)廣義互相關(guān)算法、廣義二次相關(guān)算法和改進(jìn)算法進(jìn)行實(shí)驗(yàn)仿真,驗(yàn)證在低信噪比下峰值較凸出的時(shí)延估計(jì)算法;最后選用一段男聲音頻作為信號(hào)源,比較3種算法在進(jìn)行時(shí)延估計(jì)時(shí)所產(chǎn)生的誤差大小,獲得在-10~10 dB低信噪比范圍內(nèi)的較優(yōu)算法。
設(shè)聲傳感器M1和M2接收到的信號(hào)分別為x1(t)和x2(t),假定噪聲n1(t)與n2(t)為互不相關(guān)的高斯白噪聲,且噪聲和聲源信號(hào)s(t)之間也互不相關(guān),表達(dá)式為
x1(t)=α1s(t-τ1)+n1(t)
(1)
x2(t)=α2s(t-τ2)+n2(t)
(2)
式中:α1和α2分別為聲源s(t)傳播到M1和M2后的衰減系數(shù);τ1和τ2分別為聲源s(t)到達(dá)聲傳感器M1和M2所需要的時(shí)間。則以τ=τ1-τ2來(lái)表達(dá)聲傳感器M1和M2接收到聲源信號(hào)的時(shí)間差,即為時(shí)延值。兩路信號(hào)x1(t)、x2(t)的互相關(guān)函數(shù)R12(τ)可表示為
R12(τ)=E[x1(t)x2(t-τ)]
(3)
將式(1)、式(2)代入式(3),可得
R12(τ)=α1α2E[s(t-τ1)s(t-τ2-τ)]+
α1E[s(t-τ1)n2(t-τ)]+
α2E[n1(t)s(t-τ2-τ)]+
E[n1(t)n2(t-τ)]
(4)
由于假定高斯白噪聲n1(t)、n2(t)互不相關(guān),且噪聲n1(t)、n2(t)和聲源信號(hào)s(t)也互不相關(guān),因此式(4)可表達(dá)為
R12(τ)=α1α2E[s(t-τ1)s(t-τ2-τ)]
=α1α2Rss[τ-(τ1-τ2)]
(5)
由自相關(guān)函數(shù)的性質(zhì)可知:當(dāng)τ-(τ1-τ2)=0,即τ=τ1-τ2時(shí),R12(τ)值取最大[8]。因此信號(hào)x1(t)和x2(t)之間的時(shí)延可表示為
(6)
由上述可知,時(shí)延可由目標(biāo)聲源到達(dá)兩個(gè)聲傳感器之間信號(hào)所構(gòu)成的互相關(guān)函數(shù)來(lái)獲得[9]。是以要獲得準(zhǔn)確的時(shí)延值,就必須準(zhǔn)確求解出互相關(guān)函數(shù)的最大值,這就要使其最大峰值十分凸出,但是在互相關(guān)函數(shù)的計(jì)算中,以兩個(gè)高斯白噪聲互不相關(guān)和高斯白噪聲與聲源互不相關(guān)為前提條件,該結(jié)論才會(huì)順利得出。然而現(xiàn)實(shí)環(huán)境中充斥著大量噪聲,假設(shè)難以實(shí)現(xiàn),所以由基本互相關(guān)時(shí)延估計(jì)算法得到的函數(shù)圖形中,其峰值最大處并不凸出,因此準(zhǔn)確計(jì)算出時(shí)延值極其艱難。
廣義互相關(guān)(generalized cross-correlation phrase transformation-β,GCC-PHAT-β)算法[5]是對(duì)基本互相關(guān)算法加以改進(jìn)而得到的算法,將加權(quán)函數(shù)乘以由兩路信號(hào)進(jìn)行傅里葉變換得到功率譜函數(shù)[1],使其達(dá)到增強(qiáng)抗噪性能的目的并使對(duì)時(shí)延進(jìn)行估計(jì)時(shí)的誤差降低。
設(shè)聲傳感器M1和M2接收到的信號(hào)分別為x1(t)和x2(t),假定噪聲n1(t)與n2(t)為互不相關(guān)的高斯白噪聲,且噪聲和聲源信號(hào)之間也互不相關(guān)。
x1(t)=α1s(t)+n1(t)
(7)
x2(t)=α2s(t-τ)+n2(t)
(8)
式中:τ為聲源到達(dá)聲傳感器M1、M2之間的時(shí)延。則兩路信號(hào)x1(t)、x2(t)所構(gòu)成的Rx1x2(τ)為
(9)
將函數(shù)Rx1x2(τ)經(jīng)傅里葉逆變換從頻域轉(zhuǎn)換到時(shí)域,檢測(cè)最大峰值并對(duì)其進(jìn)行時(shí)延估計(jì)。其算法的原理圖如圖1所示。選取的加權(quán)函數(shù)各有差異,算法的公式組成也各有不同,如表1所示。在現(xiàn)實(shí)應(yīng)用中,加權(quán)函數(shù)的選取還需隨著具體應(yīng)用場(chǎng)景的改變而改變[10],使傅里葉逆變換后的函數(shù)最大峰值更為凸出,以便得到高精度的時(shí)延值。
圖1 廣義互相關(guān)算法原理圖Fig.1 Schematic diagram of generalized cross-correlation algorithm
表1 常用的幾種加權(quán)函數(shù)Table 1 Several commonly used weighting functions
|r(w)|2表達(dá)式為
(10)
當(dāng)處在信噪比較低的環(huán)境中或?qū)Χ鄠€(gè)目標(biāo)聲源進(jìn)行定位時(shí),噪聲與聲源之間疊加或多個(gè)聲源疊加產(chǎn)生的問(wèn)題嚴(yán)重影響著GCC-PHAT-β算法進(jìn)行時(shí)延估計(jì)時(shí)的性能;反之當(dāng)處在信噪比較低的環(huán)境中并對(duì)單個(gè)目標(biāo)聲源進(jìn)行定位時(shí),GCC-PHAT-β算法和基本互相關(guān)算法相比易達(dá)成且時(shí)延估計(jì)造成的誤差較低[5]??偠灾谳^低信噪比的環(huán)境中,GCC-PHAT-β算法對(duì)單個(gè)目標(biāo)聲源進(jìn)行定位時(shí)的性能方面和誤差方面都強(qiáng)于基本互相關(guān)算法。
1.3.1 二次相關(guān)時(shí)延估計(jì)算法
為了增強(qiáng)基本互相關(guān)算法在進(jìn)行時(shí)延估計(jì)時(shí)的抗噪性能,在其基礎(chǔ)上進(jìn)行完善后取得二次相關(guān)算法來(lái)有效降低時(shí)延估計(jì)過(guò)程中信噪比下降時(shí)噪聲占據(jù)比例較大對(duì)時(shí)延估計(jì)性能的影響。
x1(t)的自相關(guān)函數(shù)為
R11(τ)=E[x1(t)x1(t-τ)]
=α1α1Rss+α1Rsn1+α1Rn1s+Rn1n1
(11)
x1(t)和x2(t)的互相關(guān)函數(shù)為
R12(τ)=E[x1(t)x2(t-τ)]
=α1α2Rss+α1Rsn2+α2Rsn1+Rn1n2
(12)
此時(shí)R11(τ)與R12(τ)仍是以時(shí)間τ為因變量的函數(shù),對(duì)這兩個(gè)函數(shù)進(jìn)行第二次互相關(guān)運(yùn)算,取得二次相關(guān)函數(shù)RRR(τ)為
RRR(τ)=E[R11(τ)R12(t-τ)]
(13)
用式(11)、式(12)來(lái)表示式(13),假定目標(biāo)聲源信號(hào)與噪聲互不相關(guān),則式(13)可表示為
RRR(τ)=RRS(τ-D)+RRN(τ)
(14)
式(14)中:RRS、RRN分別為聲源、噪聲的二次相關(guān)函數(shù)。假設(shè)噪聲之間互不相關(guān),則RRN=0。從式(14)中可知,在τ=D時(shí),RRS(τ-D)獲得最大值,即二次相關(guān)函數(shù)RRR(τ)獲得最大值,則此時(shí)的τ就為所求的時(shí)延值。而在使用二次相關(guān)算法對(duì)時(shí)延值進(jìn)行估計(jì)時(shí),增加了先對(duì)一個(gè)聲傳感器接收到的聲音信號(hào)施行自相關(guān)運(yùn)算的步驟,以便增強(qiáng)算法的抗噪性能[11]。因此二次相關(guān)運(yùn)算與GCC-PHAT-β算法在信噪比逐漸降低的條件下,二次相關(guān)算法更能進(jìn)行有效的時(shí)延估計(jì),其原理框圖如圖2所示。
圖2 二次相關(guān)算法流程圖Fig.2 Quadratic correlation algorithm flowchart
1.3.2 二次相關(guān)GCC-PHAT-β時(shí)延估計(jì)算法
GCC-PHAT-β算法是將加權(quán)函數(shù)乘以由兩路信號(hào)進(jìn)行傅里葉變換得到功率譜函數(shù),使其算法的抗噪性能得到加強(qiáng),并使對(duì)時(shí)延進(jìn)行估計(jì)時(shí)的誤差降低,是時(shí)延估計(jì)領(lǐng)域里比較典型的算法。但是算法的抗噪性能隨著信噪比的逐漸降低而大幅度減弱,對(duì)時(shí)延值進(jìn)行估計(jì)時(shí)準(zhǔn)確率下降而誤差變大。而在使用二次相關(guān)算法對(duì)時(shí)延值進(jìn)行估計(jì)時(shí),增加了最開(kāi)始就對(duì)一路聲音信號(hào)施行自相關(guān)運(yùn)算的步驟,以便增強(qiáng)算法的抗噪性能。為了增強(qiáng)二次相關(guān)算法在對(duì)時(shí)延值進(jìn)行估計(jì)過(guò)程中的精度,因此將其與加權(quán)函數(shù)相結(jié)合得到二次相關(guān)GCC-PHAT-β算法,達(dá)到降低時(shí)延估計(jì)誤差和提高算法抗干擾能力的目的。
二次相關(guān)GCC-PHAT-β算法[12]起初先對(duì)時(shí)域信號(hào)x1(t)進(jìn)行自相關(guān)運(yùn)算,同時(shí)對(duì)時(shí)域信號(hào)x1(t)、x2(t)進(jìn)行第一次互相關(guān)運(yùn)算,對(duì)分步獲得的兩個(gè)函數(shù)進(jìn)行第二次的互相關(guān)運(yùn)算,二次相關(guān)函數(shù)RRR(τ)由此取得,然后將其與加權(quán)函數(shù)ψPHAT-β相乘得到功率譜函數(shù)GR11R12(w),檢測(cè)經(jīng)傅里葉逆變換后的功率譜函數(shù)所獲得的函數(shù)峰值最大處,計(jì)算時(shí)延值。其原理框圖如圖3所示。
圖3 廣義二次相關(guān)算法原理框圖Fig.3 Principle block diagram of generalized quadratic correlation algorithm
1.3.3 指數(shù)形式的二次相關(guān)GCC-PHAT-β時(shí)延估計(jì)算法
為了解決二次相關(guān)運(yùn)算在信噪比降低時(shí)使得噪聲強(qiáng)度增加,使其對(duì)時(shí)延估計(jì)的誤差變大這種問(wèn)題[13],提出在二次相關(guān)算法的基礎(chǔ)上,再乘以加權(quán)函數(shù)ψPHAT-β,對(duì)其得到的功率譜函數(shù)進(jìn)行傅里葉逆變換,對(duì)其做指數(shù)運(yùn)算并檢測(cè)指數(shù)運(yùn)算后函數(shù)的最大峰值處,從而計(jì)算出時(shí)延值。改進(jìn)算法的原理框圖如圖4所示。
L為傅里葉逆變換指數(shù)運(yùn)算結(jié)果;g為傅里葉逆變換后的相關(guān)函數(shù)圖4 改進(jìn)算法原理框圖Fig.4 The schematic diagram of the improved algorithm
為了對(duì)改進(jìn)算法的時(shí)延估計(jì)性能進(jìn)行驗(yàn)證,利用軟件MATLAB[14]構(gòu)造了兩路單頻正弦波信號(hào),信號(hào)頻率為1 000 Hz、幅值為5。兩路信號(hào)之間延時(shí)1.6 ms,并在其中分別加入高斯白噪聲,采樣頻率50 kHz,采樣點(diǎn)數(shù)1 024。在信噪比分別為-10、-5、0、5、10 dB的環(huán)境下,將GCC-PHAT-β算法、二次相關(guān)GCC-PHAT-β算法[12]以及指數(shù)運(yùn)算形式的二次相關(guān)GCC-PHAT-β算法進(jìn)行實(shí)驗(yàn)仿真,仿真結(jié)果如圖5所示。
由圖5(a)、圖5(b)、圖5(c)可得出,信噪比包含5 dB及以上時(shí),GCC-PHAT-β算法、二次相關(guān)GCC-PHAT-β算法和本文改進(jìn)算法均能夠使函數(shù)的相關(guān)峰值銳化,但其銳化程度不同,相較于其他兩種算法,雖然都能將峰值較為準(zhǔn)確地估計(jì)出來(lái),但本文改進(jìn)算法中兩路信號(hào)相關(guān)函數(shù)的最大峰值非常尖銳,信號(hào)峰值遠(yuǎn)高于旁瓣,該改進(jìn)算法在信噪比0 dB以上時(shí)延估計(jì)性能遠(yuǎn)優(yōu)于其他算法。
對(duì)比圖5(d)、圖5(e)可得,當(dāng)信噪比小于0 dB時(shí),GCC-PHAT-β算法獲得的最大峰值幾乎與噪聲等高,系統(tǒng)難以準(zhǔn)確判斷時(shí)延值是最大峰值對(duì)應(yīng)的時(shí)間值所得還是噪聲所得,時(shí)延估計(jì)誤差顯著增大,二次相關(guān)GCC-PHAT-β算法亦獲取不到較為凸出的峰值最大處,然而在本文改進(jìn)算法中卻相當(dāng)凸出,遠(yuǎn)高于旁瓣。因此信噪比較低時(shí),使用改進(jìn)算法進(jìn)行時(shí)延估計(jì)時(shí)可得到更為精準(zhǔn)的時(shí)延值,對(duì)噪聲有較強(qiáng)的抗干擾能力。
圖5 不同信噪比下的仿真結(jié)果圖Fig.5 Simulation results under different SNR
利用軟件MATLAB對(duì)GCC-PHAT-β算法、二次相關(guān)GCC-PHAT-β算法和指數(shù)形式的二次相關(guān)GCC-PHAT-β算法在對(duì)時(shí)延值進(jìn)行估計(jì)時(shí)產(chǎn)生的誤差進(jìn)行實(shí)驗(yàn),進(jìn)一步檢驗(yàn)其對(duì)時(shí)延進(jìn)行估計(jì)時(shí)的性能。實(shí)驗(yàn)所需信號(hào)源選用男聲音頻,頻帶范圍為50~1 000 Hz,截取其中4 096個(gè)數(shù)據(jù)點(diǎn),兩路信號(hào)的時(shí)間延遲10個(gè)數(shù)據(jù)點(diǎn),比較3種算法在進(jìn)行時(shí)延估計(jì)時(shí)所產(chǎn)生的誤差大小,確定-10~10 dB范圍內(nèi)的最優(yōu)算法。
由圖6可知,3種算法對(duì)時(shí)延值進(jìn)行估計(jì)時(shí)所產(chǎn)生的誤差隨著逐漸降低的信噪比而漸漸增大。在0~10 dB時(shí),3種算法進(jìn)行時(shí)間延遲估計(jì)的誤差無(wú)甚差別,都將接近于0;在-10~0 dB時(shí), GCC-PHAT-β算法、二次相關(guān)GCC-PHAT-β算法的時(shí)延估計(jì)誤差會(huì)隨著信噪比的降低而變大,而改進(jìn)算法的時(shí)延估計(jì)誤差變化較為平緩,誤差值在0~0.1范圍內(nèi)波動(dòng),時(shí)延估計(jì)性能在信噪比較低時(shí)依舊良好。以上結(jié)果表明,在對(duì)時(shí)延值進(jìn)行估計(jì)時(shí),指數(shù)形式的二次相關(guān)GCC-PHAT-β算法的性能在信噪比較低時(shí)優(yōu)于其他兩種算法。
圖6 三種算法的時(shí)延估計(jì)誤差Fig.6 Delay estimation errors of three algorithms
針對(duì)在低信噪比的情況下,GCC-PHAT-β算法和二次相關(guān)GCC-PHAT-β算法性能較差和時(shí)延估計(jì)誤差變大的問(wèn)題,討論了一種對(duì)二次相關(guān)GCC-PHAT-β算法中功率譜函數(shù)進(jìn)行傅里葉逆變換后再進(jìn)行指數(shù)運(yùn)算的改進(jìn)算法,得出如下結(jié)論。
(1)進(jìn)行指數(shù)運(yùn)算的改進(jìn)二次相關(guān)GCC-PHAT-β算法所獲得的最大峰值更為尖銳凸出,使降低時(shí)間延遲誤差的目標(biāo)得以實(shí)現(xiàn)。
(2)在-10~10 dB的信噪比范圍內(nèi),指數(shù)形式的二次相關(guān)GCC-PHAT-β算法的時(shí)延誤差顯著低于另外兩種算法;在低于-10 dB內(nèi),改進(jìn)算法仍具備一定優(yōu)勢(shì)。
總而言之,相對(duì)于GCC-PHAT-β算法和二次相關(guān)GCC-PHAT-β算法,改進(jìn)算法在信噪比較低時(shí)的抗噪性能明顯增強(qiáng),時(shí)延估計(jì)誤差顯著下降。