Кто-либо мог объяснить и/или отправить код C для алгоритма фильтра Калмана усовершенствования?

Мне нужно объяснение алгоритма фильтра Калмана усовершенствования. Предпочтительно код C, но только алгоритм будет работать на меня.

6
задан P Shved 6 January 2010 в 05:48
поделиться

1 ответ

Фильтры Калмана - это специализированные версии фильтров Винера. В частности, фильтры Калмана берут информацию о проблемной области и улучшают фильтр Винера, применяя знания, специфичные для этой области. Я нашел страницу Википедии отличным справочным источником для понимания деталей алгоритма.

Не повторяя здесь конкретных деталей (без функций изображения линейной алгебры), фильтры Калмана оценивают будущее состояние постепенно (как и фильтры Винера, если на то пошло). В частности, мы оцениваем состояние, применяем оценки шума для конкретной предметной области и приближения изменения состояния, а затем повторяем. Иными словами, мы берем текущие наблюдения за состоянием, фильтруем эти наблюдения, прогнозируем следующее состояние, а затем объединяем эти выходные данные для создания нового наблюдения за следующим состоянием.

Я обнаружил, что фильтры Калмана весьма полезны для предсказания траектории движения. Поскольку траектории движения являются плавными, фильтры Калмана работают особенно хорошо - движение можно легко предсказать, используя прошлые известные наблюдения за состоянием. Итак, предположим, что вы едете в машине по дороге, вы должны записать текущие координаты автомобиля как текущее состояние. Затем вы фильтруете прошлые наблюдения за состоянием (ваши предыдущие местоположения), чтобы предсказать следующую точку, в которой будет находиться машина (во времени). Обратите внимание, что вы можете применить законы физики (например, импульс), чтобы настроить этот фильтр и получить вполне разумные результаты. Случайные изменения скорости или направления в некоторой степени влияют на прогнозы.

Взгляните на эту реализацию C , и вы увидите, что у нас есть две основные функции при запуске фильтра Калмана оценки и обновления ( В статье в Википедии говорится об этом, но оценка называется « прогнозирует »).

В конечном итоге вам нужно будет определить некоторые очень конкретные статистические данные для проблемы, с которой вы хотите применить фильтр Калмана. В частности, вам необходимо генерировать / записывать / наблюдать статистику того, как изменчивость наблюдаемого вами шумового сигнала изменяется с течением времени. Предполагается, что прогнозируемый процесс также является стохастическим, и поэтому вам также необходимо оценить его статистику.

15
ответ дан 8 December 2019 в 16:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: