我们正在对一些有 20 年历史的软件进行逆向工程。原来的开发者几年前就被解雇了,现在找不到了。
在这段代码中,有一个信号被平滑如下:
- 在代码中注释为 Quiescent Smoothing。它是一个硬编码的常数,.
- 在代码中被注释为 Step Smoothing。这是一个硬编码的常数。 .
- 被注释为噪声阈值。这是一个硬编码的常数。 .
我对这个算法的名称很感兴趣。
有人问我,因为我在运动跟踪方面做了很多工作,但这显然不是卡尔曼滤波器,也不是它的任何变体。
我们正在对一些有 20 年历史的软件进行逆向工程。原来的开发者几年前就被解雇了,现在找不到了。
在这段代码中,有一个信号被平滑如下:
我对这个算法的名称很感兴趣。
有人问我,因为我在运动跟踪方面做了很多工作,但这显然不是卡尔曼滤波器,也不是它的任何变体。
不确定这是否有名称,但它是一个非线性低通滤波器,根据输入信号与滤波输出的偏差使用不同的平滑常数。通常假设小的偏差表明与平滑估计的一致性并且导致对输入的适应很小,而大的偏差表明相关的状态变化并允许系统快速适应。
系统差分方程为
如果你假设反馈项是常数并且,系统将输入未经修改地传递给输出。更小将创建一个一阶低通滤波器,并相应地平滑输出信号。
如果非线性项表现良好并且可以像时间相关的截止参数一样进行分析。你的有趣行为
这意味着对于小相比该滤波器以近似恒定的反馈拒绝假定的加性噪声,因此其行为类似于具有反馈的传统低通滤波器. 作为增加,滤波器行为切换到直通以应对突然变化,并在反馈为传统低通滤波器时达到其渐近行为.
可以说,一组不同的参数会使这个过滤器结构更清晰。替代和与频率相关的反馈常数可能会有所帮助。
编辑:我使用类似的过滤器来平滑 MIDI 控制器中的高分辨率电位器输入。