王銘 ,鄒捷源,張國才,林同塵,劉俊杰,洪麗敏,李潔瑩
(北京理工大學珠海學院 數理與土木工程學院,廣東 珠海 519088)
聲源定位技術具有非常大的潛在應用價值,隨著科技的飛速發展,聲源定位技術已應用于軍事、工業、民用等多方面、全覆蓋領域[1]。如在直升機聲探測系統、探測航空器的噪聲源、機器故障診斷、智能機器人聽覺系統、安防系統、鳴笛抓拍系統、視頻會議、戶外搜救等諸多系統中的應用,有效利用了聲源信號,實現對聲源位置的實時追蹤[2]。
在現實生活中,每年的自然災害都會造成無數的人命傷亡,所以搜救時必須爭分奪秒[3]。在地震、樓房坍塌、火災、森林搜救等急需高效搜救的情況下,提高從開始搜救到完成搜救的效率是很有必要的。因此,需要一個能實時檢測出受害者位置的聲源定位程序。在該想法下,本文研究設計一種麥克風三維球面陣結構裝置,采用廣義互相關函數的時延估計算法(GCC-PHAT)[4],實現聲源空間三維實時定位識別,以便搜尋被困于倒塌物下或被埋于瓦礫中的幸存者,快速鎖定被困者位置,加速救援行動,在有限時間內拯救更多生命。
系統由三維球面陣麥克風陣列、數據采集模塊、LabVIEW 系統組成,系統架構如圖1 所示。由麥克風陣列收集到的6 路信號,經過NI-USB-6363 數據采集卡收集,將六通道輸入信號輸入到LabVIEW 系統上。軟件部分基于LabVIEW 系統開發,實現了對聲音的實時定位。

圖1 聲源定位系統整體架構
實驗采集系統是選用NI-USB-6363 數據采集卡,可以高性能地進行NI 信號讀寫,并且有30 個模擬輸入通道、6 路模擬輸出[5],能夠實現高級定時與觸發,和對實時信號的收集。NI 數據采集卡通過數據線與上位機相連。本文采用6 通道的數據采集,設置20 000 個采樣點數,44.1 kHz 采樣頻率進行同步采樣。
本實驗搭建球面陣聲源定位裝置,高50 cm,由六個麥克風組成球面陣[6],兩兩麥克風之間固定距離設置為13.9 cm,小巧輕便。實驗室噪聲信號為高斯白噪聲,信噪比約為20 dB,聲源為脈沖信號以及連續信號。聲源定位裝置實物圖如圖2 所示。其中,直流恒壓源用于給數據采集卡提供15 V 的電壓。Ni-USB-6363 數據采集卡用于采集麥克風球面陣收集到的聲源信號數據并上傳至PC 機(上位機)中做處理顯示。

圖2 聲源定位裝置實物圖
LabVIEW 是一款圖形化編程語言,其自身還具有優異的性能。數據傳輸至上位機后,用LabVIEW 自帶的語言進行數據預處理以及濾波降噪處理,并在前面板中進行聲源定位的可視化,程序前面板如圖3 所示。圖中:左上角為二維平面的空間定位,箭頭指向是平面聲源的角度;左下角是6 個輸入信號的波形,該波形接收信號靈敏但含有一定噪聲;右上角為三維空間聲源定位,以X軸指向為平面角度0°,Z軸下半面為俯仰角0°,綠色的點為空間聲源點,可以清楚地對聲源進行三維定位;右下角為調節閾值旋鈕,與安靜條件下相比,設置閾值可以讓超過一定范圍的聲音信號被捕捉并保持下去,這樣可以降低微小噪聲所帶來的干擾。

圖3 LabVIEW 程序前面板
系統的軟件采用LabVIEW 2018 編程,軟件程序流程如圖4 所示[7]。

