王小懷 伊樹彬 蔡洛思
(韓山師范學院物理與電子工程學院,廣東 潮州 521000)
聲源定位是通過接收目標聲源信息并利用電子裝置確定目標位置的技術,即利用麥克風陣列在不同位置點對聲信號進行測量,由于目標聲源到達各個麥克風存在時間延遲,因此利用定位算法對測量到的聲信號進行處理,并構建相關的物理模型,以獲得聲源點相對麥克風的位置信息(包括方位角、距離)。聲源定位的研究對物理聲學、工業、航空航天、智能制造以及軍事都具有重要意義[1]。
為實現聲源的低成本且高精度定位,該文設計并制作了一種基于到達時間差(Time Difference of Arrival,TDOA)技術及幾何模型的聲源定位裝置。
該設計采用基于TDOA到達時間差定位原理和廣義互相關函數的時延估計GCC-PHAT(Generalized Cross Correlation PHAse Transformation,GCC-PHAT)原理[2]。在原理代碼化編程上采用C語言編程,試驗設備上有麥克風聲音接收裝置、ADC模數轉換等,涉及數字信號處理和相關算法的程序實現。
該裝置對一個麥克風接收到的信號與另一個麥克風接收到的信號進行相關運算,從而得到TDOA的值,這種算法可以在麥克風接收信號不同步時利用互相關估計得到TDOA值,再進行定位計算就可以獲得較高的精度。TDOA技術不僅定位準確,而且對算法的要求相對較低,具有很強的實際應用價值。
GCC-PHAT基于廣義互相關函數的時延估計算法引入了一個加權函數對互功率譜密度進行調整,從而優化時延估計的性能。根據加權函數的不同,廣義互相關函數有多種不同的變形,其中廣義互相關-相位變換方法應用最廣泛。研究表明,麥克風對的GCC-PHAT函數的最大值越大,則該對麥克風的接收信號越可靠,也就是接收信號質量越高[3]。
ADC轉換就是將輸入模擬的信號量轉換成數字量。根據奎斯特采樣定理,在進行模擬/數字信號的轉換過程中,當采樣頻率Fs大于或等于信號中最高頻率Fm的2倍時,采樣后的數字信號才能完整保留原始信號中的信息。
在聲源定位系統中,麥克風陣列的每個陣元接收到的目標信號都來自于同一個聲源。因此,各通道信號之間具有較強的相關性。理想情況下,通過計算每兩路信號之間的相關函數,就可以確定2個麥克風觀測信號之間的時延。如圖1所示,S點為聲源信號,M1、M2為2個麥克風,τ為麥克風M1、M2接受信號的時延。當τ=0時,聲源方位在麥克風陣列的中垂線上。

圖1 雙麥克風陣列模型圖
雖然采用雙麥克風和TDOA算法可以確定聲源方位,但是無法確定聲源距離,也就無法完全確定聲源的準確位置。
根據平面內2條直線相交確定1個交點的幾何性質,建構的麥克風陣列中垂線相交幾何模型,如圖2所示。

圖2 麥克風陣列中垂線相交模型圖
S為聲源位置,雙麥克風陣列既可繞中心點A旋轉,還可沿導軌整體移動,用A、A1表示其在導軌上所處的2個不同位置,距離AA1可在導軌的有效范圍內靈活調節,導軌滑動方向與AA1相同。
麥克風陣列的主要作用是通過分析陣列中不同麥克風采集的信息,從而得出聲音源的方向和距離[4]。如圖3所示,如果雙麥克風陣列在A點時測出聲源S相對導軌的方位角為θ1,將雙麥克風陣列移至A1點時測出聲源S相對導軌的方位角為θ2,那么測出A和A1間的距離為AA1。

圖3 聲源位置計算模型圖
根據正弦定理如公式(1)和公式(2)所示。

其中,θ3=θ1-θ2,θ4=180°-θ1。
將θ1、θ2以及AA1代入上式即可求出SA和SA1,從而實現了對聲源S進行精確定位的目標。
該裝置所使用的設計硬件主要由主控模塊(STM32F407-ZGT6單片機)、雙麥克風陣列、3.3 V和5 V雙穩壓電源模塊以及3.5寸TFT LCD觸摸液晶顯示模塊等組成。硬件設計實物如圖4所示。在該裝置中,考慮單片機可能存在供電不足的情況,因此通過輸入6.5 V~10 V的直流電源到電源板為麥克風陣列提供3.3 V電源電壓,而單片機另外由USB_TTL接口進行5 V供電。

