3

我正在尝试模拟多普勒频移雷达中的噪声过滤。它应该过滤掉相对于雷达移动低于 25 m/s 的物体(接近或远离)。应该有两种方法可以避免被雷达检测到:如果物体在任何方向移动但速度低于 25 m/s,或者以任何速度移动但垂直于(或者更确切地说,绕行)雷达。在这两种情况下,物体相对于静止雷达的径向速度应低于 25 m/s,从而欺骗雷达将其作为噪声滤除。我知道物体的位置和速度矢量(2D 和 3D)。在数学方面,我完全是个白痴,所以我无法理解这一点。请问有什么帮助吗?

编辑:格式错误的问题。我想获得相对于雷达的真实径向速度,并过滤移动速度超过 25 m/s 但相对航向会使朝向雷达的径向速度小于 25 m/s 的物体。一个示例可能是以 30 m/s 的速度移动且与雷达垂直 45 度的物体将被过滤掉,但如果该物体以 300 m/s 的速度移动,则不会。

4

2 回答 2

5

我不知道任何 Lua,但由于这是一个纯粹的数学问题,数学伪代码应该足够了。

r为雷达x的位置,为物体的位置,为v物体的速度矢量(以米/秒为单位)。所有这些都是二维或三维向量,具体取决于您是在二维还是三维中工作。

速度条件非常简单:只需取速度矢量的范数v并将其与 25 m/s 的阈值进行比较。

要判断物体是否在雷达上盘旋,计算从雷达到物体的矢量,即x-r,并检查它是否垂直于速度矢量;你可以通过计算标量积来做到这一点,当两个向量垂直时它变为零。在实践中,您将使用大于零的小阈值来允许两个向量稍微不垂直。

在伪代码中,这变为:

if v.norm()<25 or v.scalar_product(x-r)<0.05
    Ignore object
end

您必须了解如何在 Lua 中计算规范标量产品(或者,如果失败,请按照链接页面中的说明自行计算它们)。

回答已编辑的问题(关闭速度)

标量积对于您修改后的问题也很方便。您获得闭合速度为

v_closure = v.scalar_product(r-x)/norm(r-x)

请注意,结果是有符号的——如果物体向雷达移动,则为正,如果远离雷达,则为负。然后,您将像这样进行噪声过滤检查:

if abs(v_closure)<25
    Ignore object
end

所以从某种意义上说,这个修改后的测试比原来的版本还要简单。

于 2013-01-22T16:01:38.457 回答
0

马丁的回答很好,但只是一个可能的简化,考虑到无论如何你都必须计算 Cos(Theta),简化为

v_closure = norm(v)Cos(Theta)

其中 Theta 是向量 (rx) 和 v 之间的角度

于 2013-06-19T14:33:17.283 回答