Answers.Body: <p>Not an expert, but the general rule of thumb is the minimum number of sensors for positioning is N dimensions +1. For 2d you need at least 3 mics and for 3d you need at least 4 mics (see review here [1]). This is the 'minimum sensor' case. With Ndimensions + 2 you can uniquely identify sources (as pointed out by @WMXZ below).</p>
  <p>About the 3d tracking with 3 mics, I doubt if this study actually produced 3d positions using solely the TDOA of the array. It is possible to place 3 mics in an L shaped array, and thus get azimuth and elevation headings. Perhaps with additional information or constraints it is possible to get 3d coordinates (received levels, echoes from reflections etc).</p>
  <p>Don't know which 3-channel 3D position study you're referring to, bu not all studies need 3D locations. In this whale tracking study [2], a 3-channel array was used to track whales that have been sighted in the direction of observation (there are two possible solutions for the 3 sensor case, here the 'front' solution is always chosen).</p>
  <h4>Refs</h4>
  <p>[1] Li, X., Deng, Z. D., Rauchenstein, L. T., &amp; Carlson, T. J. (2016). Contributed Review: Source-localization algorithms and applications using time of arrival and time difference of arrival measurements. Review of Scientific Instruments, 87(4), 041502.</p>
  <p>[2] Clark, C., Ellison, W., &amp; Beeman, K. (1986, September). Acoustic tracking of migrating bowhead whales. In OCEANS'86 (pp. 341-346). IEEE.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-27T17:52:23.630Z
Answers.Text: This answer could be improved with some links to online tutorial/summary information, and/or literature citations. It seems to me there should be a good textbook to recommend!
Answers.UserDisplayName: Dan Stowell
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-27T21:09:55.217Z
Answers.Text: Valid point. Added now - hope it clears things up.
Answers.UserDisplayName: Thejasvi
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-27T15:41:21.367Z
Answers.LastActivityDate: 2022-06-27T22:34:59.830Z
Answers.LastEditDate: 2022-06-27T22:34:59.830Z
Answers.UserDisplayName: Thejasvi
Answers.Body: <p>having 3 unknowns (x,y,z) you need at least 3 equations, that is, 4 sensors that give you 3 time delays.</p>
  <p>However, these 3 equations are non linear and not always unique as they include a square-root.</p>
  <p>To obtain a unique solution you need 5 sensors that result to 4 linear equations in x,y,z, and distance to acoustic reference. It is clear that the 4 parameters are not independent and may be used to cross-validate the solution.</p>
  <p>References</p>
  <p>ZIMMER W., (2011) Passive Acoustic Monitoring of Cetaceans, Cambridge University Press, pages 198 ff</p>
  <p>SPENCER, Steven J. Closed-form analytical solutions of the time difference of arrival source location problem for minimal element monitoring arrays. The Journal of the Acoustical Society of America, 2010, 127. Jg., Nr. 5, S. 2943-2954.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-27T17:15:48.617Z
Answers.Text: Added as comment: 4 sensors (tetrahedral configuration) are typically used for direction finding.
Answers.UserDisplayName: WMXZ
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-27T17:52:28.133Z
Answers.Text: This answer could be improved with some links to online tutorial/summary information, and/or literature citations. It seems to me there should be a good textbook to recommend!
Answers.UserDisplayName: Dan Stowell
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-27T18:33:01.317Z
Answers.Text: I prefer to refer to answer for https://bioacoustics.stackexchange.com/questions/72/real-time-3d-tracking-of-flying-insects-using-a-microphone-array
Answers.UserDisplayName: WMXZ
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-27T21:59:59.430Z
Answers.Text: You don't necessarily need five (or four) sensors.  You can often get by with fewer sensors if you can make assumptions such as "the sound isn't coming from underground".
Answers.UserDisplayName: Mark
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-28T04:44:51.487Z
Answers.Text: @Mark Strictly speaking, additional information and assumptions can replace physical sensors.  In other words, assumptions can also be replaced by additional sensors.
Answers.UserDisplayName: WMXZ
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-28T04:45:45.313Z
Answers.Text: edited my answer do give two references
Answers.UserDisplayName: WMXZ
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-27T17:10:36.767Z
Answers.LastActivityDate: 2022-06-28T04:38:44.507Z
Answers.LastEditDate: 2022-06-28T04:38:44.507Z
Answers.UserDisplayName: WMXZ
Answers.Body: <p>Magnus Wahlbergs paper on that topic may be helpful:
  <a href="https://marinebioacoustics.files.wordpress.com/2018/04/wahlberg_et_al_2001.pdf" rel="nofollow noreferrer">https://marinebioacoustics.files.wordpress.com/2018/04/wahlberg_et_al_2001.pdf</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-09-26T14:43:23.983Z
