蘇 石,申 沖,王晨光
(1.中北大學 信息與通信工程學院,太原 030051;2.中北大學 儀器與電子學院,太原 030051)
在復雜環境下,空氣中可能存在各種類型的音頻信號,在這個混亂的環境中,如何不受干擾地準確定位自身想追蹤的聲源位置,是研究者們一直以來研究的熱點領域。利用麥克風陣列技術進行聲源定位作為一種關鍵的情報收集手段,在各種復雜場景中發揮著不可或缺的作用。它通過多個傳感器組成的陣列獲取信息,精確地計算出聲音的來源位置,進而為人們提供實時可靠的信息和情報。當前基于麥克風陣列的聲源定位主要通過三類算法模型實現,分別是高分辨率譜估計方法,可控波束形成方法和基于到達時間差(TDOA)的時延估計方法。
其中高分辨率譜估計方法通過計算各個陣元的相關矩陣,獲取不同參數下的子空間,進而求取聲源的方位信息;可控波束形成方法通過對采集的信號計算加權和得到波束,然后改變麥克風陣列接收信號的方向并計算信號的功率,不斷搜索得到輸出功率最大的波束方向,該方向即為所求的聲源方位;基于到達時間差的時延估計方法(TDOA)主要分為兩步實現,首先是估算同一聲源到達陣列中不同 麥克風之間的時間差,其次再根據該差值求解聲源 到達各個麥克風之間的距離,最后再利用求解幾何的方法確定聲源的方位[1-3]。
相較于前兩種方法,TDOA方法計算量較小,實時性較高,在麥克風陣列聲源定位系統中被人們廣泛地使用[4],并不斷做出改進。例如,文獻[5]在研究表面沖擊定位時,以水平分量精度因子(HDOP,horizontal dilution of precision)值作為判斷依據調整傳感器布置方式,配合通道時差補償的TDOA算法精確定位沖擊位置。文獻[6]設計了一種基于TDOA高精度短波定位系統,采用軟件無線電設計架構,射頻前端采用直接帶通采樣,采用GPS和鎖相環(PLL,phase-locked loops)相結合時鐘方案對已知的短波信號進行定位。文獻[7]針對室內定位系統中標簽節點續航時間短、便攜性低和標簽容量小的問題,設計了一種嵌入式微控制系統,在分析系統主要功耗來源基礎上,選取尺寸較小的超寬帶(UWB,ultra wide band)模塊完成收發功能。文獻[8]提出一種改進的傳感器位置不準確的最小二乘法。用TDOA與基于到達頻率差定位法(FDOA,frequency difference of arrival)聯合的方式確定聲源的精確位置。文獻[9]提出了一種基于多層感知機的水下聲源被動定位方案,將多通道波形數據直接作為輸入對多層感知機網絡進行訓練,從而獲取高精度的定位神經網絡。文獻[10]研究了抑制非視距誤差的定位算法,對非視距環境下的TDOA定位模型中的參數進行重構,作為中間參考變量,輔助其他算法得到更精確的結果。文獻[11]旨在通過引入約束總最小二乘框架來提高三維TDOA_AOA(angle of arrival)定位算法的性能,將偽線性方程的固有特征作為附加約束,建立三維TDOA_AOA定位模型,再求解該模型中的多約束優化問題。文獻[12]考慮到TDOA定位系統的性能受到時間同步誤差的嚴重影響,針對TDOA估計的性能主要由頻率信息決定的問題,提出一種基于互相關相位差補償的目標信號和參考信號相干積分TDOA估計方法,同時實現目標TDOA和參考TDOA的估計。文獻[13]為了提高定位特定區域輻射源的多個復雜目標時的實時性,將時延估計值數據輸入神經網絡獲得模型,利用該網絡定位未知目標。文獻[14]利用IMMKF(Interacting Multiple Model Kalman Filter)算法與傳統TDOA的Chan-Taylor算法協同工作,克服了傳統卡爾曼濾波器在目標忽然改變運動狀態時不能及時跟蹤從而產生較大誤差的問題。
除了上述的文獻外,還有許多研究人員對TDOA算法做出改進,但在實際應用時仍需要采集到良好的信號數據作為基礎,為了保證采集到良好的聲源信號數據,往往需要設計濾波器及相關調理電路,使得整個采集系統的復雜性增加。因此本文旨在利用模糊集合對采集到的數據進行處理,之后再將這些數據帶入TDOA算法內以提高該算法在面對復雜環境時的抗干擾性,這樣便可以降低設計外部調理電路的復雜程度,降低硬件方面的壓力。為了驗證該想法的可行性,本文搭建了以6個麥克風形成的陣列作為聲源信號采集模塊的聲源定位系統,測試本文采用的方法相比于傳統TDOA是否有所提升。本文主要分為3個部分,分別為系統設計部分、算法研究部分和實驗測試部分。
本文的硬件設計方案采用了STM32F103CBT6型號單片機作為核心CPU,該型號單片機具有高性能、低功耗、體積小等優點,并且具有廣泛的應用領域,間斷性的操作節省了許多功率,非常適合于嵌入式應用系統的開發。麥克風陣列中的麥克風選用的是16 mm全指向咪頭傳聲器,結合其相關外圍電路作為本系統的采集聲源模塊,可以高效地采集空氣中傳播的聲音信號。信號處理芯片及其相關外圍電路則對采集到的信號進行放大和模數轉換,增強了信號質量,便于后續處理。系統電源及相關電路提供了系統所需的電源支持,保證系統的可靠性和穩定性。
系統采集工作的主要流程為:系統運行開始后,麥克風陣列開始工作,采集空氣中傳播的聲音信號,并通過信號處理模塊進行處理。處理后的信號數字化后送入聲源定位算法進行計算。聲源定位算法對數字信號進行濾波抑噪,并利用獲得的聲音時延信息進行聲源定位計算,最終得到聲源位置信息。聲源位置信息將通過顯示器模塊進行顯示。整個系統的設計如圖1所示。