圖4 系統軟件流程
通過NI-USB-6363 數據采集卡與LabVIEW 內置DAQ助手,獲取到6 路麥克風傳感器信號。該信號中除了所需的聲源信號,還包含現實背景的各種高低頻段的噪聲。因此,還需要對所接收到的聲源信號進行濾波。LabVIEW 程序內置的butterworth濾波模塊可以通過參數調節有效保留所需頻段的聲源信號,去除高低頻段的噪聲[8-9]。振幅的平方對頻率公式為:
式中:n為濾波器的階數,階數越大通帶和阻帶的近似性越好,過渡帶也越陡;ωc為截止頻率;ωp為通頻帶邊緣頻率。
在聲源定位算法中,基于到達時間差的定位技術(TDOA)在定位準確性上得到了良好的驗證,被廣泛應用,而準確的時延估計是該技術實現的前提。在眾多時延估計算法中,廣義互相關(GCC)算法因其較低的運算復雜度和易于實現的特點得到了廣泛的應用[10]。
在廣義互相關函數的時延估計算法流程中,首先通過接收信號x1(t)和x2(t)計算互功率譜,其次對互功率譜進行加權計算,最后進行傅里葉變換,得到廣義的互相關函數。首先計算互功率譜,有:
式中:X1(·)和X2(·)為接收信號x1(t)和x2(t)的濾波函數;X2*(·)為X2(·)取共軛函數。
加權函數對時延估計精度有著不錯的提高[11]。本文主要基于相位變化(PHAT)的加權函數進行研究。PHAT 函數的表達式為:
由式(3)可知,相位變換加權函數可以使信號間互功率譜更加平滑,從而銳化廣義互相關函數的峰值。
最后,對加權后的互功率譜進行傅里葉變換,得到廣義互相關函數,有:
由式(4)可知,通過廣義互相關函數計算會使兩個相關信號存在一個最大峰值,該點最大峰值處與采樣數的差值即為相位差。
在聲源定位系統中,往往需要一個線性麥克風陣列才可以更好地得到聲源傳輸到麥克風之間的角度及距離關系,而對于一個線性排列的麥克風陣列[12],聲音到達不同麥克風的時間總會有先后順序[13]。
圖5 為球面陣麥克風陣列聲源角度原理圖。其中,利用線性麥克風陣列可以使得三維空間中聲源與線性麥克風陣列接收信號時間存在一定關系,如下:

圖5 球面陣麥克風陣列聲源角度原理
式中:τ12為2個麥克風y1(k)、y2(k)接收同一聲源s(k)的時延值;d為2 個麥克風y1(k)、y2(k)之間的距離;θ為入射角;c為聲速,取340 m/s。
通過時延GCC 算法得到不同空間位置的麥克風時差τ12,從而得到聲音波束相對于2 個麥克風的角度θ。通過以上算法可基本實現聲源定位功能。
根據以上原理,通過編寫程序實現角度轉換算法[8],角度轉換算法如圖6 所示。

圖6 編寫程序實現角度轉換算法
本系統采用頻率為44.1 kHz,采集點數為2×104,利用廣義互相關算法得出2 個麥克風傳感器之間GCC 最大峰值所在點數。根據定義,用采樣點數減去GCC 最大峰值所在點數,即可得到2 個麥克風對聲音接收的相位差值,通過頻率換算獲得單位時間,將其相乘得到的就是2 個麥克風的時間差。麥克風到兩個點距離的差值如下:
式中:x為相對接收距離;t為2 個麥克風接收到同一信號的時間差。利用x相對接收距離再除以2 個麥克風之間的直線距離,得到余弦角度θ的數值,進行反余弦計算得到θ,在LabVIEW 系統中此時得到的為弧度制,最后進行角度制轉換,得到2 個麥克風關于聲源的平面角度。
本文著重測試該模型對連續信號的識別作用,所以選用在安靜的環境下進行測試,這樣可以有效地避免噪聲對測試結果的影響并測試其性能,以手機播放的音樂作為聲源,在測試范圍內不斷移動,涵蓋方位角30°~330°,一共11 個數據點,每個聲源位置測試10 次,得出的數據取平均值。一共獲取110 組數據測量點,并記錄聲源角度數據。
通過實時的聲音采集對其進行誤差分析。圖7 為系統連續信號誤差分析圖,從中可以直觀地看出連續信號的一個誤差范圍。經過分析,該程序能較好地識別出聲音的實時定位,將得到的110 組數據進行擬合,可以得到擬合曲線范圍為[1.7,2],并且P值為0.025 21<0.05。一般可以認為P≤0.05時(一般選擇這個顯著水平),該數據得出的結果不存在偶然性,該程序的結果可靠。誤差偏移值控制在2°左右,產生該誤差的原因有:麥克風硬件及系統性能的限制,噪聲信號無法最大化去除連續聲音信號誤差;除此之外,還可能是系統在高頻率響應下無法及時分析,返回正確的角度值。

圖7 連續信號誤差分析
本文基于GCC-PHAT 算法、LabVIEW 軟件平臺開發了一套六通道球面陣列聲源定位系統,詳細介紹了該系統的各硬件構成、軟件程序模塊及實驗操作流程。本文對連續信號方位角進行多點多次測量,對所得實驗數據進行分析,歸納總結了聲源定位精度的變化趨勢,并分析了主要誤差來源。實驗結果表明該系統有良好的連續信號聲源定位效果。本文的設計思路及程序算法實現可為聲源定位儀器開發人員提供一定的參考。