#python #curve-fitting #smoothing #polynomials #bspline
Вопрос:
У меня возникли некоторые проблемы со сглаживанием данных о местоположении в 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-сплайна для решения этой проблемы?
Спасибо
Ответ №1:
Я бы использовал альфа-бета-фильтр r для сглаживания данных
Я видел несколько его пакетов в Интернете, но алгоритм состоит всего из нескольких строк кода.
альфа-бета-это простой фильтр из семейства фильтров Калмана, который обычно используется для решения подобных проблем.