圖1 系統硬件模塊設計圖
本實驗的信號處理過程包括運放和模式轉換兩個主要步驟。選擇MAX9814信號放大器芯片實現幅值放大功能,放大擋位為20~40 dB。這種選擇可以獲得較高的信噪比,得到較為理想的數據。由于CPU芯片無法處理模擬信號,必須將其轉換成數字信號。為此選擇了AD7819芯片實現模數轉換功能。AD7819僅使用地址解碼邏輯,因此很容易實現到微處理器地址空間的映射,實現了信號的有效處理。信號處理相關原理如圖2所示。

圖2 數據處理相關電路原理圖
圖2為一路麥克風采集到信號的處理過程,本文采用的是正六邊形麥克風陣列,所以整個系統有六路完全相同的上述所示電路共同接入STM32F103處理器,圖3為處理器模塊電路原理圖。

圖3 處理器相關電路原理圖
麥克風陣列的設計對聲源信號的成功定位起著關鍵作用。因此,本文綜合考慮各方面因素,采用二維6元正六邊形麥克風陣列作為整個系統的采集模塊。以正六邊形分布,將正六邊形的幾何中心作為聲源檢索范圍的笛卡爾坐標系原點,相鄰兩個麥克風的間距為15 cm。如圖4所示。

圖4 麥克風陣列構型
利用麥克風陣列確定聲源的方法主要分為兩類:解析類和估算類。相比于解析類算法對數據高精度的要求,估算類算法通過不斷比較估值、優化定位結果,從而逐漸逼近聲源真實的位置[15],這種算法降低了對數據精確性的需求,如Taylor算法、網格搜索法[16]等。網格搜索是一種常用的超參數調優方法。在網格搜索時,需要對每個超參數指定一組可能的取值,然后對這些取值進行排列組合,形成一個超參數組合的網格。接著,對每個超參數組合進行模型訓練和評估,最終選擇在驗證集上表現最好的超參數組合作為模型的最終超參數。通過網格搜索法進行聲源定位時,即通過對聲源必然存在的某一區域以一定的步長進行網格劃分,利用音頻信號特征計算指標,擇優選取相應的網格坐標作為聲源的估測點。
例如在圖5中,點Si(i=1,2,3,4)為網格中點,點Mj(j=1,2,3,4,5,6)為麥克風所在位置,則網格中點到麥克風的距離為Dij,設聲音信號從聲源傳遞到麥克風的距離為Tj。在聲源定位模型中,聲音傳播速度設為定值340 m/s,假設聲源剛好位于點Si上,則根據速度公式可知:
(1)

