How to locate an unknown point using the TDOA method of Trilateration

Solution 1:

Your problem is exactly the “time difference of arrival” setup for trilateration: the radii of the two circles are proportional to the differences in arrival times between the first receiver and the other two. As such, it is equivalent to finding the intersection of one branch of each of a pair of hyperbolas. In general, this requires solving a quartic equation, though it can be reduced to a cubic equation with a bit of work. There is a lot of literature out there on the Web on this subject, so I’m only going to give a brief gloss here.

Let the coordinates of the first receiver be $P_0=(x_0,y_0)$ and the two fixed circles have respective centers $P_1=(x_1,y_1)$ and $P_2=(x_2,y_2)$ and radii $r_1$ and $r_2$. Letting $(x,y)$ be the coordinates of the center of the unknown circle, the difference in reception times between $P_0$ and $P_1$ can be expressed as $$\sqrt{(x-x_1)^2+(y-y_1)^2}-\sqrt{(x-x_0)^2+(y-y_0)^2}=r_1. \tag{*}$$ This equation describes one branch of the hyperbola with foci $P_0$ and $P_1$ and transverse axis length $r_1$. The time difference between $P_0$ and $P_2$ gives rise to a similar equation of a hyperbola with foci at $P_0$ and $P_2$. The branch of interest in each case is the one that is closer to $P_0$, which will give you the two external tangents.

By squaring (*), rearranging, squaring again and simplifying, you can transform equation (*) into the form of a general conic equation, but in the process extraneous roots are introduced—the other branch of each hyperbola gets added. When you solve the resulting system of second-degree equations, you will get up to four real solutions—each fixed circle can be tangent to the unknown one either externally or internally. The correct solution to the original equations is the one that is closest to $P_0$.

Taking the example from your other question, $P_0=(0.87,-0.5)$, $P_1=(0,1)$, $r_1=\sqrt{0.015}$, $P_2=(-0.87,-0.5)$ and $r_2=\sqrt{0.236}$. Mathematica comes up with approximately $(0.299,0.098)$ as the solution to the resulting system of equations. The illustration below shows the solution and the two hyperbola branches used to find it.

TDOA

Solution 2:

You do have enough information to find the center of the circle.

Let the coordinates of the three point $(x_1,y_1)$, $(x_2,y_2)$ and $(x_3,y_3)$, and the radii of the two known circles $r_1$ and $r_2$, respectively. Also, denote the center and the radius of the unknown circle $(a,b)$ and $r$.

Then, the following relationships based on distances from the center $(a,b)$ to the three points can be established,

$$(a-x_1)^2+(b-y_1)^2 = (r_1+r)^2\tag{1}$$ $$(a-x_2)^2+(b-y_2)^2 = (r_2+r)^2\tag{2}$$ $$(a-x_3)^2+(b-y_3)^2 =r^2\tag{3}$$

Observe that you have three unknowns and three equations, from which $(a,b)$ and $r$ can be solved.