首页 > 解决方案 > 使用 2D 噪声数据进行平滑曲线拟合

问题描述

我在平滑二维位置数据时遇到了一些问题。我有一个传感器名称 GNSS,它产生位置数据,但 GNSS 不准确,即使它在一个地方稳定,它也会产生大量噪声数据。这是一个稳定位置的样本坐标

 [  60764.23449229 -100140.80706004]
 [  60764.84850004 -100141.01120966]
 [  60764.51855838 -100140.84762562]
 [  60763.35537281 -100141.33637028]
 [  60764.61105273 -100140.87806004]
 [  60763.75202809 -100140.93057157]
 [  60764.76660587 -100140.95289355]
 [  60764.24586045 -100140.80742297]
 [  60764.43356906 -100140.82418556]
 [  60763.28317904 -100141.50751476]

之后,我试图将其向前移动并获取此示例坐标

 [  60764.81948855 -100140.98207046]
 [  60764.92936364 -100140.96721928]
 [  60764.99700105 -100140.7012187 ]
 [  60765.19893018 -100140.42903945]
 [  60765.51303984 -100140.02736587]
 [  60765.80870981 -100139.61403094]
 [  60766.25182758 -100139.03935881]
 [  60766.74092995 -100138.3961776 ]
 [  60767.2590066  -100137.71298507]
 [  60767.74847494 -100137.01536319]

我的目标是尝试从 GNSS 开始在一个稳定的地方创建一个平滑的运动并向前移动,我尝试使用多项式和 B 样条来创建一个平滑的曲线,但我仍然面临一些问题(我刚刚开始使用b样条曲线,我可能会错过一些东西)。

有没有新的解决方案或b样条解决方案来解决这个问题?

谢谢

标签: pythoncurve-fittingsmoothingpolynomialsbspline

解决方案


我会使用alpha-beta 过滤器来平滑数据

我在网上看到过它的几个包,但算法只是几行代码。

alpha-beta 是卡尔曼滤波器家族中的一个简单滤波器,通常用于解决这类问题。


推荐阅读