錢隆彥,陳衛(wèi)松,肖夢迪
(安徽師范大學 物理與電子信息學院,安徽 蕪湖 241000)
時延估計在聲源定位領域的研究及應用日益廣泛。 在計算時延的方法中,基于到達時間差的定位方法因其計算量小、定位耗時少等特點,被廣泛應用[1]。 早期計算時延算法主要是廣義互相關算法[2-3],近些年二次相關算法和廣義二次相關算法在時延計算中得到了應用[4-5]。 茅惠達等人基于傳統(tǒng)廣義互相關算法,利用加權函數(shù)增強了信號中信噪比(SNR)較高的頻率,從而提高了時延估計精度,但在低SNR 情況下,抗噪聲性能下降[6]。 唐娟等人將兩路信號自相關和互相關的結(jié)果再做一次相關運算,得到二次相關函數(shù),算法在高SNR 時增大了信號的相對值,降低了噪聲的干擾,但在低SNR 環(huán)境下獲取時延估計精度不高[7]。 朱超等人基于廣義二次相關算法,將二次相關函數(shù)與加權函數(shù)相乘,并用希爾伯特算法銳化峰值,提高了時延準確度,但低SNR 情況下,峰值受噪聲干擾大,峰值銳化不明顯[8]。 本文提出一種基于廣義二次相關的時延估計改進算法,在低SNR 情況下,抗噪聲性能和正確率下降緩慢,提高了時延估計的精度與抗噪聲性能。
廣義二次相關時延估計算法的流程如圖1 所示。 先對接收信號1 做自相關運算,同時對兩路接收信號做互相關運算,然后對自相關和互相關運算的結(jié)果再次做相關運算,得到二次相關函數(shù)[9],再把二次相關函數(shù)與廣義加權函數(shù)相乘,得到廣義二次相關函數(shù),最后進行峰值檢測,從而得到時延估計值[10-11]。
在沒有混響,且相關噪聲較弱的情況下,2 個麥克風接收到的信號可表示為:
式中,s(n) 為接收到的聲源信號,n1(n),n2(n) 為白噪聲,τ1,τ2分別為信號從聲源到達2 個麥克風的時間,信號到達2 個麥克風的時間延遲為τ12= τ1- τ2。
將兩路信號的自相關和互相關函數(shù)做二次相關運算,得到二次相關函數(shù),可以表示為:
式中, R11(τ) 為自相關函數(shù), R12(τ) 為互相關函數(shù),RRR(τ) 為二次相關函數(shù)。
假設噪聲和信號互不相關,將式(3)和式(4)代入式(5)可得:
式中,RRS代表純凈信號做二次相關,RRN代表噪聲做二次相關,由相關函數(shù)的性質(zhì)可知,當τ = τ12時,RRR取最大值,τ12為2 個麥克風之間的時間延遲。
廣義互相關法是將互相關函數(shù)變換到頻域,然后對其互功率譜進行加權,抑制噪聲對信號的影響,再反變換到時域,得到廣義互相關函數(shù)。
式中,Gx1x2(w) 為接收信號的互功率譜, φ12(w) 為加權函數(shù)。
本文所用的加權函數(shù)為SCOT(平滑相干加權函數(shù)):
式中,Gx1(w),Gx2(w) 為兩路信號的功率譜。 平滑相干方法首先利用平滑相干加權函數(shù)對信號功率譜進行白化處理,然后計算麥克風接收到的兩路信號的互功率譜。 當SNR 較大的情況下,SCOT 方法不依賴聲源信號的能量,可以有效克服信號的波動對時延估計的影響[12-13]。
二次互相關在基本互相關基礎上發(fā)展,在高SNR 情況下,信號強度大于噪聲強度,二次相關運算增加了信號強度,所以在高SNR 情況下,二次互相關算法優(yōu)越于基本互相關算法。 但是隨著SNR降低,噪聲強度大于信號強度,二次相關運算增加了噪聲強度,因此在低SNR 情況下,二次互相關法進行時延估計的正確率下降。 在廣義二次互相關算法的基礎上,把二次互相關函數(shù)做指數(shù)運算,再乘以加權函數(shù),最后把傅里葉逆變換得到的互相關函數(shù)做高次方運算,可以讓峰值突出,再進行峰值檢測,從而得到時延估計值。 其算法原理框圖如圖2 所示,虛框內(nèi)為算法新增部分。
圖2 廣義二次互相關加權函數(shù)改進算法流程圖Fig.2 Flow chart of improved algorithm of generalized quadratic cross correlation weighting function
圖2 中右上角虛框內(nèi)的公式可表示為:
式中,l 為二次相關指數(shù)運算結(jié)果,c 為SNR。
圖2 中右下角虛框內(nèi)的公式可表示為:
式中,h 為傅里葉逆變換指數(shù)運算結(jié)果,g 為傅里葉逆變換后的相關函數(shù)。 為了便于分析式(9)的函數(shù)規(guī)律,取二次互相關值RRR為2.0,2.2,2.4,得到一簇輸出量l 隨SNR 變化的曲線如圖3 所示。
圖3 式(9)中l(wèi) 值隨SNR 變化關系Fig.3 Relationship between L value and SNR in equation (9)
由圖3 可見,在SNR=0 時,指數(shù)為1,運算結(jié)果為二次相關函數(shù)本身;當SNR<0 時,指數(shù)小于1,二次相關函數(shù)類比于開根號運算,此運算可以隨SNR變化壓縮噪聲和信號的幅度。 雖然降低了噪聲強度,但是噪聲和信號的壓縮比例是一樣的,即此時噪聲強度還是高于信號強度,由于噪聲隨機,可以通過對信號分幀,并對每幀信號進行多次時延計算求平均值,降低隨機噪聲對計算結(jié)果的影響,從而增強主峰值;當SNR>0 時,二次相關函數(shù)可類比于平方運算,原理與二次相關函數(shù)相同。 通過式(9)的運算,函數(shù)峰值鈍化,式(10)的高次方運算可增大主峰和次峰的相對值,起到銳化峰值的作用。
為了驗證改進算法的時延估計性能,對改進算法進行仿真實驗。 仿真環(huán)境不考慮混響的影響。 信號源為NOIZEUS 實驗室純凈語音庫里編號為fdnc0.9 的測試語音,采樣頻率為8 kHz,每幀采樣點為2 000,延時點數(shù)為20。 信號中添加平穩(wěn)高斯白噪聲。 假設信號與噪聲、噪聲與噪聲都是相互獨立的,當SNR=5 dB 時,廣義二次相關算法和改進的廣義二次相關算法結(jié)果如圖4 所示;當SNR=-5 dB時,廣義二次相關算法和改進的廣義二次相關算法結(jié)果如圖5 所示。
圖4 SNR=5 dB 時廣義二次相關和改進算法時延估計比較Fig.4 Comparison of generalized quadratic correlation and improved algorithm for time delay estimation when SNR=5 dB
圖5 SNR=-5 dB 時廣義二次相關和改進算法時延估計比較Fig.5 Comparison of generalized quadratic correlation and improved algorithm for time delay estimation when SNR=-5 dB
從圖4 可以看出,在SNR=5 dB 時,2 種算法峰值突出,都可以得到準確的時延值,但改進的廣義二次相關算法得到的最大值和其他次峰值相差更大。
從圖5 可以看出,在SNR=-5 dB 時,廣義二次相關法的相關函數(shù)峰值受周期信號影響較大,峰值不明顯,而改進算法具有銳化相關函數(shù)峰值的作用,信號相關函數(shù)的峰值尖銳,時延估計效果更好。
為進一步驗證所提出時延估計算法的有效性,對二次相關、廣義二次相關、改進的廣義二次相關算法的均方根誤差(RMSE)和時延正確率進行仿真實驗。 首先比較SNR 在-20 ~20 dB 時不同算法的RMSE。 信號源仍然選用NOIZEUS 實驗室純凈語音庫里編號為fdnc0. 9 的測試語音,采樣頻率為8 kHz,每幀采樣點為2 000,延時點數(shù)為20,均方根誤差定義為:
式中,τ0為真實時延估計值, τi為第i 個時延估計值,N 為時延估計總數(shù),對3 種算法分別進行N =100 次仿真,仿真結(jié)果如圖6 所示。
圖6 3 種算法的RMSE 隨SNR 變化比較Fig.6 Comparison of RMSE changes with SNR of three algorithms
從圖6 可知,隨著SNR 的降低,3 種算法的均方根誤差RMSE 都會變大。 在SNR 在15 ~20 dB 時,3 種算法的估計性能差別不大;在5~15 dB 時,二次相關算法、廣義二次相關算法的RMSE 會隨著SNR的降低而變大,而改進的算法幾乎沒有變化,RMSE值接近于零;隨著SNR 繼續(xù)降低,在-20 ~5 dB 時,二次相關算法、廣義二次相關算法的RMSE 會隨著SNR 的降低而迅速變大,改進算法的RMSE 值變化較為緩慢,表明其仍具有較好的時延估計性能。 以上結(jié)果表明,在SNR 較低時,改進算法表現(xiàn)出比另外2 種算法更好的時延估計誤差。
其次,比較3 種算法的時延正確率。 信號源與上述均方根誤差計算所選信號源相同。 在不同的SNR 下,每幀信號做100 次仿真,得出峰值對應的延遲點數(shù),根據(jù)峰值對應的延遲點數(shù),取平均值。 因為加入的是隨機噪聲,通過對峰值對應的延遲點數(shù)取平均值,可以降低隨機噪聲的干擾[14]。 由于選取的信號源采樣率不高,對時延估計的精度有一定影響,因此誤差率設定為20%,即時延估計值和時延真實值之間偏離4 個采樣點以內(nèi)時,認為該估計值在誤差允許范圍內(nèi)。 時延估計正確率如圖7 所示。
圖7 3 種算法的實驗估計正確率隨SNR 變化比較Fig.7 Comparison of the experimental estimation accuracy of the three algorithms with the change of SNR
從圖7 可以看出,隨著SNR 的降低,3 種算法的時延估計正確率都下降。 SNR 在10 dB 以上時,二次相關算法、廣義二次相關算法的時延估計正確率開始降低,而改進算法的時延正確率仍達到100%;SNR 在-5~10 dB 時,二次相關算法、廣義二次相關算法的時延估計正確率迅速降低,而改進算法的時延估計正確率下降緩慢,正確率在70%左右;在-20~-5 dB 時,二次相關算法、廣義二次相關算法的時延估計正確率顯著下降,而改進算法仍具有較高的正確率,正確率比前者提高了近20%。 SNR 在-5~10 dB 時,不論是均方根誤差還是正確率,改進的廣義二次相關算法均比另外2 種算法有一定優(yōu)勢。
針對廣義二次相關時延估計算法在低SNR 情況下,算法性能和正確率下降的問題,本文提出了一種改進的廣義二次相關算法。 通過對相關函數(shù)進行指數(shù)運算,削弱噪聲的干擾,再通過對傅里葉逆變換的結(jié)果進行高次方運算,銳化二次相關計算結(jié)果的峰值,從而達到了提高時延計算正確率的目的。 仿真結(jié)果表明,在0~10 dB 的SNR 情況下,改進算法的RMSE 明顯優(yōu)于另外2 種算法,在時延正確率上,改進算法的正確率提高了近20%;在更低SNR 情況下,改進算法也表現(xiàn)出一定的優(yōu)勢。 因此改進算法在時延計算過程中,對于低SNR 信號,抗噪聲性能有明顯改善。