針對智能車聲標組的聲音定位方案研究
1 引言
聲音定位是指動物利用環(huán)境中的聲音刺激確定聲源方向和距離的行為。用于覓食,尋找幼仔、父母,躲避捕食者等。取決于到達兩耳的聲音的物理特性變化,包括頻率、強度和持續(xù)時間上的差別。為模仿這一生物現(xiàn)象,許多定位方法被應(yīng)用到了音源定位當中,聲音定位技術(shù)最早被應(yīng)用在聲吶系統(tǒng)中,后來逐漸地應(yīng)用到探測水下目標的領(lǐng)域,因為電磁波在海水中會有較為明顯的信號衰減,所以電磁波的傳輸距離就會受到較大的限制,而聲音定位技術(shù)因為其自身特點,剛好彌補了電磁波的不足。
時至今日,聲音定位作為一種已經(jīng)應(yīng)用廣泛的技術(shù),利用聲學傳感器以及與其相連的電子設(shè)備(MCU)和相關(guān)電路,處理接收到的聲波信號,確定聲源的位置。但諸多聲音定位方案往往對傳感器精度要求較高。在嵌入式系統(tǒng)中由于ADC采樣速率或微控制器的算力限制,常常不能達到很高的精度。
為解決這一問題,本文提出了一種利用聲音信號定向,F(xiàn)M信號輔助計算距離的方法,能夠在確保一定精度的條件下,實現(xiàn)快速且準確的定位。其中,聲音定向使用廣義互相關(guān)計算多個麥克風到聲源的距離差,具有較強的抗擾性。
2 聲音定位研究現(xiàn)狀
目前應(yīng)用比較廣泛的定位算法有信號到達時間測量AOA、信號到達角度測量AOA、接收信號強度指示RSSI、信號到達TDOA等。
接下來,對上述算法的利弊及在智能車信標組中的可行性進行分析。
1.1 信號到達時間測量:
由于聲音的傳播速率是確定的,只要測量出信號發(fā)送與接收之間的時間差,就可以根據(jù)傳輸時間計算出到聲源的距離。聲源目標即在以麥克風為中心,距離為半徑的圓上。當至少有三個不同位置的麥克風到聲源的距離時,即可通過三個或更多個圓的交點為聲源位置。但是,由于信標組原有chrip信號的發(fā)送頻率和tc264的算力限制,用fm信號和麥克風信號互相關(guān)得到的距離分辨率只有1.7cm,而且受限于車身大小,麥克風間距比較近,顯然不足以用于進行AOA定位。該算法更加適合使用多個距離較遠的基站定位。
1.2信號到達角度測量:
通過陣列智能天線測出聲源目標與基站之間所成的夾角,直接用多個夾角的連線交點確定聲源位置。顯然該方法難以應(yīng)用在智能車信標組的比賽中。
1.3 RSSI:
通過接受到信號的強弱測定接收點到天線的距離,但該算法需要非常準確的信號衰減模型,在智能車信標比賽中顯然也難以實現(xiàn)。
1.4 TDOA:
該算法是TOA算法的改進,使用兩麥克風之間的距離差用于定位,從而也就不再需要嚴格的時間同步信號。用兩個聲音信號即可確定聲源在一組雙曲線上。當有多個雙曲線時,即可通過解雙曲線的交點計算出聲源位置。該算法的硬件實現(xiàn)相對最為簡單,我們的算法本質(zhì)上也是在特定麥克風排布下,TDOA算法的近似解。不過仍然是由于距離差精度不夠高,直接使用解方程方法的話,計算時間長且精度較低。
3 廣義互相關(guān)算法分析
假設(shè)兩個麥克風接收到的信號分別為聲源信號和互不相關(guān)的噪聲,音源信號與噪聲信號也是互不相關(guān)的。
在實際中,由于有限樣本估計以及噪聲的影響,互相關(guān)估計可能沒有一個明顯的尖峰存在。為了凸現(xiàn)尖峰,可以先對數(shù)據(jù)進行濾波處理,它等效于在頻域的加權(quán)處理,這有利于加強接收信號中源信號的譜分量,提高信噪比,從而獲得更高的時延估計精度。
廣義互相關(guān)法通過求兩信號之間的互功率譜,并在頻域內(nèi)給予一定的加權(quán)。來對信號和噪聲進行白化處理,增強信號中信噪比較高的頻率成分,從而抑制噪聲的影響,再反變換到時域,得到兩信號之間的廣義互相關(guān)函數(shù)。PHAT加權(quán)相當于白化濾波,對大噪聲能取得較好效果。
4 傳統(tǒng)TODA算法
通過廣義互相關(guān)的方法可以求出到達時間或者到達時間差,即可以計算出聲音音源到麥克風的距離,或音源到不同麥克風的距離差。
Trilateration(三邊測量)是一種常用的定位算法,在實際應(yīng)用中,三個圓不能恰好交為一點,可以采用最小二乘法進行估計得到未知點坐標。在求解非線性方程組的過程中需要用到Chan算法,Chan算法在求解非遞歸的雙曲線方程組時計算量相對較小,比較適合單片機進行計算,而且由于該算法可以處理一定的高斯噪聲,在智能車使用中可以取得比較好的定位結(jié)果。
不過,在實際測試中,雖然該算法準確率較高,但計算時間相對較長,下面提出一種特殊麥克風(基站)排布下的極簡定位算法。
5 特殊麥克風排布下的簡單定位算法
為了解決上述問題,我們將定向與測距分離,使用四麥克風采集聲音進行方向計算,再對FM和聲音信號進行互相關(guān)計算得到距離。車模上安裝有4個呈正方形排列的麥克風,以及一個fm模塊。我們依靠兩組麥克風的到達時間差確定方位,依靠fm與麥克風互相關(guān)計算距離,然后根據(jù)距離差的差,計算出聲源的方向。
以正方形中心為遠點建立坐標系,則四個麥克風坐標為 , 其中i=1,2,3,4,設(shè)聲音音源坐標為 ,現(xiàn)將聲音音源到麥克風1的距離 與聲音音源到麥克風4的距離 做差,即 以正方形中心為遠點建立坐標系,則四個麥克風坐標為 , 其中i=1,2,3,4,現(xiàn)將聲音音源到麥克風1的距離 與聲音音源到麥克風4的距離做差。
下面利用matlab定量繪制某一方向的值,由曲線可知 在距離相對較遠時無限趨近某一常數(shù),而今年燈殼的半徑加上車身已超過30cm,是滿足音源相對較遠這一條件。因此,可以用唯一確定音源角度。
分別記兩組對角線上麥克風的距離差為距離差1和距離差2,通過matlab仿真可以進行論證,兩組對角線麥克風的距離差的差(以下簡稱為距離差的差)在距離相對較遠時無限趨近某一常數(shù),該常數(shù)隨著角度變化而發(fā)生改變,如下圖。由于今年新版信標燈的燈殼半徑加上車身已超過30cm,是滿足這一條件的,在實際測試中距離差的差也確實是一個常數(shù)。為了防止近距離誤判,也使用fm與麥克風互相關(guān)測出的距離進行限制。
下面將求解這一常數(shù)與聲源角度的對應(yīng)關(guān)系。仍然使用matlab仿真進行分析。智能車車模的實際測試驗,用麥克風數(shù)據(jù)互相關(guān)算出的距離差、距離差的差與角度的關(guān)系。接收采用山外上位機,紅線和藍線分別為兩組距離差,棕線為距離差的差,可以發(fā)現(xiàn)與matlab仿真結(jié)果基本保持了一致。
由matlab仿真圖不難分析出,雖然單獨根據(jù)距離差的差不能推導出確定的聲源角度,但如果結(jié)合兩個距離差本身的正負進行輔助,只需要進行簡單的分段線性變換,就可以很好的將距離差的差與聲源角度一一對應(yīng)起來。可以發(fā)現(xiàn),求解非常接近線性關(guān)系。由于比賽所用chrip信號的頻率和tc264芯片算力和存儲能力的限制,綜合控制所需實時性的考量,我們最終選擇了20khz的adc采樣速率,理論上用該算法解算聲源角度的分辨率為2.3度,誤差在0.6度以內(nèi),完全滿足智能車信標組比賽的要求。
6 結(jié)論
本文分析了傳統(tǒng)定位方法的優(yōu)缺點,包括chan算法,三邊測量方法等,這些方法雖然準確,但對時延精度要求較高,我們所使用的微控制器采樣和處理能力無法達到要求。我們進而提出了適合本競賽項目的簡單定位算法,并使用matlab完成仿真,通過仿真證明了其合理性。之后進行實物進行測試,證實了該方法的定位精度能夠滿足要求,且實時性較好,能夠在本競賽項目中達到令人滿意的定位效果。
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!