Trilateration of a signal using Time Difference(TDOA)

烈酒焚心 提交于 2019-12-08 03:02:20

问题


I am having some trouble to find or implement an algorithm to find a signal source. The objective of my work is to find the sound emitter position.

To accomplish this I am using three vibration sensors. The technique that I am using is multilateration that is based on the time difference of arrival.

The time difference of arrival between each sensor are found using Cross Correlation of the received signals.

I already implemented the algorithm to find the time difference of arrival, but my problem is more on how multilateration works, it's unclear for me based on my reference, and I couldn't find any other good reference for this that are free/open.

I saw this post Trilateration using TDOA But I can't figure out how to solve the set of equations(7) of the wikipedia page of multilateration as i have only the three TDOA.

Any help on this would be much appreciated


回答1:


You have three sensor coordinates A,B,C, unknown coordinate of signal source P, unknown time of signal start t0, and three times of signal registration ta, tb, tc.

Example: Let's sensor A caught a signal in 12:00:05, sensor B - in 12:00:00, sensor C - 12:00:07. So assign time differences: ta=5, tb=0, tc=7

Squared distances from sensors to source correspond to times of signal walk with velocity v (speed of sound in air or another environment)

(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}

Open the brackets, then subtract equations ({2}-{1}, {3}-{2},{1}-{3}) to discard squares of unknown terms.

 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'}

Now you have system of three linear equations with three unknowns. It might be solved with some widespread algorithms - Gauss elimination, LU decomposition etc.

Note that solution precision strongly depends on small errors in coordinates and time measurements (this method is not very robust).




回答2:


Geometrically, a hyperbola represents the cloud of points with a constant difference in distance between two points. You have 3 points, but taken pairwise, the time differences between the 3 possible pairs will allow you to draw 3 hyperbolas. Look for a spot at or between where the hyperbolas intersect on a plot. Or solve the equivalent algebra (least squares).



来源:https://stackoverflow.com/questions/36176167/trilateration-of-a-signal-using-time-differencetdoa

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!