圖5 網格搜索法示意圖
若聲源不在點Si上,則存在于點Sm(m=1,2,3,4)所在的網格內,其中:
(2)
此時點Sm所在的網格即為最優網格,Sm點的坐標即為最優估計點。
在網格搜索時,步長的劃分會影響到搜索的效率和準確性。如果步長劃分過大,可能會導致搜索結果不夠精確,錯過最優解;如果步長劃分過小,可能會導致相鄰的網格數據混淆,產生無效計算,從而浪費計算資源。
為了解決這個問題,可以采用多次迭代的方式,即先進行粗搜索再進行細搜索。具體來說,可以先以較大的步長進行網格劃分,選出最優網格,然后在最優網格的基礎上,以較小的步長對其進行細分,繼續進行搜索。這樣可以減少誤差帶來的計算量浪費,同時又能保證搜索結果的準確性。
需要注意的是,多次迭代的方式雖然可以提高搜索效率和準確性,但也會增加計算量和時間成本。因此,在實際應用中,需要根據具體情況權衡利弊,選擇合適的搜索策略。
當選出最優網格后,便可進行下一次迭代,如圖6所示。

圖6 網格迭代示意圖
TDOA算法一般分為兩步,首先是利用麥克風陣列采集的聲源信號進行時延估計,第二步是根據時延值判斷聲源位置。時延估計具體而言是指利用麥克風陣列采集聲源信號,利用麥克風陣列中不同麥克風接收到信號的微小差異從而求出信號到不用麥克風之間的時延值。這一過程,通常應用廣義互相關算法。互相關函數是信號分析里的概念,表示的是兩個時間序列之間的相關程度,即描述信號x1(t),x2(t)在任意兩個不同時刻t1,t2的取值之間的相關程度。
下列公式中的X(t)表示為麥克風陣列每個陣元接收到的聲音信號:
xi(t)=ais(t+τi)+ni(t)
(3)
式中,s(t)是以時間為變量的聲源信號、a是陣元i接收信號的衰減因子、τ是陣元i接收信號相對參考麥克風接收信號的時延、n是陣元i接收到的加性噪聲。
根據定義,兩個信號的互相關為兩個信號在不同時刻的期望:
Rx1,x2(τ)=E[x1(t)x2(t+τ)]
(4)
對于連續函數,有定義:

(5)
對于離散函數,有定義:
(6)
根據維納—辛欽定理,互相關函數與其互功率譜密度互為傅里葉變換對,所以互相關函數也可表示為互功率譜密度的傅里葉變換形式:
(7)
Rx1,x2函數峰值對應的橫坐標所代表的時間,即為兩個信號的時延值。
在麥克風陣列對實際信號進行處理時,由于存在混響和噪音的原因,計算出的互相關函數的峰值往往不明顯,降低時延估計的精度。所以在實際運算時,通常將互相關函數轉換到頻域進行處理[17],通過使用加權函數的方式抑制噪聲帶來的影響,再將該信號通過傅里葉逆變換轉換回時域觀察互相關函數的峰值。其主要過程如圖7所示。

圖7 廣義互相關流程圖
其中:(·)*代表共軛運算。一個共軛對相乘表示為Gx1x2(w),基于加權函數ψ(w)的廣義互相關函數表達式為:

