• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

影響聲音定位中的幾個因素分析

2020/02/10
113
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

實驗裝置和數(shù)據(jù)采集

數(shù)據(jù)是通過基于 STM32F103RE 的 AD、DA 采樣板來控制音響發(fā)送 Chirp 聲音信號和采集 MIC 接收到的聲音信號的。

實驗中測試面包板

1. 直線滑軌

演示中所使用的滑軌長度大約為 1 米,滑塊有效移動距離為 0.9 米。通過 ZIGBEE 無線控制命令控制滑塊做直線均勻運動。

設置在滑軌上的聲音傳感器

實驗中的 Chirp 聲音信號是由單片機產(chǎn)生并通過 DA 輸出給藍牙音箱的播放。信號從數(shù)字緩沖區(qū)通過 DA 轉(zhuǎn)換成模擬信號,聲音信號經(jīng)過 AD 轉(zhuǎn)換為數(shù)字信號的速率為都設置為 10kHz。輸出和輸入聲音的緩存區(qū)的長度為 2500,聲波時間長度為 0.25 秒。

實際聲音的長度為 2048,。因此在輸出和采樣前后各有 250 個數(shù)據(jù)點(大約 25ms)靜音時間。下圖給出了一個典型的發(fā)送聲音信號和接收到的聲音采集信號波形。

每個采集數(shù)據(jù)包里的數(shù)據(jù)波形

采集數(shù)據(jù)處理

在每個位置點都采集到相應的發(fā)送和接受數(shù)據(jù),通過相關(guān)計算獲得時間延遲。

1. 發(fā)送和接收數(shù)據(jù)之間的互相關(guān)系數(shù)計算

計算每個數(shù)據(jù)包里的發(fā)送信號與接收信號之間的相關(guān)系數(shù),從而確定最大的峰值位置。下圖給出了一個典型的發(fā)送和接受信號的相關(guān)結(jié)果曲線:

第一個數(shù)據(jù)包中發(fā)送和接收數(shù)據(jù)之間的相關(guān)系數(shù)

2. 相關(guān)系數(shù)的最大、最小位置與數(shù)據(jù)采樣之間的關(guān)系

下圖將每個數(shù)據(jù)包中相關(guān)系數(shù)的最大值點和最小值點的位置與麥克位置之間的繪制出來。

隨著數(shù)據(jù)序號的增多,對應接收聲音的麥克位置遠離音箱,相關(guān)系數(shù)的極值位置也在發(fā)生變化,整體上隨著采用序列的增多而線性下降,反映了麥克的位置是線性遠離聲源的位置。

相關(guān)系數(shù)最大值最小值的位置與數(shù)據(jù)采用之間的關(guān)系

數(shù)據(jù)中最大值的位置基本上都是單調(diào)下降,只是在后期出現(xiàn)了略微的抖動。但是最小值的位置出現(xiàn)過較大的波動。這說明最大值的位置用于確定延遲時間比較穩(wěn)定。

下圖顯示了相關(guān)系數(shù)最大值和最小值隨著采樣點位置之間的關(guān)系。隨著采樣點增多,音箱和麥克風之間的距離增加。相關(guān)系數(shù)的絕對值因為噪聲的原因都會下降。整體上極大值點的相關(guān)系數(shù)呈現(xiàn)單調(diào)下降的趨勢,而極小值點的數(shù)值變化呈現(xiàn)非單調(diào)的形態(tài)。這也從另外一個角度反映了為什么前面相關(guān)系數(shù)極小值點的位置出現(xiàn)抖動的原因。

相關(guān)系數(shù)最大值和最小值與采樣位置之間的關(guān)系

3. 分析相關(guān)峰值位置的變化與采樣距離之間的關(guān)系

對于相關(guān)系數(shù)最大值峰值點的變化從開始的 2497,一直變化到最后的 2473。變化的數(shù)值: ?24。

由于實驗中聲音信號的采集頻率Hz,所以上述峰值位置的變化所對應的時間延遲為:

如果考慮到當時的室溫為 25℃左右,對應的空氣中聲音傳播的速度:

那么前面所對應的距離為:

測量接收聲音的 MIC 實際移動的距離為 0.671 米。這中間出現(xiàn)了?的誤差。

具體為什么?現(xiàn)在還不可得而知。

實際接收聲音的 MIC 移動的距離

聲音延遲的分辨率與空間分辨率

通過相關(guān)運算可以獲得聲音傳播的延遲,進而獲得聲源與接收麥克之間的距離。

由于聲音信號是通過離散時間采樣,因此對于時間 延遲的分辨率就會受到采樣時間的影響。在前面給出了測量結(jié)果中可以看出時間延遲曲線呈現(xiàn)明顯的臺階,這是由于采樣時間所引起的時間分辨率引起的。

相關(guān)系數(shù)最大值最小值的位置與數(shù)據(jù)采用之間的關(guān)系

