这与三角测量有关,但以一种非直观的方式。
我们有一个由 n 个传感器组成的传感器阵列,它们在空间上是分开的。他们测量信号,其速度相对于传感器之间的距离足够低,我们可以测量传感器之间所述信号的延迟。 (例如,4 个麦克风收听声音,每个麦克风相距 1 米或类似距离)。
我们不知道这些传感器相对于彼此的位置,也不知道信号源的位置,但我们可以在阵列周围移动信号源,从而给我们带来多重延迟,这与信号源的距离有关传感器之间的相对关系(例如围绕传感器阵列拍手)。
我们能否从一组延迟中找到数组的相对位置?
直觉上这似乎是可能的,因为我们知道信号的速度,以及每个传感器中的信号相对于彼此的延迟,因此知道这些传感器的相对距离。
还有一件事:如果信号距离很远,它的行为就像一个无限平面源,但如果信号很近,波前是球面的,这会使事情变得复杂。
此图像是一个信号测量时刻
最佳答案
是的,有警告。
由于您不知道源信号的时间,因此无法直接测量每个阵列与源之间的距离。
但是您仍然可以分辨出不同阵列组件之间的距离差异。
这为每对数组组件提供了一个丑陋的方程式。你可以把它写成类似 d_1 - d_0 - measurement_delay_1_0 * signal_speed = 0
,其中 d_x
是源和接收器之间的距离 (sqrt((xs-xr ) ^2 + (ys-yr)^2 + (zs - zr) ^2)
).
一次测量不足以解决问题。所以现在将源在 X 方向移动一个单位并进行新的测量。然后将源在 y 方向上移动一个单位并进行测量。如果你在 3d 情况下,也许还有一个在 z 上。我怀疑这(或 4 次测量)就足够了,但我没有深入研究数学。
现在,如果这是一个完美的设置,您将获得完美的测量结果,并且您应该获得一个多项式方程组,您应该能够使用已知技术(在维基百科或一本好的数学书上查找)求解该方程组。
但是,现实世界并不完美,因此您不太可能获得精确的数学解决方案。因此,下一个最好的办法是将其视为一种优化解决方案,您希望从最小二乘法的角度优化每个方程(再次查找)。这将为您提供最佳的位置近似值。好处是您可以通过进行额外的测量来提高此设置的准确性。
注意事项:
- 疯狂的探测器放置可能会干扰解决方案。理想情况下,探测器不会共面。
- 坐标系取决于您移动源的方式。如果移动非常精确,移动非常小的(相对)量可能会导致很大的错误。
- 在现实世界中,您会听到回声和噪音。你应该在尝试定位任何东西之前处理它。
关于基于信号延迟找出传感器相对位置的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64045388/