Comments 84
А покажите сравнение с фильтрацией по методу скользящего среднего — сильно ли лучше результаты?
UFO just landed and posted this here
Насколько я понимаю, данный способ введения коэффициента К — лишь один из многих способов «сообщить» фильтрующему алгоритму тип истинной (без шумов) зависимости. Вопрос в том, насколько лучше данный алгоритм фильтрует шумы по сравнению с аналогами: для показаний известного типа функций — с методом «а-ля» наименьших квадратов применительно к фильтрации; для показаний неизвестного типа функций — с методом скользящего среднего (с весовыми коэффициентами и без).
Если A!=B то любое число C можно выразить как
KA + (1-K)B
в нашем случаев A, B и К меняются на каждом шаге, поэтому это исчерпывающий ответ на Ваш вопрос
KA + (1-K)B
в нашем случаев A, B и К меняются на каждом шаге, поэтому это исчерпывающий ответ на Ваш вопрос
Если, честно, я не знаю, что это такое. Но если расписать формулу для упрощенного фильтра Калмана (который в последнем графике в статье), то можно получить, что отфильтрованное значение равно
Это можно назвать, каким-то там средним, наверно.
Это можно назвать, каким-то там средним, наверно.
Скользящее среднее для таких задач не подходит. К примеру, если у вас функция растет, то среднее предыдущих значений всегда будет меньше последующего значения, хотя на самом деле каждое следующее значение будет больше предыдущих.
Вообще-то не факт, ибо, во-первых, шумовая составляющая может быть разной (резкие пики вверх, например, «подбросят» отфильтрованную функцию), во-вторых, данный эффект неплохо нивелируется использованием весовых составляющих, а также выбором величины окна при таком сглаживании.
Ну да, я имел ввиду рост линейной функции, конечно. На практике да, в некоторых случаях она может давать нормальные результаты, тем не менее скользящая средняя имеет свойство запаздывать за сигналом, потому что по сути не содержит никакой информации о возможном будущем значении.
Вот кстати, на последней ситуации как раз и показан описанный выше косяк, как я понял. Если б вы на осях цихерки все-таки указали (точное время хотя бы), то можно было бы даже примерно оценить динамическое запаздывание ФК с выбранными настройками. На графике явно видно это. Если бы шум был наложен на синусоиду, то вообще в глаза бросилось бы смещение фильтрованной синусоиды относительно исходной нефильтрованной.
На последнем графике шум как-раз наложен на синусоиду.
Только показано меньше полупериода. Но даже так видно динамическое запаздывание 5-10 отсчетов. Если бы синусоида была с еще большей частотой, то запаздывание, очень возможно, будет еще больше.
На последнем графике нет синусоиды. Фильтр синтезируется для модели процесса первого порядка. То, что представлено на графике — сумма винеровского процесса, линейной функции и шума наблюдений. Заметьте, что истинного процесса там вообще нет.
Вариант картинки с истинным процессом представлен на первом графике в статье.
Не очень понимаю, о каком запаздывании тут может идти речь. Лучше данного фильтра по указанному критерию в указанных условиях в режиме реального времени Вы всё равно ничего лучше не сделаете.
Вариант картинки с истинным процессом представлен на первом графике в статье.
Не очень понимаю, о каком запаздывании тут может идти речь. Лучше данного фильтра по указанному критерию в указанных условиях в режиме реального времени Вы всё равно ничего лучше не сделаете.
Когда я моделировал второй процесс, я брал синусоиду и налагал на нее шум.
Потом, когда фильтруешь процесс и «не знаешь», что это на самом деле синусоида с шумом, пытаешься незаконно воспользоваться фильтром Калмана, в котором зашито, что этот процесс — стационарный.
Прав товарищ HomoLuden, который говорит, что будет запаздывание от синусоиды.
Потом, когда фильтруешь процесс и «не знаешь», что это на самом деле синусоида с шумом, пытаешься незаконно воспользоваться фильтром Калмана, в котором зашито, что этот процесс — стационарный.
Прав товарищ HomoLuden, который говорит, что будет запаздывание от синусоиды.
Скользящее среднее — это просто среднее значение n предыдущих значений. Фильтр Калмана практически идентичен экспоненциальному сглаживанию, там тоже формула — S[t] = alpha*X[t] + (1-alpha)*S[t-1] (сорри, не знаю как формулу вставить).
Да, это и есть тот самый «Второй пример» из поста. Вообще, из собственного опыта мне кажется, что в реальных задачах хватает экспоненциального сглаживания за глаза — нужно только поиграть с коэффициентом alpha. Более того, зашивать в железки честный фильтр Калмана отнюдь не лучший выбор.
Формулы можно вставлять через этот стабильный сервис http://www.codecogs.com/latex/eqneditor.php
Не до конца понимаю, зачем на Хабре 4ая статья по фильтру Калмана. Это при учёте того, что на Википедии тоже неплохо описано.
повторение — мать учения.
Имхо, эта статья — лучшее объяснение. Потому что очень чётко показано — почему так.
В других статьях на хабре нету вывода формул. А на википедии написано очень непонятно, по крайней мере, я ничего там не понял, когда читал в первый раз.
На википедии лежит перевод английской статьи, с сохранением их обозначений и примеров. Переводил я её года три назад. Её нужно существенно переработать, в используемых там обозначениях, терминах и примерах ничего не понятно. Меня останавливает то, что материал попадет под GPL и у меня потом будут проблемы с изданием учебников (в университете работаю).
А почему под GPL, а не под CC-BY-SA? en.wikipedia.org/wiki/Wikipedia:Licensing_update
К сожалению, я нуб в вопросах лицензирования. Есть ли лицензия, опубликовав под которой на википедии материал, я могу потом этот же материал использовать в печатных публикациях (с передачей ряда прав издательству)?
Лицензии википедии никак не ограничивают права автора использовать этот материал как ему угодно, они только разрешают другим людям его использовать при соблюдении определённых условий (и не разрешают отменить действие этой лицензии для тех, кто не нарушает её условий). Так что это вопрос только к издательству.
Как уже не раз говорилось, фильтра Калмана много не бывает.
За одно только объяснение распределения Гаусса готов расцеловать!
Собирал вариометр-пищалку на arduino, и Калмановский фильтр отлично подошел для вычисления скорости изменения высоты по зашумленным показаниям датчика.
Следует отметить, что фильтр Калмана хорош ещё вот чем.
Обработка результатов измерений бывает риалтаймовая и постобработка. В статье описана риалтаймовская обработка — классический случай фильтра Калмана. В этих случаях все коэффициенты (корреляционные матрицы в случае многомерного фильтра, либо среднеквадратическое ожидание в одномерном) обычно выбираются эмпирическим путём, причём зачастую субъективно на основании документации датчиков (измерительная составляющая) и адекватности математической модели. На что могут влиять эти данные? Эти начальные данные влияют на запаздывание фильтра. Грубо говоря, выбираем между двух зол — либо данные у нас незашумлённые, но с запаздываением, либо данные почти без запаздывания, но при этом с очевидной погрешностью. Это бич всех усредняющих фильтров.
Теперь пару слов о постобработке. Это когда у нас есть куча измерений, все с погешностями датчиков, шумом и пр. Но зато мы обладаем неограниченным временем и вычислительными ресурсами для обработки этих результатов. Ну в самом деле, не всегда удаётся считать обратную матрицу 9 на 9 на борту самолёта с частотой на уровне килогерцев. Так вот. Фильтр Калмана применим и в постобработке. В постобработке мы можем учитывать все результаты измерений, менять начальные условия, тем самым подбирая оптимальные коэффициенты. Следует выделить три режима работы:
Сглаживание — утрированно говоря делаем следующее. Запускает фильтр от времени 0 до времени T. Затем запускаем фильтр от времени T до времени 0. В статье написано, что коэффициент K сходится к своему «истинному» значению. Так вот. Для времени в районе 0 берём коэффициенты, полученные при обратном прогоне, а для конечных моментов времени берём коэффициенты, полученные при прямом прогоне.
Сглаживание с запаздыванием. Выбираем окошко определённой ширины (по времени), запускам в него Калмана, получаем K и применяем к текущему моменту. Не хочу говориь подробно об этом, так как сам читал про этот режим весьма вскользь.
Сглаживание в одной точке. Пусть нам надо знать с хорошей точностью ошибку первоначальной выставки гироскопов в гироплатформе. Фильтр Калмана позволят произвести обработку таким образом, что сглаживаться будет не текущее измерение, а именно необходимая нам точка. Смысл в том, что мы считаем ошибку измерений на всём промежутке времени, иными словами, узнаём, насколько измерение хорошо и вот это самое «насколько» применяем для одной точки. В сферических условиях в вакууме погрешность оценки — сотые доли процента (когда-то делал для диплома модель, примерно был такой результат). Но подчеркну, это в «лабораторных» условиях. Пробовали применить для реальных данных — там начался геморрой с коэффициентами, что уже выходило за рамки диплома. Но тем не менее, при должной реализации, можно получить неплохие результаты.
Ну и напоследок, в инетернете по применению постобработки фильтра Калмана очень мало информации. Вот по сглаживанию в одной точке на русском языке так вообще один источник — переведённая книга годов 70-х. Если интересно — могу вспомнить кто автор и что за издание.
Обработка результатов измерений бывает риалтаймовая и постобработка. В статье описана риалтаймовская обработка — классический случай фильтра Калмана. В этих случаях все коэффициенты (корреляционные матрицы в случае многомерного фильтра, либо среднеквадратическое ожидание в одномерном) обычно выбираются эмпирическим путём, причём зачастую субъективно на основании документации датчиков (измерительная составляющая) и адекватности математической модели. На что могут влиять эти данные? Эти начальные данные влияют на запаздывание фильтра. Грубо говоря, выбираем между двух зол — либо данные у нас незашумлённые, но с запаздываением, либо данные почти без запаздывания, но при этом с очевидной погрешностью. Это бич всех усредняющих фильтров.
Теперь пару слов о постобработке. Это когда у нас есть куча измерений, все с погешностями датчиков, шумом и пр. Но зато мы обладаем неограниченным временем и вычислительными ресурсами для обработки этих результатов. Ну в самом деле, не всегда удаётся считать обратную матрицу 9 на 9 на борту самолёта с частотой на уровне килогерцев. Так вот. Фильтр Калмана применим и в постобработке. В постобработке мы можем учитывать все результаты измерений, менять начальные условия, тем самым подбирая оптимальные коэффициенты. Следует выделить три режима работы:
- Сглаживание
- Сглаживание с запаздыванием
- Сглаживание в одной точке
Сглаживание — утрированно говоря делаем следующее. Запускает фильтр от времени 0 до времени T. Затем запускаем фильтр от времени T до времени 0. В статье написано, что коэффициент K сходится к своему «истинному» значению. Так вот. Для времени в районе 0 берём коэффициенты, полученные при обратном прогоне, а для конечных моментов времени берём коэффициенты, полученные при прямом прогоне.
Сглаживание с запаздыванием. Выбираем окошко определённой ширины (по времени), запускам в него Калмана, получаем K и применяем к текущему моменту. Не хочу говориь подробно об этом, так как сам читал про этот режим весьма вскользь.
Сглаживание в одной точке. Пусть нам надо знать с хорошей точностью ошибку первоначальной выставки гироскопов в гироплатформе. Фильтр Калмана позволят произвести обработку таким образом, что сглаживаться будет не текущее измерение, а именно необходимая нам точка. Смысл в том, что мы считаем ошибку измерений на всём промежутке времени, иными словами, узнаём, насколько измерение хорошо и вот это самое «насколько» применяем для одной точки. В сферических условиях в вакууме погрешность оценки — сотые доли процента (когда-то делал для диплома модель, примерно был такой результат). Но подчеркну, это в «лабораторных» условиях. Пробовали применить для реальных данных — там начался геморрой с коэффициентами, что уже выходило за рамки диплома. Но тем не менее, при должной реализации, можно получить неплохие результаты.
Ну и напоследок, в инетернете по применению постобработки фильтра Калмана очень мало информации. Вот по сглаживанию в одной точке на русском языке так вообще один источник — переведённая книга годов 70-х. Если интересно — могу вспомнить кто автор и что за издание.
Браммер К. и Зиффлинг Г. Фильтр Калмана-Бьюси 1982 г.
PDF найти несложно при желании. Фундаментальный труд, где корректно и достаточно просто описаны основы ФК и как этот метод выводится из Гауссовско-Марковского Метода Наименьших Квадратов.
PDF найти несложно при желании. Фундаментальный труд, где корректно и достаточно просто описаны основы ФК и как этот метод выводится из Гауссовско-Марковского Метода Наименьших Квадратов.
Спасибо за ссылку — не знал этой книги. А книгу, которую я упомянул, это Дж. Медич «Статистически оптимальные линейные оценки и управление», изд. «Энергия», 1973
Еще есть более практический труд
Сизиков Устойчивые методы результатов измерения
Там кроме ФК есть много других методов из разных предметных областей.
Сизиков Устойчивые методы результатов измерения
Там кроме ФК есть много других методов из разных предметных областей.
А что делает налоговая инспекция Саратова в этом URL?
Я не понял механизм. Как такое произошло?
Это результат творчества живого поиска Google.
Если присмотреться к URL, то там видно две части — до # и после #. Налоговая инспекция находится в части до решетки, следовательно это оригинальный запрос, который был введен, например, в строке адреса браузера. Искомый же запрос находится после символа #, следовательно он был добавлен туда веб-интерфейсом гугла после ввода запроса в строку поиска в результатах поиска. Таким образом в адресную строку попало два запроса, которые и выполнились, отобразив результат последнего запроса.
Если присмотреться к URL, то там видно две части — до # и после #. Налоговая инспекция находится в части до решетки, следовательно это оригинальный запрос, который был введен, например, в строке адреса браузера. Искомый же запрос находится после символа #, следовательно он был добавлен туда веб-интерфейсом гугла после ввода запроса в строку поиска в результатах поиска. Таким образом в адресную строку попало два запроса, которые и выполнились, отобразив результат последнего запроса.
во наворотили…
Это нужно для воспроизводимости результатов живого поиска. По этому то, что изменялось на странице JavaScript'ом отражается в якоре (после #), в результате получается ссылка как бы на результат работы скриптов страницы, которую можно копировать, сохранять, передавать другим и повторно к ней возвращаться.
Жизненно необходимая кстати вещь для AJAX-сайтов.
Жизненно необходимая кстати вещь для AJAX-сайтов.
Я видел очень удачные варианты, когда при смене содержимого страницы AJAX-ом или просто JS, в браузере меняется основная часть URL без перезагрузки страницы. Например, так сделано в TiddlyWiki
Так что по-прежнему не понимаю необходимости сохранять первичный запрос в URL…
Так что по-прежнему не понимаю необходимости сохранять первичный запрос в URL…
Все просто… Искал сначала налоговую. Потом в строке поиска на странице ввел новый запрос и не обратил внимание, что в строке адреса остался прежний УРЛ
Ужас! Хорошо хоть с «Вышивкой крестом» не пропалился :)
Вот правильная ссылка
Вот правильная ссылка
Фильтр Калмана хорош ещё и тем, что в нём встроены вычисление и учёт ненаблюдаемых параметров (скорость машинки, если она непостоянна и неизвестна).
Спасибо, всплакнул
Я экзамен по этому фильтру (системотехника) в универе в конце 90x сдал раз на 11 только (совпали в пространстве моя лень и вредность препода). Зато, когда потом на госах мне по другой дисциплине (радиоавтоматика) выпал опять этот фильтр, тут уж я расцвел во всей красе.
Я экзамен по этому фильтру (системотехника) в универе в конце 90x сдал раз на 11 только (совпали в пространстве моя лень и вредность препода). Зато, когда потом на госах мне по другой дисциплине (радиоавтоматика) выпал опять этот фильтр, тут уж я расцвел во всей красе.
Аккуратная приятная статья. Небольшие замечания.
1) Оптимальность вашего решения достигается только в случае, если \ksi и \eta являются нормальными случайными величинами. Иначе — это оптимум только среди линейных фильтров.
Существует много различных фильтров Калмана, но под классическим Калманом сейчас принято понимать систему фильтрации, которая производит расчет вектора математических ожиданий и ковариационную матрицу многомерного нормального апостериорного распределения x_k. А чтобы оно было нормальным — все ингредиенты должны быть тоже нормальными.
Как я уже сказал, это не означает, что приведенный фильтр не является фильтром Калмана. Просто в этой задаче он квазиоптимален.
2) То, что описано во второй главе, полноценный фильтр Калмана. Только для модели процесса первого порядка. То есть, если принимать, что на всём k-м интервале x_k остается неизменным, а при смене интервала меняется скачком до x_{k+1}. Нагребать большие ошибки вы начнете, когда эта модель перестанет согласовываться с вашим входным процессом. Например, если установите большую скорость, получите ошибку около VT/2.
PS А как Вы TeX прикрутили к хабру?
1) Оптимальность вашего решения достигается только в случае, если \ksi и \eta являются нормальными случайными величинами. Иначе — это оптимум только среди линейных фильтров.
Существует много различных фильтров Калмана, но под классическим Калманом сейчас принято понимать систему фильтрации, которая производит расчет вектора математических ожиданий и ковариационную матрицу многомерного нормального апостериорного распределения x_k. А чтобы оно было нормальным — все ингредиенты должны быть тоже нормальными.
Как я уже сказал, это не означает, что приведенный фильтр не является фильтром Калмана. Просто в этой задаче он квазиоптимален.
2) То, что описано во второй главе, полноценный фильтр Калмана. Только для модели процесса первого порядка. То есть, если принимать, что на всём k-м интервале x_k остается неизменным, а при смене интервала меняется скачком до x_{k+1}. Нагребать большие ошибки вы начнете, когда эта модель перестанет согласовываться с вашим входным процессом. Например, если установите большую скорость, получите ошибку около VT/2.
PS А как Вы TeX прикрутили к хабру?
Спасибо большое за отзыв
1) Фильтр Калмана, даже если ошибки распределены по Гауссу, всегда лучший линейный фильтр. Среди нелинейных есть и лучше.
Единственное отличие двух случаев (ошибки Гауссовы или нет) состоит в том, что в случае с негауссовской ошибкой, фильтр Калмана лучший в смысле среднеквадратичного приближения. В Гауссовском же случае фильтр лучший в смысле среднего от почти любой хорошей функции. Можно посмотреть, к примеру, на теорему 2 в оригинальной статье Калмана
1) Фильтр Калмана, даже если ошибки распределены по Гауссу, всегда лучший линейный фильтр. Среди нелинейных есть и лучше.
Единственное отличие двух случаев (ошибки Гауссовы или нет) состоит в том, что в случае с негауссовской ошибкой, фильтр Калмана лучший в смысле среднеквадратичного приближения. В Гауссовском же случае фильтр лучший в смысле среднего от почти любой хорошей функции. Можно посмотреть, к примеру, на теорему 2 в оригинальной статье Калмана
Точнее ремарка (e) к теореме 2.
Мне кажется у Вас описка —
«Фильтр Калмана, даже если ошибки распределены по Гауссу, всегда лучший линейный фильтр. Среди нелинейных есть и лучше.»
Наверное имели в виду «даже если ошибки распределены не по Гауссу». Если ошибки наблюдений и формирующий шум распределены нормально, то как я и говорил ранее, фильтр является оптимальным среди любых фильтров по целому ряду критериев. В том числе, по Вашему критерию минимума математического ожидания квадрата ошибки.
Остальное прокомментировать не могу, т.к. не знаю, что Вы имеете в виду под среднеквадратическим приближением и про какую хорошую функцию идет речь.
«Фильтр Калмана, даже если ошибки распределены по Гауссу, всегда лучший линейный фильтр. Среди нелинейных есть и лучше.»
Наверное имели в виду «даже если ошибки распределены не по Гауссу». Если ошибки наблюдений и формирующий шум распределены нормально, то как я и говорил ранее, фильтр является оптимальным среди любых фильтров по целому ряду критериев. В том числе, по Вашему критерию минимума математического ожидания квадрата ошибки.
Остальное прокомментировать не могу, т.к. не знаю, что Вы имеете в виду под среднеквадратическим приближением и про какую хорошую функцию идет речь.
Нет я не описался, я просто плохо выразился.
Вы не правы. Фильтр Калмана, как в случае с Гауссовскими ошибками, так и в случае в негауссовскими ошибками не есть самый лучший фильтр.
Если ошибки по Гауссу — фильтр Калмана лучший среди линейных в смысле среднеквадратичных приближений.
Если ошибки не по Гауссу — фильтр Калмана лучший среди линейных в смысле «любого» приближения. Слово «любой», конечно надо хорошо определить.
Опять-таки ссылаюсь на теорему 2 из статьи Калмана.
Вы не правы. Фильтр Калмана, как в случае с Гауссовскими ошибками, так и в случае в негауссовскими ошибками не есть самый лучший фильтр.
Если ошибки по Гауссу — фильтр Калмана лучший среди линейных в смысле среднеквадратичных приближений.
Если ошибки не по Гауссу — фильтр Калмана лучший среди линейных в смысле «любого» приближения. Слово «любой», конечно надо хорошо определить.
Опять-таки ссылаюсь на теорему 2 из статьи Калмана.
По остальным утверждениям, нужно более строго определять предмет разговора, а вот это опровергнуть можно и при уже введенных терминах:
«Вы не правы. Фильтр Калмана, как в случае с Гауссовскими ошибками, так и в случае в негауссовскими ошибками не есть самый лучший фильтр.»
Калман, в своей канонической статье 60-го года, действительно искал оптимум среди линейных фильтров. Но в это же время наш физик Статонович разработал аппарат описания условных марковских процессов, суть которого сосредоточена в уравнениях Стратоновича.
Уравнения Стратоновича, в рамках описанной Вами задачи, позволяют рассчитать апостериорную ПВ p(x_k | z_k).
Не очень понятно, что Вы имеете в виду под «ошибками». Но мне видятся два варианта, в обоих вывод один и тот же.
1) Если Вы про нормальность ошибок измерений и нормальность формирующего процесса, то АПВ p(x_k | z_k) является строго нормальной. Причем мат.ожидание этого распределения — ваша x_k^{opt}. Нетрудно показать, что в этом случае x_k^{opt} минимизирует средний квадрат e_k.
2) Если Вы про нормальность e_k при использовании ФК, то \nu и \eta нормальны. А по Вашим условиям задачи их мат. ожидание равны нулю. Возвращаемся к пункту 1.
Таким образом, в условиях Вашей задачи:
1) Если \ksi и \eta распределены нормально, то ФК является оптимальным по критерию минимума СКОшибки, как среди линейных фильтров, так и среди нелинейных. В этом случае фильтр Калмана — решение уравнений Стратоновича для вектора математического ожидания и ковариационной матрицы. То есть ФК строго описывает p(x_k | z_k).
2) Если распределение \ksi и \eta отличны от нормального, то ФК является оптимальным по критерию СКОш только в классе линейных фильтров. Оптимизация в общем случае не гарантирована. В этом случае p(x_k | z_k) не является нормальным распределением, для его описания не достаточно итеративно рассчитывать x_k^{opt} и K_k (которые суть вектор мат. ожиданий и ковариационная матрица).
«Вы не правы. Фильтр Калмана, как в случае с Гауссовскими ошибками, так и в случае в негауссовскими ошибками не есть самый лучший фильтр.»
Калман, в своей канонической статье 60-го года, действительно искал оптимум среди линейных фильтров. Но в это же время наш физик Статонович разработал аппарат описания условных марковских процессов, суть которого сосредоточена в уравнениях Стратоновича.
Уравнения Стратоновича, в рамках описанной Вами задачи, позволяют рассчитать апостериорную ПВ p(x_k | z_k).
Не очень понятно, что Вы имеете в виду под «ошибками». Но мне видятся два варианта, в обоих вывод один и тот же.
1) Если Вы про нормальность ошибок измерений и нормальность формирующего процесса, то АПВ p(x_k | z_k) является строго нормальной. Причем мат.ожидание этого распределения — ваша x_k^{opt}. Нетрудно показать, что в этом случае x_k^{opt} минимизирует средний квадрат e_k.
2) Если Вы про нормальность e_k при использовании ФК, то \nu и \eta нормальны. А по Вашим условиям задачи их мат. ожидание равны нулю. Возвращаемся к пункту 1.
Таким образом, в условиях Вашей задачи:
1) Если \ksi и \eta распределены нормально, то ФК является оптимальным по критерию минимума СКОшибки, как среди линейных фильтров, так и среди нелинейных. В этом случае фильтр Калмана — решение уравнений Стратоновича для вектора математического ожидания и ковариационной матрицы. То есть ФК строго описывает p(x_k | z_k).
2) Если распределение \ksi и \eta отличны от нормального, то ФК является оптимальным по критерию СКОш только в классе линейных фильтров. Оптимизация в общем случае не гарантирована. В этом случае p(x_k | z_k) не является нормальным распределением, для его описания не достаточно итеративно рассчитывать x_k^{opt} и K_k (которые суть вектор мат. ожиданий и ковариационная матрица).
Спасибо за ответ. К сожалению, не знаю аппарат Статоновича. А что из-него правда следует, что фильтр Калмана лучший среди всех фильтров на свете (если \xi и \eta нормальны)? Можете подсказать, где это лучше прочитать?
Говоря о «лучшем» нужно не забывать упоминать критерий и условия задачи. Вы критерий и условия четко обозначили в статье. Для этого критерия и для этой задачи ФК действительно оказывается лучшим.
1) Как нетрудно догадаться, разворошил улей Стратонович
Непосредственно основные труды Стратоновича перечислены на его странице в вики:
ru.wikipedia.org/wiki/Стратонович
Я их не читал, но судя по названию, интересует вот эти:
Kuznetsov P.I, Stratonovich R. L., Tikhonov V.I., Nonlinear Transformation of Stochastic Processes
Стратонович Р. Л. Условные марковские процессы и их применение к теории оптимального управления
2) Человек с большой буквы, который всё это применил на практике — Тихонов. Выжимка его работ тут: Статистический анализ и синтез радиотехнических устройств и систем
3) Второе поколение больших исследователей — Перов Александр Иванович и Харисов Владимир Назарович.
Книга Харисова (он ученик Тихонова) — выше, совместная с Тихоновым.
У Перова книжек много на эту тему. В сети можно найти книгу Статистическая теория радиотехнических систем. Но она тяжела для осмысления и понимания. Намного лучше в этом плане его новая книга, предназначенная для студентов: Методы и алгоритмы оптимального приема сигналов в аппаратуре потребителей спутниковых радионавигационных систем
Я планирую написать на хабре пару статей на эту тему, но всё нет времени.
1) Как нетрудно догадаться, разворошил улей Стратонович
Непосредственно основные труды Стратоновича перечислены на его странице в вики:
ru.wikipedia.org/wiki/Стратонович
Я их не читал, но судя по названию, интересует вот эти:
Kuznetsov P.I, Stratonovich R. L., Tikhonov V.I., Nonlinear Transformation of Stochastic Processes
Стратонович Р. Л. Условные марковские процессы и их применение к теории оптимального управления
2) Человек с большой буквы, который всё это применил на практике — Тихонов. Выжимка его работ тут: Статистический анализ и синтез радиотехнических устройств и систем
3) Второе поколение больших исследователей — Перов Александр Иванович и Харисов Владимир Назарович.
Книга Харисова (он ученик Тихонова) — выше, совместная с Тихоновым.
У Перова книжек много на эту тему. В сети можно найти книгу Статистическая теория радиотехнических систем. Но она тяжела для осмысления и понимания. Намного лучше в этом плане его новая книга, предназначенная для студентов: Методы и алгоритмы оптимального приема сигналов в аппаратуре потребителей спутниковых радионавигационных систем
Я планирую написать на хабре пару статей на эту тему, но всё нет времени.
А формулы прикрутил через онлайн сервис http://www.codecogs.com/latex/eqneditor.php.
Он сам генерирует картинки для формул. Он стабильный
Он сам генерирует картинки для формул. Он стабильный
Сопутствующий вопрос — матлабовские плоты так чудно обработаны в фотошопе? Или кто-то уже написал специальный рендер для fig'ов, выдающий такую красоту?
каждую формулку отдельно?
Большое спасибо за статью. Соглашусь с мнением excoder. Это лучшее по фильтру Калмана, что я читал на Хабре. Все аккуратно и по полочкам разобрано. Особенно понятно для человека, последний раз слышавшем о фильтре Калмана в институте. Сразу понимаешь зачем это нужно, как и куда это применить.
степень вони
улыбнуло
улыбнуло
Напомнило. Вчера был опубликован перевод одной статьи про применение UKF (Unscented Kalman filter, фильтр, в котором мат.ожидание и дисперсия пересчитываются с помощью unscented преобразования, что позволяет получить профит в нелинейной задаче), так там UKF перевели как «запах фильтра Калмана».
www.gisa.ru/93309.html?from_email=Y
www.gisa.ru/93309.html?from_email=Y
Ну как тока его не называют, и «непахнучий», и «чуткий». Но я до сих пор так не слышал как все таки по правильному. Даже на конференции по навигации в Питере, где вроде одни умные дядьки, ну и следовательно переводчики должны быть подкованные. Его там просто перевели «Калмановская фильтрация», ну просто epic fail.
Вот прочёл статью. и вот тоже как правильно инерционные датчики или инерциальные, вроде какбе второе?
Русский язык позволяет и так, и так. Технический же термин — инерциальные.
Удивительно, но журналисты умудрились из этой идеи, которой сто лет в обед, сделать сенсацию. Вот статья на ленте оказывается уже есть:
lenta.ru/news/2013/02/14/satnav/
Удивительно, но журналисты умудрились из этой идеи, которой сто лет в обед, сделать сенсацию. Вот статья на ленте оказывается уже есть:
lenta.ru/news/2013/02/14/satnav/
ИМХО, инерционные — это когда они сами тормозят с измерением, то есть лагают, а инерциальные — когда торможение меряют
Какое красивое и ёмкое определение))
Очень хорошо «разжована». Вот два раза прочесть и всё будет НАКОНЕЦ-То! понятно
А можно еще дальше обобщить — factor graphs, не только kalman filtering, но и много других GM и все в едином фреймворке.
Адский переход от повторного интеграла к произведению интегралов (в доказательстве Exy=ExEy).
Очень доходчиво. Искала информацию после прочтения статьи, где применялся фильтр. Вы прям все по полочкам разложили, спасибо!
фрагмент «Из того что все случайные величины, входящие в выражение для, независимы, следует, что все «перекрестные» члены равны нулю:»
можно расписать подробнее, а именно:
Из того, что все случайные величины в выражении независимы, то следует! что их ковариация = 0,
Ковариация = Е(xy)-E(x)*E(y) = 0, учитывая, что по условию средние значения ошибок случайных величин у нас E(x) = E(y) = 0,
то E(xy) = 0. и т.д.
можно расписать подробнее, а именно:
Из того, что все случайные величины в выражении независимы, то следует! что их ковариация = 0,
Ковариация = Е(xy)-E(x)*E(y) = 0, учитывая, что по условию средние значения ошибок случайных величин у нас E(x) = E(y) = 0,
то E(xy) = 0. и т.д.
Вы абсолютно правы. Спасибо за находку. Как появится время попробую исправить неточность.
Поправил. Еще раз спасибо.
Спасибо,
важно сохранять последовательность и степень очевидности (чтобы было понятно),
например
«Это выражение принимает минимальное значение, когда (приравниваем производную к нулю) » не очевидна, так как производная равно нулю и при максимуме или при минимуме, или вообще даже когда функция — прямая горизонтальная линия :)))
как правило когда пишется статья, то автор не видит этого, так как глаз замыливается, потому и появилось столько статей про фильтр Калмана.
Про википедию и прочее можно сказать, что это просто справочник знаний, для тех кто знал, но забыл :))
Понравилось в свое время, скрипты к немецким учебникам для ВУЗов, где все понятно было расписано.
Думаю, что для написания учебной литературы нужно привлекать самих студентов, классифицировать основные вопросы по частоте
возникновения, и корректировать материал, иначе каждый автор пишет со своей высоты, часто упуская важные детали и примеры.
важно сохранять последовательность и степень очевидности (чтобы было понятно),
например
«Это выражение принимает минимальное значение, когда (приравниваем производную к нулю) » не очевидна, так как производная равно нулю и при максимуме или при минимуме, или вообще даже когда функция — прямая горизонтальная линия :)))
как правило когда пишется статья, то автор не видит этого, так как глаз замыливается, потому и появилось столько статей про фильтр Калмана.
Про википедию и прочее можно сказать, что это просто справочник знаний, для тех кто знал, но забыл :))
Понравилось в свое время, скрипты к немецким учебникам для ВУЗов, где все понятно было расписано.
Думаю, что для написания учебной литературы нужно привлекать самих студентов, классифицировать основные вопросы по частоте
возникновения, и корректировать материал, иначе каждый автор пишет со своей высоты, часто упуская важные детали и примеры.
На счёт центральной предельной теоремы.
1) Кси ваши — независимые с одинаковой функцией распределения, и все имеют мат. ожидание и дисперсию. Пример когда эта Теорема не работает — у вас есть N случайных величин распределённых по Коши. И накачка N не поможет добиться Распределения по Гаусу.
2) Так же есть более продвинутая Теорема — Теорема нашего соотечественника — Ляпунова для Теории Вероятности. Которая более продвинутая нежелели чем Центральная Предельная Теорема.
Буду рад если этот комментарий может пригодиться для прокачки вашей замечательной статьи.
1) Кси ваши — независимые с одинаковой функцией распределения, и все имеют мат. ожидание и дисперсию. Пример когда эта Теорема не работает — у вас есть N случайных величин распределённых по Коши. И накачка N не поможет добиться Распределения по Гаусу.
2) Так же есть более продвинутая Теорема — Теорема нашего соотечественника — Ляпунова для Теории Вероятности. Которая более продвинутая нежелели чем Центральная Предельная Теорема.
Буду рад если этот комментарий может пригодиться для прокачки вашей замечательной статьи.
У вас есть раздел про «Независимые случайные величины»
Независимость в Теории Вероятности по мнению одного из зарубежных математиков в области Теории Вероятности и мат статистики — мутная тема
“independent random variables were to me (and others, including my teacher Steinhaus) shadowy and not really well-defined objects” — Mark Kac
Когда я учился в университете в МГТУ. В одной из книг математической серии
( «XVI Теория вероятностей» под редакцией Зарубина, Кришенко этот факт так же отмечался)
С теоретической точки зрения:
Дело в том, что причинно-следственная независимость вроде как бы влечёт, что P(AB)=P(A)P(B)
Если P — это статическая вероятность померенная по происхождения события A, B и AB, а не аксиоматическая мера то такой вещей кажется «разумным».
Но рассмотрение этого факта в другую сторону из того что они независимы причинно-следственные будет ли выполняться P(AB)=P(A)P(B) — не совсем понятно
С практической точки зрения:
Очень ловко подменяется понятие «введённой независимости в курсе тер.вера» и «реальной» в головах инженеров.
Будьте аккуратны!)
Независимость в Теории Вероятности по мнению одного из зарубежных математиков в области Теории Вероятности и мат статистики — мутная тема
“independent random variables were to me (and others, including my teacher Steinhaus) shadowy and not really well-defined objects” — Mark Kac
Когда я учился в университете в МГТУ. В одной из книг математической серии
( «XVI Теория вероятностей» под редакцией Зарубина, Кришенко этот факт так же отмечался)
С теоретической точки зрения:
Дело в том, что причинно-следственная независимость вроде как бы влечёт, что P(AB)=P(A)P(B)
Если P — это статическая вероятность померенная по происхождения события A, B и AB, а не аксиоматическая мера то такой вещей кажется «разумным».
Но рассмотрение этого факта в другую сторону из того что они независимы причинно-следственные будет ли выполняться P(AB)=P(A)P(B) — не совсем понятно
С практической точки зрения:
Очень ловко подменяется понятие «введённой независимости в курсе тер.вера» и «реальной» в головах инженеров.
Будьте аккуратны!)
Я делюсь с соотечественниками, тем что скорее всего интересно любому инженеру. Проставление минусов меня только уводит от того, что я не буду делиться знаниями со своими соотечественниками… Хватит взрывать свою же нацию изнутри. Пора переключиться от критики к поддержке...(Если вы ещё не поняли в чём секрет успеха США)
Отличный пост, я получила громадное удовольствие при чтении! В нашей области это редко случается.
Sign up to leave a comment.
Фильтр Калмана