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