2016-03-23 57 views
0

我在查找或實現算法以查找信號源方面遇到了一些麻煩。我的工作目標是找到發聲器的位置。使用時差的信號的三角測量(TDOA)

爲了達到這個目的,我使用了三個振動傳感器。我使用的技術是基於到達時間差的多點定位。

使用接收信號的交叉相關來找到每個傳感器之間的到達時間差。

我已經實現了算法來查找到達時間差,但是我的問題更多的是多邊測量如何工作,基於我的參考我不清楚,而且我找不到任何其他好的參考自由/開放。

我看到這個帖子Trilateration using TDOA 但我不知道如何解決多點定位維基百科頁面的方程組(7),因爲我只有三個TDOA。

任何幫助,在此,將不勝感激

回答

0

你有三個傳感器座標A,B,C,未知信號源enter code here P的座標,信號不明時開始t0和信號註冊ta, tb, tc的三倍。

示例:讓我們的傳感器A在12:00:05,傳感器B - 在12:00:00,傳感器C - 12:00:07中收到信號。這樣分配的時間差:ta=5, tb=0, tc=7

從傳感器到源平方距離對應的信號的步行倍(在空氣或另一環境speed of sound)速度v

(Ax-Px)^2 + (Ay-Py)^2 = (v*(ta-t0))^2 {1} 
(Bx-Px)^2 + (By-Py)^2 = (v*(tb-t0))^2 {2} 
(Cx-Px)^2 + (Cy-Py)^2 = (v*(tc-t0))^2 {3} 

打開括號,然後減去方程({2 } - {1},{3} - {2},{1} - {3})丟棄方塊未知項。

Ax^2-2*Ax*Px + Px^2 + Ay^2-2*Ay*Py + Py^2 = v^2*(ta^2 - 2*ta*t0 + t0^2) 
Bx^2-2*Bx*Px + Px^2 + By^2-2*By*Py + Py^2 = v^2*(tb^2 - 2*tb*t0 + t0^2) 
Cx^2-2*Cx*Px + Px^2 + Cy^2-2*Cy*Py + Py^2 = v^2*(tc^2 - 2*tc*t0 + t0^2) 

Bx^2-Ax^2 -2*(Bx-Ax)*Px + By^2-Ay^2 -2*(By-Ay)*Py = v^2*(tb^2-ta^2 -2*(tb-ta)*t0) {1'} 
Cx^2-Bx^2 -2*(Cx-Bx)*Px + Cy^2-By^2 -2*(Cy-By)*Py = v^2*(tc^2-tb^2 -2*(tc-tb)*t0) {2'} 
Ax^2-Cx^2 -2*(Ax-Cx)*Px + Ay^2-Cy^2 -2*(Ay-Cy)*Py = v^2*(ta^2-tc^2 -2*(ta-tc)*t0) {3'} 

現在你的系統有three linear equations有三個未知數。這可能會用一些廣泛的算法來解決 - Gauss eliminationLU decomposition

請注意,解決方案精度強烈依賴於座標和時間測量中的小誤差(此方法不是非常健壯)。

+0

速度v =峯值? ,對於t0我怎麼得到它? Ta = BC的BC和Tb和AC的TC的TDOA =聲音速度是 –

+0

。 t0是未知的值,你會發現它作爲一個旁道的效果。 ta,tb,tc是信號註冊的時刻。您可以將最早的時間分配爲零,並將此時間分配給其他人。添加示例。 – MBo

+0

好吧然後對我來說我有Tbc = 88ms,Tab = 44ms和Tac = 44ms 是對的?我通過a,b,c信號之間的互相關發現了這些信息,所以t的t和x,y,我必須找到它們中的三個或t0將在減去不同的方程後被刪除? 然後我有振動傳感器,它也有速度像聲速?如果確實如此,在正常的環境中意味着在空中,它是不是一樣的東西?感謝和抱歉讓您煩惱:) –

0

幾何上,雙曲線代表兩點之間距離恆定不變的點雲。你有3分,但是配對,3對可能的時間差會讓你畫3個雙曲線。在雙曲線相交的地方或之間尋找一個點。或者求解等價代數(最小二乘)。

+0

如何繪製3個時間差3個hyperbloas? –

+0

任何幫助,將不勝感激。 –