首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算径向速度

计算径向速度
EN

Stack Overflow用户
提问于 2013-01-22 23:49:55
回答 2查看 3K关注 0票数 3

我正在尝试模拟多普勒频移雷达中的噪声滤波。它应该过滤掉相对于雷达移动速度低于25米/秒的物体(接近或远离)。应该有两种方法来避免被雷达发现:如果物体在任何方向上移动,但速度低于25米/秒,或者在任何速度下移动,但垂直于雷达(或更确切地说,在绕着雷达旋转)。在这两种情况下,目标相对于静止雷达的径向速度应该低于25m/s,从而欺骗雷达将其作为噪声过滤掉。我知道物体的位置和速度矢量(2D和3D)。当涉及到数学时,我是一个彻头彻尾的笨蛋,所以我就是想不通。有什么需要帮忙的吗?

编辑:问题格式不正确。我想要获得相对于雷达的真实径向速度,并过滤移动速度超过25 m/s但相对航向使朝向雷达的径向速度小于25 m/s的对象。例如,以30 m/s和垂直于雷达45度的速度移动的对象将被过滤掉,但如果该对象以300 m/s的速度移动,则不会。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-23 00:01:38

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

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

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

要确定对象是否在绕着雷达旋转,请计算从雷达到对象的向量,即x-r,并检查它是否垂直于速度向量;您可以通过计算scalar product来实现这一点,当两个向量垂直时,它将变为零。在实践中,您可以使用一个大于零的小阈值来允许两个向量稍微不垂直。

在pseduo-code中,这变成:

代码语言:javascript
运行
复制
if v.norm()<25 or v.scalar_product(x-r)<0.05
    Ignore object
end

您必须了解如何在Lua中计算normsscalar products (或者,如果做不到这一点,请按照链接页面中的描述自行计算它们)。

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

对于修改后的问题,标量积也派上用场。您可以获得闭包速度为

代码语言:javascript
运行
复制
v_closure = v.scalar_product(r-x)/norm(r-x)

请注意,结果是有符号的--如果对象正在向雷达移动,则为正;如果对象正在远离雷达,则为负。然后,您将执行噪声过滤检查,如下所示:

代码语言:javascript
运行
复制
if abs(v_closure)<25
    Ignore object
end

因此,从某种意义上说,这种修改后的测试甚至比原始版本更简单。

票数 5
EN

Stack Overflow用户

发布于 2013-06-19 22:33:17

Martin的回答很好,但这只是一个附带的和可能的简化,考虑到您无论如何都必须计算Cos(Theta),它不是也很容易简化为

v_closure =范数(V)Cos(Theta)

其中Theta是向量(r-x)和v之间的角度

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14462511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档