Answers.Text: It would be extremely beneficial to at least add some brief explanation of the "solution" proposed in the link. This way, your answer will serve both as a starting point for someone and a future reference for people.
Answers.UserDisplayName: ZaellixA
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-07-05T11:01:55.377Z
Answers.LastActivityDate: 2022-07-05T11:01:55.377Z
Answers.UserDisplayName: Marinebioacoustics Aarhus Univ
Answers.Body: <p>The answer is actually five since it's impossible to resolve the three spatial dimensions without also deriving the time of the call (relative to it's arrival on one of the 'phones), so you have 3+1 'dimensions' and therefore need 4 independent time measurements from 5 'phones to get these. This is explained in Spiesberger 2001. Often, 4 will suffice, depending on where the source is, but in some locations, there can be ambiguous solutions.</p>
  <p>Of course, there are plenty of practical considerations too and you may need many more 'phones to accurately localise over a large volume.</p>
  <p>Reference</p>
  <p>Spiesberger, J. L. (2001). “Hyperbolic location errors due to insufficient numbers of receivers,” The Journal of the Acoustical Society of America, 109, 3076–3079</p>
  <p>Code</p>
  <p>The Matlab (should work in Octave) code below is a 2D simulation of localisation with n hydrophones. Launch it and click on it with the mouse. It will calculate time delays and then calculate hyperbole from the time delays. In most locations, you're OK and only get one solution, but 'behind' or close to the 'phones you start to get multiple solutions. Run with 4 'phones and you always get a unique solution.</p>
  <pre><code>function hyperbolicsim(userphones)
  % function to calculate hyperbolic localisation lines for a moving point
  % for an arbitrary array of hydrophones. 
  % phones should be an n row by 2 (x,y) column vector. 
  global phones centre range
  if nargin &lt; 1
      userphones = [-50, 0;
          50, 0;
          0, 50/sind(30)];
  %     userphones = [-50 -50;
  %         -50 50;
  %         50 -50;
  %         50 50];
  end
  phones = userphones;
  centre = mean(phones)
  nPhone = size(phones,1);
  range = 0;
  for i = 1:nPhone
      for j = (i+1):nPhone
          d = norm(phones(i,:)-phones(j,:))
          range = max(range, d);
      end
  end
  range = range * 1.5;
  
  remakePlot(mean(phones).*rand(1,2));
  f = figure(1)
  set(f,'WindowButtonDownFcn',@onMouse)
  
  function onMouse(hObject,~)
  axes_handle = gca;
  pt = get(axes_handle, 'CurrentPoint');
  pt = pt(1,1:2);
  remakePlot(pt)
  
  function remakePlot(pt)
  global phones centre range
  figure(1)
  clf
  plot(phones(:,1), phones(:,2), 'ob')
  hold on
  plot(pt(1), pt(2), '*r', 'markersize', 12)
  % now draw the hyperbolic curves
  nPhone = size(phones,1);
  for i = 1:nPhone
      for j = (i+1):nPhone
          drawHyperloid(phones(i,:), phones(j,:), pt);
      end
  end
  
  
  xlim = centre(1) + [-1 1]*range;
  ylim = centre(2) + [-1 1]*range;
  set(gca, 'xlim', xlim)
  set(gca, 'ylim', ylim);
  axis square
  
  function drawHyperloid(phone1, phone2, pt) 
  % draw locus of point passing through pt. 
  global phones centre range
  phoneCent = (phone1 + phone2)/2;
  % also need to work out a rotation matrix to draw curves for arbitrary
  % points
  ang = atan2(phone2(2)-phone1(2),phone2(1)-phone1(1));
  rot = [cos(ang) -sin(ang); sin(ang) cos(ang)];
  invrot = inv(rot);
  
  phoneSep = norm(phone1-phone2);
  pt0 = pt - phoneCent;
  pt0 = invrot*pt0';
  scale = phoneSep/2;
  r1 = norm(pt-phone1);
  r2 = norm(pt-phone2);
  k = (abs(r2-r1)/(phoneSep))^2;
  x = -5:.001:5;
  k2 = sqrt(1-k);
  y = sqrt((x.^2)/k-1)*k2;
  isR = imag(y)==0 ;
  if (r1&gt;r2)
      isR = isR &amp; x &gt; 0;
  else
      isR = isR &amp; x &gt;0;
      x = fliplr(x);
      y = fliplr(y);
  end
  x = x(isR);
  y = y(isR);
  x = [fliplr(x) x];
  y = [fliplr(y) -y];
  locii = [x;y];
  locii = rot*locii;
  x = locii(1,:);
  y = locii(2,:);
  
  x = x*scale + phoneCent(1);
  y = y * scale + phoneCent(2);
  plot(x,y, 'linewidth', 1.5);
  
  
  grid on
  
  legend({'Hydrophones', 'True location'})
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-06-29T07:14:19.497Z
Answers.LastActivityDate: 2022-06-29T07:14:19.497Z
Answers.UserDisplayName: Doug Gillespie
Body: <p>I've heard from colleagues that you need at least 4 mics to get 3d coordinates from time-difference-of-arrival (TDOA) tracking.</p>
  <p>Then again, I also remember reading papers which use 3 microphones to track animals. Can someone please clarify the minimum number of sensors required for 3d tracking?</p>
  