(8)
如此便可比較準確地估算出輸入信號間的時延。
盡管估算類算法通常不需要進行復雜的計算,而且還可以穩定地獲得聲源坐標的估計值,但仍存在一些局限性。首先,進行比較的次數過多會增加計算和時間上的負擔。而且,估算類算法的結果只是對真實值的逼近,而非真實值本身。如果時延數據存在誤差,結果的精度將進一步降低。通常情況下,噪聲、與實際不符的線性程度假設以及多徑效應等因素都會對TDOA算法的結果產生影響。
首先,傳感器需要具有較高的靈敏度才能夠采集遠處的聲音信號。然而,具有較高靈敏度的傳感器也會同時采集到環境中的微小噪聲。遠處的聲源信號與近處的噪聲混合在一起,會嚴重影響通信系統的精度和可靠性。
其次,在聲音遠場模型中,聲音的傳播路徑被假設為線性[18]。然而,在實際的復雜環境中,由于存在復雜的傳播路徑和非線性效應,聲音信號的傳播路徑并非完全是線性的。這導致計算結果產生誤差,誤差的大小取決于環境的復雜性。
區內葛仙山序列巖體與變質巖侵入關系清楚,接觸面多外傾,呈舒緩波狀,傾角40°~70°。外接觸帶均發育有寬窄不等的烘烤邊,接觸面多切割圍巖片理。圍巖接觸變質較明顯,形成綠泥石、絹云母等變質礦物。
此外,當存在許多遮蔽物時,如在地面上,聲音信號會發生多種散射、反射和衍射現象,形成多徑效應[19]。與單路徑傳播的信號相比,采集到的信號會有許多微小相位差的衍生信號。在時域空間中,相位差等同于時間差,因此多徑效應會對TDOA算法中的時延估計部分產生較大的影響。
為了得到較為理想的聲源信號數據,可以采用模糊集合來篩選特定的音頻。假設正弦信號為y,則該信號可表示為:
y(t)=Asin(wt+φ)+e(t)
(9)
其中:A為衰減因子,e(t)為噪聲。將該信號進行采集,設采集到的數據集為y:
y={y1,y2,y3,…,yn}
(10)
將采集到的數據進行模糊化處理,選擇與采集信號對應的隸屬度函數,計算實際采集到的信號對于目標信號的隸屬度,并組成相應集合,這樣采集到的原始信號就被映射到了一個模糊集合中:
y∈Y={y1/uy1,y2/uy2,…,yn/uyn}
(11)
其中:uyi是描述yi隸屬于模糊集合Y中的程度。最后,我們需要將模糊集合中的元素進行反模糊化處理,得到實際的數值結果和f(x*)*。這一過程需根據原始數據不同的隸屬度,對模糊集合中的元素做出不同的加權,從而得到更理想的數據:
f(xn*)*=uyn·gn
(12)
其中:uyn表示隸屬度,gn代表加權系數,通過在不同信噪比條件下多次實驗估計出最優值,根據經驗選擇合適的加權系數。
較為常見的隸屬度分布函數有矩形分布、梯形分布、三角分布以及與噪聲有關的高斯分布等。而根據數據發展的規律,又可將上述分布具體設定為偏小型、偏大型、居中型3種。對于特定聲源的定位方法實驗來說,無論數據的值偏大或偏小都會導致結果不準確,系統的性能下降,所以適合本實驗的隸屬度函數為居中型,當被測聲源的頻率為具體某一值時,可選擇具有唯一最高點且便于計算的三角隸屬度分布函數。三角分布的隸屬度函數[20]分別如式(13)和圖8所示:
(13)

圖8 三角隸屬度分布函數示意圖
其中:c的值已知,且為ab的中點。根據圖片可知,當x=c時,隸屬度函數的值可確定為1。當需要使用該隸屬度函數時,就需要采用指派法明確分布圖像上其余的任意一點(d,y),即可確定該隸屬度函數的具體公式。再通過最大隸屬度法將數據反模糊化帶入后續計算。整個過程的實現流程如圖9所示。

圖9 模糊集合優化數據流程圖


圖10 實驗場景圖
為了對模糊集合算法性能進行測試,利用麥克風陣列中的單個麥克風在距離3、9、20 m處,對相同的聲源信號進行采集。為了便于觀察對比,聲源信號采用標準正弦信號。根據奈奎斯特采樣定理,系統設備的采樣率應為待測信號的2倍以上,結合本實驗的硬件采集能力,待測聲源頻率定為2 kHz。對頻域信號數據采用更便于計算的三角分布隸屬度函數進行處理,指派其中一點的隸屬度為(2 100,0.9),之后再還原成時域正弦信號,用原始采集信號作為對照,采集點數統一設定為128。采集到的原始信號數據分布如圖11~13所示。

圖11 傳統算法(上)、本文算法(下)距離3 m時采集到的數據

圖12 傳統算法(上)、本文算法(下)距離9 m時采集到的信號對比原正弦信號