根據(jù)實驗延遲計算出空間距離,同樣也會具有一個分辨率下限。。其中的是空氣中的升速,是聲音信號采樣時間。

下面討論如何提高聲音延遲的分辨率、計算效率、以及麥克的不同空間指向?qū)τ跍y量結(jié)果的影響。

快速相關(guān)運算

1. 利用 FFT 加速計算相關(guān)運算

(1)相關(guān)運算的復雜度
對于兩個時間信號,它們的相關(guān)運算結(jié)果定義如下:

如果這兩個信號都是實值信號,公式里面的共軛就可以省略。

對于兩個實數(shù)離散時間信號,它們之間的普通相關(guān)運算定義為:

從相關(guān)運算定義來看,計算兩個長度為的序列相關(guān)運算,乘法、加法的計算復雜度與成正比。

(2)相關(guān)運算與卷積運算的關(guān)系
在信號運算中,還有一個應用更廣泛的運算:卷積運算。之間的卷積運算定義為:

對比一下信號的相關(guān)運算和卷積運算的定義,可以看出它們之間的關(guān)系:

(3)快速卷積數(shù)值計算
之所以討論相關(guān)運算與卷積運算之間的關(guān)系,是為了尋找相關(guān)運算的快速算法。

計算一個序列的離散傅里葉變換有相應的快速算法 - 快速傅里葉變換,在為 2 的整數(shù)次冪的情況下,計算 FFT 的乘法,加法的復雜度都在的數(shù)量級別。正變換和反變換的復雜度相同。

在根據(jù)傅里葉變換的卷積定理,序列的時域卷積(和)運算,在頻域是乘積運算?;诖耍倮们懊嬗懻摰南嚓P(guān)與卷積運算之間的關(guān)系,可以得到計算兩個序列的相關(guān)運算的快速算法:

在實際工程中,往往參與卷積的兩個信號實現(xiàn)已知,比如在利用聲音定位的時候,發(fā)送聲音信號往往是事先確定好的固定的 Chirp 信號,每次參與計算的新的信號是接收到的回聲信號。所以在上面卷積的快速算法中,對于已知信號的 FFT 可以事先計算好并存儲,實際運算中只需要完成對新采集到信號的 FFT 計算,以及對乘積結(jié)果的反 FFT 計算。

最后需要補充一下,在利用上面公式計算的時候,還需要將兩個信號通過補 0,變成長度等于兩個序列長度之和減一。

2. 快速相關(guān)運算結(jié)果

使用快速計算,比直接在時域中進行卷積速度大大提高了。通過計算獲得 100 個采樣數(shù)據(jù)相關(guān)峰值點,使用 FFT 需要大約:0.36 秒鐘;而使用普通的相關(guān)運算則需要 200 秒左右。

下圖顯示了通過兩種方法所得到的相關(guān)峰值位置隨著麥克風距離音箱位置變化而產(chǎn)生的延遲,這兩種方法所得到的結(jié)果是一樣的。

通過 FFT 得到的相關(guān)結(jié)果峰值位置

快速算法和直接計算兩種方法的速度對比,可以通過下面兩個動圖所顯示的計算過程能夠體會出來。

下面是應用 FFT 快速計算機相關(guān)運算的過程,結(jié)果幾乎瞬間給出。

使用 FFT 計算 100 點相關(guān)結(jié)果只需要 0.37 秒

下面則是直接計算卷積的過程,足足等了三分多鐘。

直接計算 100 點相關(guān)結(jié)果則需要 192 秒左右

提高相關(guān)運算的空間精度

1. 為什么前面測量結(jié)果曲線中出現(xiàn)臺階

如果直接根據(jù)序列的相關(guān)結(jié)果峰值位置確定聲音延遲,那么聲音延遲的時間分辨率就是聲音信號的采樣時間,再根據(jù)聲音速度,可以計算出所對應的測量距離的空間分辨率。

在采樣時間,20℃空氣速度,對應的空間分辨率,也就是當收音麥克與音源之間的距離變化小于 3.4 厘米時,所測量得到的結(jié)果是一樣的。這也就解釋了前面 100 個位置點測量聲音延遲曲線出現(xiàn)了很多臺階的原因。

2. 如何提高測量結(jié)果的空間分辨率

提高基于聲音采樣數(shù)據(jù)相關(guān)方法測量距離的空間分辨率,可以通過提高 AD 采樣速率來解決。但這需要更高速的 AD 轉(zhuǎn)換器,更多的數(shù)據(jù)存儲內(nèi)存以及更快速數(shù)據(jù)計算能力。

除此之外,還可以通過數(shù)據(jù)插值處理的方法來提高測量結(jié)果的空間分辨率。

