清除&如何计算TDOA(到达时间差)的简单示例 [英] Clear & simple example of how to calculate TDOA (Time Difference Of Arrival)
问题描述
尝试计算TDOA(到达时间差),但我无法理解.有人可以帮我举一个简单明了的例子吗?
Trying to calculate TDOA (Time Difference Of Arrival) but I can’t get my head around it. Can someone please help me with an clear and simple example.
我有3个麦克风位于:
X0 = 0 cm
Y0 = 0 cm
-
X1 = 0 cm
Y1 = 15 cm
-
X2 = 0 cm
Y2 = 30 cm
声音到达3个麦克风的时间不同:
Time different of sound arrive to the 3 microphone:
A0 = 0 sec
A1 = 0.002 sec
A2 = 0.004 sec
音速:
S = 340 m/sec
在收到wessel的回复后更新 我正在尝试使脚本计算TDOA
Updated after response from wessel I am trying to make a script calc TDOA
let ? = (Y1 - Y0) / (S); // = 0.00044
let ? = (Y2 - Y0) / (S); // = 0.00088
let VX = (X1 - X0) / A0; // = NaN
let VY = (Y1 - Y0) / A0; // = Infinity
let V = Math.sqrt(VX^2 + VY^2) // = 1.4142
let alpha = atan(VY / VX) // = NaN
console.log(alpha+' deg with the x-axis.');
推荐答案
如果您有距离和速度(距离/时间),则可以通过距离/速度=距离/(距离/时间)=距离来获取时间/距离*时间=时间.
If you have a distance and a speed (distance / time), you get a time by doing distance / speed = distance / (distance / time ) = distance / distance * time = time.
您在问题中忽略的是声波的方向和形状.如果声音沿x轴传播,则形状无关紧要,并且时差为:
What you omit in your question, is the direction and the shape of the sound wave. If the sound is traveling along the x-axis, the shape does not matter, and the time difference would be:
(A1 - A0) = (X1 - X0) / (340 m/s) = 0.15 / 340 s = 0.00044 s
(A2 - A0) = (X2 - X0) / (340 m/s) = 0.3 / 340 s = 0.00088 s
如果形状是直线,例如从无限远点源或特殊形状的非点源中,到达时间的不同由声波方向的x分量给出:
If the shape is a straight line, e.g. from an infinitely far point source or from a particularly shaped non-point source, the different of arrival time is given by the x-component of the direction of the sound wave:
VX = (X1 - X0) / (A1 - A0) = 37.5 m/s.
您给出的总声速为340 m/s,应该等于
The total sound speed, which you give as 340 m/s, should equal
V = Sqrt(VX^2 + VY^2)
这样您就可以解决
VY = Sqrt(V^2 - VX^2) = 338 m/s
或
VY = -Sqrt(V^2 - VX^2) = -338 m/s
以使您的声波必须以α角入射:
such that your sound wave must in incoming under an angle alpha:
alpha = atan(VY / VX) = 83 deg
带有x轴.
不过,我不明白为什么javascript在这里是相关的.以防万一:使用Math.sqrt,Math.pow或V * V,以及Math.atan或Math.atan2(请注意那里的参数顺序!).
I don't see why javascript is relevant here, though. Just in case: use Math.sqrt, Math.pow or V*V, and Math.atan or Math.atan2 (beware of the order of the arguments there!).
这篇关于清除&如何计算TDOA(到达时间差)的简单示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!