圖13 傳統算法(上)、本文算法(下)距離20 m時采集到的數據
根據對比圖可以明顯觀察到,不論是對于原始數據還是經過模糊集合處理的數據,在采集距離逐漸增加的過程中,信號受到的干擾程度和失真程度也逐漸加大。然而,值得注意的是,在距離聲源最遠(20 m)和最近(3 m)處采集到的信號中,模糊集合處理效果并不顯著。相反,在距離聲源適中的位置(9 m)采集到的信號經過模糊集合處理后,其抗干擾性能更加顯著。與標準正弦信號進行對比后發現,采用本文算法采集到的正弦信號更接近原始正弦信號。通過具體計算可知,在距離為9 m的位置采集到的數據中,原始數據的誤差標準差為26.34,而經過模糊集合處理后的數據誤差標準差為22.79,因此減小了3.55。由此可見,通過數據對比可以得出,在距離聲源一定距離時,經過模糊集合處理后的數據相較于原始數據更加接近正弦信號,同時具備更強的抗干擾性能。
為了觀察應用本文算法進行聲源定位的結果,本次實驗與驗證算法過程的聲源音頻信號保持一致,定位聲源實驗采用的聲源音頻仍然選擇2 kHz的標準正弦信號。圖14展示了實驗過程的流程。

圖14 實驗流程圖
對相同的聲源信號進行定位實驗,采用廣義互相關TDOA和本文算法,與麥克風的距離從近到遠選擇三點S1(2,2),S2(4,8)和S3(6,12)(單位:m)作為聲源位置,每個點分別進行10組測試,用來驗證本文算法對廣義互相關TDOA算法的提升效果。每組定位誤差結果如圖15~17所示。

表1 兩種方式進行聲源定位的平均誤差結果

圖15 點S1定位誤差對比

圖16 點S2定位誤差對比

圖17 點S3定位誤差對比
觀察上文中給出的誤差對比圖和表格數據,當聲源距離麥克風陣列變遠時,兩種方法定位的誤差均增大。當對距離麥克風較近的點S1進行測試時,由于信號本身并未產生較大的干擾,所以采用本文算法的提升效果有限;當對點S2進行測試時,聲源到麥克風陣列的距離相比之前有所增加,信號的干擾逐漸增加,本文算法的效果逐漸明顯;當對點S3進行測試時本文算法效果略有優勢。
分析產生上述結果的原因,主要是由于隨著定位距離增大,干擾信號的數據分布超過隸屬度函數的分布范圍,超過的部分數據沒有得到篩選處理,和麥克風陣列采集到的原始數據相同,所以效果略有減弱。如果想在后續實驗中確定好隸屬度函數的分布范圍,把分布范圍選定成最適合本實驗的值。這可以通過以下幾點:1)采用高精度的硬件采集設備保證采集到數據的準確性;2)選擇最為合適隸屬度函數分布,上文提到的高斯分布和三角形分布都較為合適,但二者的實際效果并沒有進行比較,甚至是否有更適合本次實驗環境的隸屬度函數分布,在相關論文里也并沒有前人進行總結,所以需要自行通過大量實驗來選定;3)通過對已知的相同信號的多次測試,不斷調整隸屬度函數覆蓋的范圍,對比結果選擇最理想的值。同時也可以選擇增加迭代次數來獲取更準確的位置坐標,但相應地也會增加系統計算的時長。
本文的目標是通過算法的改進,增強聲源定位系統的抗干擾性,減少硬件采集設備的壓力。而體現本文目標是否達成的方式,是通過觀察在帶有混響、多徑效應以及噪聲直接干擾的環境里,應用本文算法的結果精度是否優于直接采集后的計算結果精度。針對TDOA算法在復雜環境下的抗干擾性仍有較大的改進空間,本文采用模糊集合對采集到的數據進行篩選處理,并搭建簡易硬件平臺進行實驗驗證。盡管定位相對誤差較大,但仍可以通過對比實驗證明該方法相對于常用的TDOA算法,能有效改善信號數據失真的問題,進而提高系統整體性能。在未來的應用實踐過程中,可以搭建更加精密的硬件實驗裝置,并且可以將該種算法與高性能濾波器相結合,進一步提高采集數據的準確性。同時也應該注意兩點:1)對特定聲源須選擇適合的隸屬度函數才能有效發揮其作用,這需要一定的先驗知識和主觀判斷;2)本文試驗為了驗證算法的可行性,所以采用的聲源為單一頻率,屬于理想情況,在實際應用時,面對某類聲源頻率大多是分布在某一段區間之內的。所以在未來對于聲學信號與數據處理相關的研究工作中,應當積累和掌握好各類音頻信號的指標與特征。