我试图在多普勒频移雷达中模拟噪声滤波.它应该过滤掉相对于雷达低于25米/秒的物体(接近或移开).应该有两种避免雷达探测的方法:如果物体在任何方向上移动但速度低于25米/秒,或以任何速度移动但垂直于(或更确切地说,盘旋)雷达.在这两种情况下,物体相对于固定雷达的径向速度应低于25 m/s,因此愚弄雷达将其滤除为噪声.我知道物体位置和速度矢量(2D和3D).谈到数学,我是一个完全白痴,所以我无法理解这一点.有什么帮助吗?
编辑:形成错误的问题.我想获得相对于雷达的真实径向速度和过滤速度超过25 m/s的物体,但是相对航向会使雷达的径向速度小于25 m/s.一个例子可能是以30米/秒的速度移动并且垂直于雷达45度的物体将被滤除,但如果物体以300米/秒的速度移动则不会被过滤掉.
我的代码使用了一个带有基类的列表,我后来将它们转换为各自的派生类型.我达到了一个点,我认为我可以为基类创建一个构造函数,它将找出它应该是什么类型并将其自身更改为该类型.像这样的东西:
public class BaseClass
{
// Constructor
BaseClass(string Input)
{
if (Input.Substring(0, 5) == "Something")
return new DerivedClass(); // <-- Not allowed
}
}
public class DerivedClass : BaseClass
{
}
Run Code Online (Sandbox Code Playgroud)
这是不允许的,因为构造函数必须返回void.似乎也不允许改变"this"的类型.我知道这个代码有很简单的替代方法可行,但我认为它有一定的优雅,你不觉得吗?