聲源定位演算法
❶ 聲音定位中怎麼測的時間然後根據時間差來計算距離
這個靠人力很困難,得用專門的設備或者自己做的電路才行。
在大學生電子設計競賽中,一般是用單片機做。首先在系統中必須有一張地圖,且系統必須隨時知道自己的方位(有固定的角度參考基點)。
一般至少要有3個以上的點才能保持精度。它有個接收器(可360度旋轉,並可以測當前的角度),先在A點停下(A點坐標要可以知道),然後旋轉接收器,肯定存在一個角度的聲音強度特別大。此時,記下旋轉的角度(可以推算出斜率),那麼就說明,聲源和A點是在一條直線上,而且還知道它的斜率,這樣就可以通過A畫出一條直線(這個是在系統軟體中完成,人看不到)。
然後,再通過另外一個B點(同樣知道坐標),重復上面的過程,此時,B和聲源也一定在一條直線上,也知道了角度和斜率。因為聲源是同一個且只有一個,那麼這前後兩條線的交點必定就是聲源。
第三個點用來校驗和提高精度的,如果採集的點更多,精度會不斷提升。
PS:你的分析出現了方向性錯誤,聲源定位,並不是靠時間差的。
這種題目在以前大學生電子設計競賽中曾多次出現過。
你說的時間差定位,主要用在超聲波定位中,它屬於一種主動定位,也就是發生超聲波,同時開始計數,當接收到回波的時候,停止計數,根據時間差與聲波的速度,推算出障礙物的距離。
這種定位是一種主動定位,也是用單片機做的。前一種是被動定位,也就是直接確定發聲物體的位置。難度上來看,前者比後者難得多。後者,淘寶上直接可以買到商品,從40塊左右到300多都有。
而前者沒有直接的產品,需要自己做,技術難度比較高。
❷ 如何檢測麥克風陣列聲源定位的性能好壞
一般來說,基於麥克風陣列的聲源定位演算法劃分為三類:一是基於波束形成的方法;
二是基於高解析度譜估計的方法;
三是基於聲達時延差(TDOA)的方法。
基於最大輸出功率的可控波束形成技術Beamforming,它的基本思想就是將各陣元採集來的信號進行加權求和形成波束,通過搜索聲源的可能位置來引導該波束,修改權值使得傳聲器陣列的輸出信號功率最大。
這種方法既能在時域中使用,也能在頻域中使用。
它在時域中的時間平移等價於在頻域中的相位延遲。
在頻域處理中,首先使用一個包含自譜和互譜的矩陣,稱之為互譜矩陣(Cross-Spectral Matrix,CSM)。
在每個感興趣頻率之處,陣列信號的處理給出了在每個給定的空間掃描網格點上或每個信號到達方向(Direction ofArrival,DOA)的能量水平。
因此,陣列表示了一種與聲源分布相關聯的響應求和後的數量。
這種方法適用於大型麥克風陣列,對測試環境適應性強。
GLFore的acam100就是這個原理。