Search code examples
algorithmmathaudiosignal-processingtrilateration

Trilateration of a signal using Time Difference of Arrival


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 microfones. The technique that I am using is multilateration that is based on the time difference of arrival.

The time difference of arrival between each microfones 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.

If you have some references on how I can implement a multilateration algorithm, or some other trilateration algorithm that I can use based on time difference of arrival it would be a great help.

Thanks in advance.


Solution

  • The point you are looking for is the intersection of three hyperbolas. I am assuming 2D here since you only use 3 receptors. Technically, you can find a unique 3D solution but as you likely have noise, I assume that if you wanted a 3D result, you would have taken 4 microphones (or more).

    The wikipedia page makes some computations for you. They do it in 3D, you just have to set z = 0 and solve for system of equations (7).

    The system is overdetermined, so you will want to solve it in the least squares sense (this is the point in using 3 receptors actually).