數(shù)據(jù)插值可從離散時間采樣數(shù)據(jù)中獲得時間更加密集的數(shù)據(jù)。插值分解成兩個過程:第一個過程是將離散時間信號恢復成一個連續(xù)時間信號;第二個過程就是在連續(xù)時間信號的基礎(chǔ)上采用更加密集的是時間間隔采樣

恢復成連續(xù)時間信號可以有零階保持、一階保持、理想插值等不同方法,它們都可以看成是離散時間采樣脈沖信號與一個插值函數(shù)進行卷積的結(jié)果:

零階保持、一階保持、理想插值分別對應的卷積信號是矩形信號、三角信號以及信號等。

不同的離散時間信號重建成連續(xù)時間信號的方法

使用理想插值所獲得的結(jié)果更加平滑,但計算起來相對比較復雜。但如果是從離散時間信號的傅里葉變換結(jié)果中恢復插值信號的話,則有一個非常方便的方法,那就是通過對數(shù)據(jù)的 DFT 結(jié)果補零,獲得更長的頻譜數(shù)據(jù),再通過反離散傅里葉變換,就可以得到原來數(shù)據(jù)的理想插值結(jié)果了。具體的 原理在信號與系統(tǒng)課程中會進行介紹的。

由于前面在快速計算相關(guān)結(jié)果的時候,就利用了快速傅里葉變換,所以可以在最后一步進行反傅里葉變換的時候,先進行補零,然后在進行。

3. 實驗數(shù)據(jù)對比

下面給出了插值 10 倍之后所獲得的相關(guān)峰值位置結(jié)果,對比原始計算方法,可以看到經(jīng)過插值之后的結(jié)果明顯平滑多了。通過插值后的結(jié)果所獲得的空間分辨率就從原來的 3.6 厘米降低到 3.6 毫米了。

經(jīng)過空間插值細化后 10 倍后的相關(guān)峰值位置計算結(jié)構(gòu)

由于實驗環(huán)境是在室內(nèi),存在著很多反射波的干擾,所以當距離遠了之后,距離測量出現(xiàn)了很多的波動,它們反映了空間中的很多駐波干擾。下圖給出了不同插值倍率下結(jié)果曲線。

隨著插值倍數(shù)增加,所得到延遲曲線變化

通過簡單的差值就可以輕松提高測距的空間分辨率,所需要的代價就是計算時間加長了。下面圖給出了插值的倍數(shù)與結(jié)果計算消耗的時間之間的關(guān)系,整體上呈現(xiàn)線性比例關(guān)系。

?

細化倍數(shù)和計算時間

室內(nèi)環(huán)境反射波對于測量結(jié)果的影響

由于是在室內(nèi)進行實驗,麥克風所接受到的聲音信號除了直接來自于聲源之外,可能還包括有四周墻壁的反射信號。如果聲源距離比較近,四周的反射聲波強度受到衰減,對于測量結(jié)果影響較小。

下面通過控制接受麥克的不同方向,考察一下測量結(jié)果是否受到影響。

使用舵機控制 MIC 的方向

將麥克放置距離音箱 30 厘米左右,方向從左到右旋轉(zhuǎn) 180°。對所獲得的聲音數(shù)據(jù)使用前面給出的插值細分方法,得到的聲音延遲時間。下圖給出了不同方向聲音延遲結(jié)果曲線:

不同指向?qū)南嚓P(guān)延遲結(jié)果

延遲時間對應的最大值和最小值分別是:

在 10kHz 的采樣率下,上述時間差所對應的距離變化為:

這個 3 厘米的變化距離和麥克風轉(zhuǎn)動過程中所引起的距離變化大體相當,說明四周的反射波對于測量結(jié)果影響不大。同時所使用的 MIC 的方向指向性并不強,可以對來自于 180°方向的聲波都能夠很好的探測。

下面是分別將麥克在距離音箱 10 厘米和 50 厘米處重新測量不同的指向?qū)τ跍y距結(jié)果的影響。

在 10 厘米距離下麥克不同方向?qū)穆曇粞舆t

?

在 50 厘米距離下麥克不同方向?qū)穆曇粞舆t

結(jié)論

根據(jù)前面的一些初步實驗數(shù)據(jù),驗證了普通的喇叭發(fā)出的 Chirp 聲音,通過小型全向麥克所獲得的聲音信號可以獲得空間分辨率在 0.5 厘米之內(nèi)的檢測精度。當然,這個精度會受到麥克風的與聲源之間的指向的影響,上述的測量誤差就會引入 3 個厘米的誤差。

3 個厘米誤差對于在賽場上比賽的智能車模來說,問題不是很大。可以基于此設計出未來新型的室外聲音引導的信標賽題組。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

公眾號TsinghuaJoking主筆。清華大學自動化系教師,研究興趣范圍包括自動控制、智能信息處理、嵌入式電子系統(tǒng)等。全國大學生智能汽車競賽秘書處主任,技術(shù)組組長,網(wǎng)稱“卓大大”。