圖4 硬件裝置實物圖
信號采集和模數轉換:2個麥克風采集到的聲源模擬信號首先發送至ADC模塊進行模數轉換,得到數字信號。由于該試驗測試用的聲源信號頻率范圍50 kHz~10 kHz,為了滿足奈奎斯特采樣定理,獲得質量較好的數字信號,設置采樣頻率為20 kHz,采樣點為2 048。
數字信號處理:將基于TDOA聲源定位算法和廣義互相關時延函數算法用C語言實現代碼化,燒錄進STM32F407單片機。主控系統對ADC轉換得到的離散實信號序列依次進行廣義互相關函數的時延估計GCC-PHAT算法和TDOA定位原理算法的運算處理后得到聲源方位數據。
定位信息顯示:將聲源與接收點的直線距離、聲源與X軸夾角以及聲源在X軸上的投射點與測量點的距離等聲源定位信息通過LCD液晶屏幕直接顯示。根據不同需求亦可使用串口通信方式將聲源方位數據發送至電腦串口調試助手顯示測量結果。
聲音信號采集系統由間隔為20 cm的雙麥克風陣列構成,通過調節螺絲松緊度使2個麥克風處在同一水平線上。雙麥克風陣列固定在一個刻度盤上,并可隨轉盤在水平面內作360°旋轉;刻度盤和雙麥克風陣列組合體安裝在一段滑軌上,可在滑軌的有效滑動范圍內移動;另外,還設有指針、刻度尺等方位角和距離讀數輔助部件[5],聲源定位裝置的整體實物如圖5所示。

圖5 定位裝置實物圖
定位操作基本步驟如下:1) 燒錄程序。將編寫好的程序編譯并燒錄至STM32F407ZGT6單片機。2)儀器安裝。將2個麥克風輸出端分別與單片機ADC各采集通道連接 PA2、PA3,并將單片機與電源板共地。3) 固定麥克風陣列。使2個麥克風都處在同一水平線,并與地面保持垂直。4) 標記測量點。選定測量點并進行標記。5) 放置聲源。保持聲源與麥克風陣列處在同一高度,朝麥克風陣列方向放置。6) 測量聲源方位。觀察LCD屏顯示的方位數據,待數據穩定后記錄聲源位置。7) 重復測量聲源方位。重新放置聲源,并重復上步操作。
將刻度盤和雙麥克風陣列組合體(以下簡稱組合體)固定在滑軌左端某一位置A, 調節雙麥克風陣列的初始方向(與導軌平行),此時方位指針與轉盤的初始零刻度線對齊。慢慢轉動組合體直至LCD屏實時顯示的待測聲源到達2個麥克風的時延差為0,記錄此時方位指針在刻度盤上度數,即為聲源方位角θ1。接著沿導軌移動組合體至位置A1,再次轉動組合體至兩麥克風的時延差為0,記錄此時方位指針在刻度盤上度數,即為聲源方位角θ2,重復以上操作共3次。改變聲源位置,重復以上測量。
該試驗采用雙麥克風陣列去計算聲源的位置,每組采用同一函數組,每組得出的結果進行相互校驗,提高了試驗中聲源定位的準確度。
繪制各個位置對應的聲源方位角θ1、θ2的測量平均值與其實際值對比圖,如圖6和圖7所示。由圖6和圖7可知,測量平均值與其實際值的圖線基本重合,說明聲源方位角測量值與實際值吻合得很好,聲源方向定位精度很高。

圖6 方位角θ1的測量值與實際值對比

圖7 方位角θ2的測量值與實際值對比
將以上θ1、θ2以及AA1的測量值代入公式(1)、公式(2)就可以得出聲源與麥克風探頭的距離SA和SA1,實現對聲源距離進行定位的目標。距離定位結果如圖8和圖9所示。
由圖8和圖9可知,聲源距離的測量值與實際值數據作出的圖線高度相似,同樣說明聲源的距離定位也有較高的精度。

圖8 SA的測量值與實際值對比圖

圖9 SA1的測量值與實際值對比圖
分別計算聲源方位角、聲源距離的測量相對誤差,見表1。

表1 聲源方位角、距離的測量相對誤差(單位:%)
首先是時延差量化分辨率不足。因為最小量化時延差為前端的ADC采樣周期,ADC采樣率為21 kHz,所以最小量化時延差約為47.6 μs,從而導致時延代入數學模型中,產生對應距離和角度的誤差。
其次是聲源信號的信噪比不足。該試驗所采用的聲源信噪比偏低。雖然在信號處理中采用基于廣義互相關函數的時延估計計算GCCPHAT的方法,經過PHAT加權互功率譜(白化濾波)能較好地抑制大噪聲,但是并不能完全消除噪聲,從而也會對測量精度造成一定影響。
從以上試驗數據及分析結果可以看出,該文所采用的基于TDOA技術和GCC—PHAT廣義互相關函數采集時延、再結合幾何模型的定位方法能夠準確測出聲源的方位和距離。
該定位裝置特有的360°全方位旋轉雙麥克風陣列可以在各種不同情形下靈活、快速且精準地確定聲源方位。
后續可通過時延反饋信號自動控制麥克風陣列旋轉跟蹤并指向聲源。在此基礎上設計搭載該裝置的智能小車,通過判斷聲源位置后實現自動跟蹤聲源并到達指定位置,可應用于餐廳的智能送餐。另外,進一步擴展麥克風陣列、優化算法以及更新信號處理方式,有望設計出更精確、更具實用化的聲源定位系統以及相關的拓展應用。