I am attempting to find the location of sound using two microphones, using cross-correlation methods. I am not getting very consistent and accurate results, there are instances where there seem to be some kind of noise signals that interfere with the signal of interest and generate rubbish values of angles of arrival.

I have tried looking at various methods to make it more accurate, but now I'm wondering whether I should be using more than two microphones to localize the sound. Is it possible that my decision to use two microphones only is causing the poor accuracy of localization?

  • $\begingroup$ with only two microphones you can only place the location of your source on a cone (or, more precisely, a hyperboloid of two sheets) which is the loci of points that have that fixed difference of distances to the two microphones. you need at least 3 simultaneous microphones to estimate the location of a single source in 3D space. $\endgroup$ Dec 13, 2016 at 19:45
  • $\begingroup$ You would need 4 microphones in 3D space, and I need to localize it in 2D (horizontal plane). I use two microphones and 'tilt the head' (rotate the robot once) to give two positions and this removes the 'front back' ambiguity (which arises due to the 'cone of confusion' that you mentioned, in one plane). $\endgroup$ Dec 15, 2016 at 9:48
  • $\begingroup$ actually, mathematically, 4 microphones gives you some redundancy in localizing in 3 dimensions. $\endgroup$ Dec 15, 2016 at 18:36

1 Answer 1


Each ear have a Frequency Response $H_L(f)$ and $H_R(f)$ and transmission delays $\tau_L$ and $\tau_R$ according the 3D angle from where the sound source is located relative to each ear.

Hence, for a fixed magnitude and frequency sound, $s(t)$, you have the response $H_L(f)s(t-\tau_L)$ and $H_R(f)s(t-\tau_R)$.

Actually, you cannot solve this for every position, or equivalently, you need a head movement (or ear movement in animals) for retrieving the proper angle. Besides, there exist some cone of confusion which means there is actually not a well defined 3D angle, mainly you only can locate 2D cones instead of location.

I will not solve it for you, but from that information you can trivially determine a location considering head movement onto some estimated direction, or an enough rich movement trajectory.

  • 1
    $\begingroup$ I only need to localize the sound in 2D and can do so with 180 degrees with two microphones. I rotate the robot and listen (akin to 'tilting the head') to localize the sound in 360 degrees in the 2D plane of the ground. I just wanted to ask whether adding another microhphone to the array improves the accuracy of this localization drastically. $\endgroup$ Nov 14, 2016 at 16:16
  • $\begingroup$ Sure it will!. Just put them at 120 degrees each and the recognition could be even done through magnitude in a very trivial way... $\endgroup$
    – Brethlosze
    Nov 14, 2016 at 17:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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