Сглаживание с фильтром Калмана

Я тестирую библиотеку Калмана и не знаю, как настроить сглаживание фильтра: отслеживая синусоидальное движение Я получаю измерения состояния, в том числе ошибки из-за шумных измерений. Пожалуйста, посмотрите на изображение отслеживания. Track In Blue, оригинальный трек. В зеленом трек вкл. ошибки в расчете местоположения (использовались фитинги с наименьшим квадратом, чтобы найти минимальную ошибку) в красном, я тестирую фильтрацию Пикальмана для сглаживания дорожки.

текущее состояние

Запустив kf.filter, я получаю очень близкое отслеживание без сглаживания. Почему фильтр становится так близко к состоянию? Как я могу изменить время окна?

kf = KalmanFilter(transition_matrices = F, observation_matrices =H, transition_covariance=Q )
(filtered_state_means, filtered_state_covariances) = kf.filter(track_smooth)

F (9,9) матрица включает в себя положение, скорость и ускорение для 3 осей

F=np.array([
[1,1,.5,0,0,0,0,0,0],
[0,1,1,0,0,0,0,0,0],
[0,0,1,0,0,0,0,0,0],
[0,0,0,1,1,.5,0,0,0],
[0,0,0,0,1,1,0,0,0], 

H - np.eye, а Q - np.eye(9)*4, дисперсия состояний x,y,z

0 ответов

Другие вопросы по тегам