Trilateration in a 2D plane with signal strengths

YakShaving picture YakShaving · Aug 13, 2010 · Viewed 9.5k times · Source

first question to StackOverflow, please be gentle.

  • I am trying to find the equation (and then the algorithm for) the center point of three different points on a 2D cartesian plane, given a certain magnitude or "signal strength". These signal strengths are all on a scale relative to each other, but shouldn't necessary be conflated with "radius" of a circle.

Wikipedia entry on trilateration: http://en.wikipedia.org/wiki/Trilateration

I've also checked out this thread, but it's a little different than what I need Trilateration using 3 latitude and longitude points, and 3 distances

A general equation is nice, but I'll provide some sample data points here for testing:

P1: X,Y = 4153, 4550 // Magnitude or Signal strength = 143
P2: X,Y = 4357, 4261 // Magnitude or Signal strength = 140
P3: X,Y = 4223, 4365 // Magnitude or Signal strength = 139

My general sense is that these points need to be translated to be on the same scale (the signal strengths and the points), but I could be wrong.

Thoughts? TIA

Answer

Svante picture Svante · Aug 13, 2010

You have to first normalize the strengths, so that their sum becomes 1 (resp. a constant).

Each of the corner points would be the resulting point if their normalized strength were 1 (and thus the others 0). If this strength were 0, on the other hand, the resulting point would lie on the line between the two others. In between, it lies on a parallel to that line with a relative distance of the strength. Calculate this distance for two of the strengths, and the result point is found. The third strength is redundant (it goes into the calculation through the normalization).

Edit: You can calculate this simply by adding the vectors scaled by the normalized strengths. That gives (4243.7344 4393.187) for your example.