清除&如何计算TDOA(到达时间差)的简单示例 [英] Clear & simple example of how to calculate TDOA (Time Difference Of Arrival)

查看:186
本文介绍了清除&如何计算TDOA(到达时间差)的简单示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试计算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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