TL:DR - How can you find the 3D coordinates of a emitter than transmits an impulse signal?


I'm working on something to improve my bird-watching. I've got a camera that can take pictures of the birds when I'm not around, but currently it has to be zoomed out all the way to guarantee they're in frame. This doesn't make for good pictures, so here's what I've done:

Mounted camera on a motor so it can rotate, zoomed in enough that the pictures will be better quality, and attempted multilateration to make the camera turn.


My multilateration is simple. 4 microphones listen for sound. When an impulse (such as a chirp) is created from an emitter (bird), the microphones can detect the impulse, and my microcontroller can calculate the time differences between all 4 mics receiving the impulse.

My microcontroller then uses a home brew program that converts these time differences and the known locations of the microphones relative to each other into matrix form.

Once the program has the matrices, it can solve for the distance from each microphone to the bird's origin, which then can be used to figure out the coordinates of the bird relative to the microphones.


The problem with this, is that it needs to be really precise. I'm talking ~10 nanoseconds of difference in reception time between mics in theoretical math space will cause the program to miscalculate where the bird is.

I've muddled with the code to see if implementing more mics will lessen the need for precision, but I can't find a way to achieve a tolerance greater than ~±25ns.

With my setup, I can only calculate a reception time difference on the level of 10-5 seconds, so it's not possible for me to guarantee the level of precision that this type of math needs.

Can anyone think of a way for me to improve my setup so that it works? Are there other ways to accomplish multilateration? How else could I find where the bird is when it's chirping?

Thanks guys, you're always awesome!!!


I have written out the mathematical process I have used for this problem. Pictures of that, an excel sheet for generating initial conditions, and Matlab code for handling the maths can be found here.

  • $\begingroup$ Put microphones further apart? $\endgroup$ – MaxW May 29 '18 at 17:17
  • $\begingroup$ @MaxW So putting them further apart would increase the reception time difference (Δt) of the mics, but I don't see how that would increase the tolerance of the equation. If Δt goes from being 0.005564691 to being 2.005564691, wouldn't I still need ns precision? $\endgroup$ – David Robie May 29 '18 at 17:25

Multilateration is the algorithm used in Loran-C if I remember correctly. As one comment states, distance could help with your issue. Another possibility might be triangulation using bearing lines from two different sets of microphone arrays. Of course this increases your resources, the complexity of the system, and the time to set up and test the system. But in short, you can use your four microphone set up to get a 2-dim bearing line from time difference of arrivals (or you could use a beamformer if you were willing to invest in an array but that could be expensive). Placing two relatively small arrays far apart from each other you could get the bearing lines from each and calculate the intersection to get an approximate location. Now you are basically tracking objects in a manner similar to passive radar and sonar systems. Issues are (1) the error in angle may be fixed but the error in position will grow with range, (2) you need to be sure that the two bearing lines you intersect are from the same sound source by some method, and (3) you can just find the intersection of lines as the actual lines will likely never intersect. Rather you'll need an algorithm that looks for "probable intersection" based on the error cones about the lines. Or just trust that they should intersect if you are sure that they are from the same source and do a CPA on the lines. You can figure out those details. It sounds like an interesting application of acoustics. Good luck.

  • $\begingroup$ Unfortunately the dimensions of my setup don't allow for triangulation or trilateration methods. i.e., my wife would kill me if I ran cables 15m across the yard to the treeline, or anywhere really. $\endgroup$ – David Robie Jun 4 '18 at 12:43
  • $\begingroup$ I understand, trust me I understand. I'll think about it and reply if I come up with something. $\endgroup$ – ggcg Jun 4 '18 at 13:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.