實驗裝置和數據采集
數據是通過基于 STM32F103RE 的 AD、DA 采樣板來控制音響發(fā)送 Chirp 聲音信號和采集 MIC 接收到的聲音信號的。
實驗中測試面包板
1. 直線滑軌
演示中所使用的滑軌長度大約為 1 米,滑塊有效移動距離為 0.9 米。通過 ZIGBEE 無線控制命令控制滑塊做直線均勻運動。
設置在滑軌上的聲音傳感器
實驗中的 Chirp 聲音信號是由單片機產生并通過 DA 輸出給藍牙音箱的播放。信號從數字緩沖區(qū)通過 DA 轉換成模擬信號,聲音信號經過 AD 轉換為數字信號的速率為都設置為 10kHz。輸出和輸入聲音的緩存區(qū)的長度為 2500,聲波時間長度為 0.25 秒。
實際聲音的長度為 2048,。因此在輸出和采樣前后各有 250 個數據點(大約 25ms)靜音時間。下圖給出了一個典型的發(fā)送聲音信號和接收到的聲音采集信號波形。
每個采集數據包里的數據波形
采集數據處理
在每個位置點都采集到相應的發(fā)送和接受數據,通過相關計算獲得時間延遲。
1. 發(fā)送和接收數據之間的互相關系數計算
計算每個數據包里的發(fā)送信號與接收信號之間的相關系數,從而確定最大的峰值位置。下圖給出了一個典型的發(fā)送和接受信號的相關結果曲線:
第一個數據包中發(fā)送和接收數據之間的相關系數
2. 相關系數的最大、最小位置與數據采樣之間的關系
下圖將每個數據包中相關系數的最大值點和最小值點的位置與麥克位置之間的繪制出來。
隨著數據序號的增多,對應接收聲音的麥克位置遠離音箱,相關系數的極值位置也在發(fā)生變化,整體上隨著采用序列的增多而線性下降,反映了麥克的位置是線性遠離聲源的位置。
相關系數最大值最小值的位置與數據采用之間的關系
數據中最大值的位置基本上都是單調下降,只是在后期出現了略微的抖動。但是最小值的位置出現過較大的波動。這說明最大值的位置用于確定延遲時間比較穩(wěn)定。
下圖顯示了相關系數最大值和最小值隨著采樣點位置之間的關系。隨著采樣點增多,音箱和麥克風之間的距離增加。相關系數的絕對值因為噪聲的原因都會下降。整體上極大值點的相關系數呈現單調下降的趨勢,而極小值點的數值變化呈現非單調的形態(tài)。這也從另外一個角度反映了為什么前面相關系數極小值點的位置出現抖動的原因。
相關系數最大值和最小值與采樣位置之間的關系
3. 分析相關峰值位置的變化與采樣距離之間的關系
對于相關系數最大值峰值點的變化從開始的 2497,一直變化到最后的 2473。變化的數值: ?24。
由于實驗中聲音信號的采集頻率Hz,所以上述峰值位置的變化所對應的時間延遲為:
如果考慮到當時的室溫為 25℃左右,對應的空氣中聲音傳播的速度:
那么前面所對應的距離為:
測量接收聲音的 MIC 實際移動的距離為 0.671 米。這中間出現了?的誤差。
具體為什么?現在還不可得而知。
實際接收聲音的 MIC 移動的距離
聲音延遲的分辨率與空間分辨率
通過相關運算可以獲得聲音傳播的延遲,進而獲得聲源與接收麥克之間的距離。
由于聲音信號是通過離散時間采樣,因此對于時間 延遲的分辨率就會受到采樣時間的影響。在前面給出了測量結果中可以看出時間延遲曲線呈現明顯的臺階,這是由于采樣時間所引起的時間分辨率引起的。
相關系數最大值最小值的位置與數據采用之間的關系
根據實驗延遲計算出空間距離,同樣也會具有一個分辨率下限。。其中的是空氣中的升速,是聲音信號采樣時間。
下面討論如何提高聲音延遲的分辨率、計算效率、以及麥克的不同空間指向對于測量結果的影響。
快速相關運算
1. 利用 FFT 加速計算相關運算
(1)相關運算的復雜度
對于兩個時間信號,它們的相關運算結果定義如下:
如果這兩個信號都是實值信號,公式里面的共軛就可以省略。
對于兩個實數離散時間信號,它們之間的普通相關運算定義為:
從相關運算定義來看,計算兩個長度為的序列相關運算,乘法、加法的計算復雜度與成正比。
(2)相關運算與卷積運算的關系
在信號運算中,還有一個應用更廣泛的運算:卷積運算。之間的卷積運算定義為:
對比一下信號的相關運算和卷積運算的定義,可以看出它們之間的關系:
(3)快速卷積數值計算
之所以討論相關運算與卷積運算之間的關系,是為了尋找相關運算的快速算法。
計算一個序列的離散傅里葉變換有相應的快速算法 - 快速傅里葉變換,在為 2 的整數次冪的情況下,計算 FFT 的乘法,加法的復雜度都在的數量級別。正變換和反變換的復雜度相同。
在根據傅里葉變換的卷積定理,序列的時域卷積(和)運算,在頻域是乘積運算?;诖耍倮们懊嬗懻摰南嚓P與卷積運算之間的關系,可以得到計算兩個序列的相關運算的快速算法:
在實際工程中,往往參與卷積的兩個信號實現已知,比如在利用聲音定位的時候,發(fā)送聲音信號往往是事先確定好的固定的 Chirp 信號,每次參與計算的新的信號是接收到的回聲信號。所以在上面卷積的快速算法中,對于已知信號的 FFT 可以事先計算好并存儲,實際運算中只需要完成對新采集到信號的 FFT 計算,以及對乘積結果的反 FFT 計算。
最后需要補充一下,在利用上面公式計算的時候,還需要將兩個信號通過補 0,變成長度等于兩個序列長度之和減一。
2. 快速相關運算結果
使用快速計算,比直接在時域中進行卷積速度大大提高了。通過計算獲得 100 個采樣數據相關峰值點,使用 FFT 需要大約:0.36 秒鐘;而使用普通的相關運算則需要 200 秒左右。
下圖顯示了通過兩種方法所得到的相關峰值位置隨著麥克風距離音箱位置變化而產生的延遲,這兩種方法所得到的結果是一樣的。
通過 FFT 得到的相關結果峰值位置
快速算法和直接計算兩種方法的速度對比,可以通過下面兩個動圖所顯示的計算過程能夠體會出來。
下面是應用 FFT 快速計算機相關運算的過程,結果幾乎瞬間給出。
使用 FFT 計算 100 點相關結果只需要 0.37 秒
下面則是直接計算卷積的過程,足足等了三分多鐘。
直接計算 100 點相關結果則需要 192 秒左右
提高相關運算的空間精度
1. 為什么前面測量結果曲線中出現臺階
如果直接根據序列的相關結果峰值位置確定聲音延遲,那么聲音延遲的時間分辨率就是聲音信號的采樣時間,再根據聲音速度,可以計算出所對應的測量距離的空間分辨率。
在采樣時間,20℃空氣速度,對應的空間分辨率,也就是當收音麥克與音源之間的距離變化小于 3.4 厘米時,所測量得到的結果是一樣的。這也就解釋了前面 100 個位置點測量聲音延遲曲線出現了很多臺階的原因。
2. 如何提高測量結果的空間分辨率
提高基于聲音采樣數據相關方法測量距離的空間分辨率,可以通過提高 AD 采樣速率來解決。但這需要更高速的 AD 轉換器,更多的數據存儲內存以及更快速數據計算能力。
除此之外,還可以通過數據插值處理的方法來提高測量結果的空間分辨率。
數據插值可從離散時間采樣數據中獲得時間更加密集的數據。插值分解成兩個過程:第一個過程是將離散時間信號恢復成一個連續(xù)時間信號;第二個過程就是在連續(xù)時間信號的基礎上采用更加密集的是時間間隔采樣。
恢復成連續(xù)時間信號可以有零階保持、一階保持、理想插值等不同方法,它們都可以看成是離散時間采樣脈沖信號與一個插值函數進行卷積的結果:
零階保持、一階保持、理想插值分別對應的卷積信號是矩形信號、三角信號以及信號等。
不同的離散時間信號重建成連續(xù)時間信號的方法
使用理想插值所獲得的結果更加平滑,但計算起來相對比較復雜。但如果是從離散時間信號的傅里葉變換結果中恢復插值信號的話,則有一個非常方便的方法,那就是通過對數據的 DFT 結果補零,獲得更長的頻譜數據,再通過反離散傅里葉變換,就可以得到原來數據的理想插值結果了。具體的 原理在信號與系統(tǒng)課程中會進行介紹的。
由于前面在快速計算相關結果的時候,就利用了快速傅里葉變換,所以可以在最后一步進行反傅里葉變換的時候,先進行補零,然后在進行。
3. 實驗數據對比
下面給出了插值 10 倍之后所獲得的相關峰值位置結果,對比原始計算方法,可以看到經過插值之后的結果明顯平滑多了。通過插值后的結果所獲得的空間分辨率就從原來的 3.6 厘米降低到 3.6 毫米了。
經過空間插值細化后 10 倍后的相關峰值位置計算結構
由于實驗環(huán)境是在室內,存在著很多反射波的干擾,所以當距離遠了之后,距離測量出現了很多的波動,它們反映了空間中的很多駐波干擾。下圖給出了不同插值倍率下結果曲線。
隨著插值倍數增加,所得到延遲曲線變化
通過簡單的差值就可以輕松提高測距的空間分辨率,所需要的代價就是計算時間加長了。下面圖給出了插值的倍數與結果計算消耗的時間之間的關系,整體上呈現線性比例關系。
?
細化倍數和計算時間
室內環(huán)境反射波對于測量結果的影響
由于是在室內進行實驗,麥克風所接受到的聲音信號除了直接來自于聲源之外,可能還包括有四周墻壁的反射信號。如果聲源距離比較近,四周的反射聲波強度受到衰減,對于測量結果影響較小。
下面通過控制接受麥克的不同方向,考察一下測量結果是否受到影響。
使用舵機控制 MIC 的方向
將麥克放置距離音箱 30 厘米左右,方向從左到右旋轉 180°。對所獲得的聲音數據使用前面給出的插值細分方法,得到的聲音延遲時間。下圖給出了不同方向聲音延遲結果曲線:
不同指向對應的相關延遲結果
延遲時間對應的最大值和最小值分別是:
在 10kHz 的采樣率下,上述時間差所對應的距離變化為:
這個 3 厘米的變化距離和麥克風轉動過程中所引起的距離變化大體相當,說明四周的反射波對于測量結果影響不大。同時所使用的 MIC 的方向指向性并不強,可以對來自于 180°方向的聲波都能夠很好的探測。
下面是分別將麥克在距離音箱 10 厘米和 50 厘米處重新測量不同的指向對于測距結果的影響。
在 10 厘米距離下麥克不同方向對應的聲音延遲
?
在 50 厘米距離下麥克不同方向對應的聲音延遲
結論
根據前面的一些初步實驗數據,驗證了普通的喇叭發(fā)出的 Chirp 聲音,通過小型全向麥克所獲得的聲音信號可以獲得空間分辨率在 0.5 厘米之內的檢測精度。當然,這個精度會受到麥克風的與聲源之間的指向的影響,上述的測量誤差就會引入 3 個厘米的誤差。
3 個厘米誤差對于在賽場上比賽的智能車模來說,問題不是很大??梢曰诖嗽O計出未來新型的室外聲音引導的信標賽題組。