Tags: <localisation><time-difference-of-arrival><tracking><array>
Title: what are the minimum number of micro/hydro-phones needed to perform 3d tracking?
ThreadText: # what are the minimum number of micro/hydro-phones needed to perform 3d tracking?
  
  (Asked by: username_0 on 2022-06-27)
  
  I've heard from colleagues that you need at least 4 mics to get 3d coordinates from time-difference-of-arrival (TDOA) tracking.
  
  Then again, I also remember reading papers which use 3 microphones to track animals. Can someone please clarify the minimum number of sensors required for 3d tracking?
  
  **Tags:** localisation, time-difference-of-arrival, tracking, array
  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_6 on 2022-06-29. Score: 8 | Accepted answer
  
  The answer is actually five since it's impossible to resolve the three spatial dimensions without also deriving the time of the call (relative to it's arrival on one of the 'phones), so you have 3+1 'dimensions' and therefore need 4 independent time measurements from 5 'phones to get these. This is explained in Spiesberger 2001. Often, 4 will suffice, depending on where the source is, but in some locations, there can be ambiguous solutions.
  Of course, there are plenty of practical considerations too and you may need many more 'phones to accurately localise over a large volume.
  Reference
  Spiesberger, J. L. (2001). “Hyperbolic location errors due to insufficient numbers of receivers,” The Journal of the Acoustical Society of America, 109, 3076–3079
  Code
  The Matlab (should work in Octave) code below is a 2D simulation of localisation with n hydrophones. Launch it and click on it with the mouse. It will calculate time delays and then calculate hyperbole from the time delays. In most locations, you're OK and only get one solution, but 'behind' or close to the 'phones you start to get multiple solutions. Run with 4 'phones and you always get a unique solution.
  function hyperbolicsim(userphones)
  % function to calculate hyperbolic localisation lines for a moving point
  % for an arbitrary array of hydrophones. 
  % phones should be an n row by 2 (x,y) column vector. 
  global phones centre range
  if nargin < 1
      userphones = [-50, 0;
          50, 0;
          0, 50/sind(30)];
  %     userphones = [-50 -50;
  %         -50 50;
  %         50 -50;
  %         50 50];
  end
  phones = userphones;
  centre = mean(phones)
  nPhone = size(phones,1);
  range = 0;
  for i = 1:nPhone
      for j = (i+1):nPhone
          d = norm(phones(i,:)-phones(j,:))
          range = max(range, d);
      end
  end
  range = range * 1.5;
  
  remakePlot(mean(phones).*rand(1,2));
  f = figure(1)
  set(f,'WindowButtonDownFcn',@onMouse)
  
  function onMouse(hObject,~)
  axes_handle = gca;
  pt = get(axes_handle, 'CurrentPoint');
  pt = pt(1,1:2);
  remakePlot(pt)
  
  function remakePlot(pt)
  global phones centre range
  figure(1)
  clf
  plot(phones(:,1), phones(:,2), 'ob')
  hold on
  plot(pt(1), pt(2), '*r', 'markersize', 12)
  % now draw the hyperbolic curves
  nPhone = size(phones,1);
  for i = 1:nPhone
      for j = (i+1):nPhone
          drawHyperloid(phones(i,:), phones(j,:), pt);
      end
  end
  
  
  xlim = centre(1) + [-1 1]*range;
  ylim = centre(2) + [-1 1]*range;
  set(gca, 'xlim', xlim)
  set(gca, 'ylim', ylim);
  axis square
  
  function drawHyperloid(phone1, phone2, pt) 
  % draw locus of point passing through pt. 
  global phones centre range
  phoneCent = (phone1 + phone2)/2;
  % also need to work out a rotation matrix to draw curves for arbitrary
  % points
  ang = atan2(phone2(2)-phone1(2),phone2(1)-phone1(1));
  rot = [cos(ang) -sin(ang); sin(ang) cos(ang)];
  invrot = inv(rot);
  
  phoneSep = norm(phone1-phone2);
  pt0 = pt - phoneCent;
  pt0 = invrot*pt0';
  scale = phoneSep/2;
  r1 = norm(pt-phone1);
  r2 = norm(pt-phone2);
  k = (abs(r2-r1)/(phoneSep))^2;
  x = -5:.001:5;
  k2 = sqrt(1-k);
  y = sqrt((x.^2)/k-1)*k2;
  isR = imag(y)==0 ;
  if (r1>r2)
      isR = isR & x > 0;
  else
      isR = isR & x >0;
      x = fliplr(x);
      y = fliplr(y);
  end
  x = x(isR);
  y = y(isR);
  x = [fliplr(x) x];
  y = [fliplr(y) -y];
  locii = [x;y];
  locii = rot*locii;
  x = locii(1,:);
  y = locii(2,:);
  
  x = x*scale + phoneCent(1);
  y = y * scale + phoneCent(2);
  plot(x,y, 'linewidth', 1.5);
  
  
  grid on
  
  legend({'Hydrophones', 'True location'})
  
  
  ---
  
  ### Answer by username_0 on 2022-06-27. Score: 5
  
  Not an expert, but the general rule of thumb is the minimum number of sensors for positioning is N dimensions +1. For 2d you need at least 3 mics and for 3d you need at least 4 mics (see review here [1]). This is the 'minimum sensor' case. With Ndimensions + 2 you can uniquely identify sources (as pointed out by @username_2 below).
  
  About the 3d tracking with 3 mics, I doubt if this study actually produced 3d positions using solely the TDOA of the array. It is possible to place 3 mics in an L shaped array, and thus get azimuth and elevation headings. Perhaps with additional information or constraints it is possible to get 3d coordinates (received levels, echoes from reflections etc).
  
  Don't know which 3-channel 3D position study you're referring to, bu not all studies need 3D locations. In this whale tracking study [2], a 3-channel array was used to track whales that have been sighted in the direction of observation (there are two possible solutions for the 3 sensor case, here the 'front' solution is always chosen).
  
  #### Refs
  
  [1] Li, X., Deng, Z. D., Rauchenstein, L. T., & Carlson, T. J. (2016). Contributed Review: Source-localization algorithms and applications using time of arrival and time difference of arrival measurements. Review of Scientific Instruments, 87(4), 041502.
  
  [2] Clark, C., Ellison, W., & Beeman, K. (1986, September). Acoustic tracking of migrating bowhead whales. In OCEANS'86 (pp. 341-346). IEEE.
  
  > **Comments:**
  > **username_1**: This answer could be improved with some links to online tutorial/summary information, and/or literature citations. It seems to me there should be a good textbook to recommend!  
  > **username_0**: Valid point. Added now - hope it clears things up.  
  
  ---
  
  ### Answer by username_2 on 2022-06-27. Score: 4
  
  having 3 unknowns (x,y,z) you need at least 3 equations, that is, 4 sensors that give you 3 time delays.
  
  However, these 3 equations are non linear and not always unique as they include a square-root.
  
  To obtain a unique solution you need 5 sensors that result to 4 linear equations in x,y,z, and distance to acoustic reference. It is clear that the 4 parameters are not independent and may be used to cross-validate the solution.
  
  References
  
  ZIMMER W., (2011) Passive Acoustic Monitoring of Cetaceans, Cambridge University Press, pages 198 ff
  
  SPENCER, Steven J. Closed-form analytical solutions of the time difference of arrival source location problem for minimal element monitoring arrays. The Journal of the Acoustical Society of America, 2010, 127. Jg., Nr. 5, S. 2943-2954.
  
  > **Comments:**
  > **username_2**: Added as comment: 4 sensors (tetrahedral configuration) are typically used for direction finding.  
  > **username_1**: This answer could be improved with some links to online tutorial/summary information, and/or literature citations. It seems to me there should be a good textbook to recommend!  
  > **username_2**: I prefer to refer to answer for https://bioacoustics.stackexchange.com/questions/72/real-time-3d-tracking-of-flying-insects-using-a-microphone-array  
  > **username_3**: You don't necessarily need five (or four) sensors.  You can often get by with fewer sensors if you can make assumptions such as "the sound isn't coming from underground".  
  > **username_2**: @username_3 Strictly speaking, additional information and assumptions can replace physical sensors.  In other words, assumptions can also be replaced by additional sensors.  
  > **username_2**: edited my answer do give two references  
  
  ---
  
  ### Answer by username_4 on 2022-07-05. Score: 1
  
  Magnus Wahlbergs paper on that topic may be helpful:
  <https://marinebioacoustics.files.wordpress.com/2018/04/wahlberg_et_al_2001.pdf>
  
  > **Comments:**
  > **username_5**: It would be extremely beneficial to at least add some brief explanation of the "solution" proposed in the link. This way, your answer will serve both as a starting point for someone and a future reference for people.  
  
  ---
  
  