我试图在多普勒频移雷达中模拟噪声滤波。它应该过滤掉相对于雷达低于25米/秒的物体(接近或移开)。应该有两种避免雷达探测的方法:如果物体在任何方向上移动但速度低于25米/秒,或以任何速度移动但垂直于(或更确切地说,盘旋)雷达。在这两种情况下,物体相对于固定雷达的径向速度应低于25 m / s,因此愚弄雷达将其滤除为噪声。我知道物体位置和速度矢量(2D和3D)。谈到数学,我是一个完全白痴,所以我无法理解这一点。有什么帮助吗?
编辑:形成错误的问题。我想获得相对于雷达的真实径向速度和过滤速度超过25 m / s的物体,但是相对航向会使雷达的径向速度小于25 m / s。一个例子可能是一个物体以30米/秒的速度移动,垂直于雷达的45度将被过滤掉,但如果物体以300米/秒的速度移动则不会被过滤掉。
答案 0 :(得分:5)
我不知道任何Lua,但由于这是一个纯粹的数学问题,因此数学伪代码就足够了。
让r
成为雷达的位置,x
是对象的位置,v
是对象的速度向量(以米/秒为单位)。所有这些都是二维或三维向量,取决于您是在二维还是三维工作。
速度条件非常简单:只需取速度矢量v
norm并将其与25 m / s的阈值进行比较。
要确定物体是否在环绕雷达,计算从雷达到物体的矢量,即x-r
,并检查它是否垂直于速度矢量;你通过计算scalar product来做到这一点,当两个向量垂直时它变为零。在实践中,您将使用大于零的小阈值,以允许两个矢量略微不垂直。
在pseduo代码中,这变为:
if v.norm()<25 or v.scalar_product(x-r)<0.05
Ignore object
end
您必须了解如何在Lua中计算norms和scalar products(或者,如果没有,请按照链接页面中的说明自行计算)。
回答已编辑的问题(关闭速度)
标量产品也可以为您修改的问题派上用场。您获得闭合速度
v_closure = v.scalar_product(r-x)/norm(r-x)
请注意,如果物体朝向雷达移动,则结果是正面的 - 如果它正在远离它,则为负。然后,您可以像这样进行噪音过滤检查:
if abs(v_closure)<25
Ignore object
end
因此,在某种意义上,这种修改后的测试甚至比原始版本更简单。
答案 1 :(得分:0)
马丁给出了很好的答案,但是考虑到你必须计算Cos(Theta),这只是一个可能的简化,可能不会那么容易简化
v_closure = norm(v)Cos(Theta)
其中Theta是矢量(r-x)和v
之间的角度