Цифровые сигнальные процессоры Вопросы, связанные с применением цифровых сигнальных процессоров: программирование, отладочные средства, алгоритмы... |
21.06.2010, 22:17
|
|
Вид на жительство
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Сообщение от raxp
|
http://autopilot.sourceforge.net - пишут, что есть код... как-то спрятали его
+ кое-что...
|
Это я уже курил, толку мало, информации действительно очень много, начиная от википедии заканчивая оффициальным сайтом Калмана с его изданиями в оригинале, да вот только я перелапатив все это дело не могу прийти к законченному алгоритму, точнее, я даже не могу себе его представить частично . Вчера искал реализации на С наткнулся тоже на реализацию в пару строк для платформы Aurdino, портировал для себя, вроде работает, но если я максимально сглаживаю шум, то он начинает сильно отставать от входного сигнала. Подобным недостатком обладает экспоненциальный фильтр, его я тоже пробовал, там вообще ни в какие ворота е лезет при большой динамике сигнала . В общем буду дальше заиматься изучением материала, к стате, спасибо за ссылки, обязательно ознакомлюсь.
__________________
____________________________________________
Internet Explorer - это такая программа, с помощью которой можно зайти на сайт http://opera.com и скачать себе браузер...
|
|
|
|
21.06.2010, 22:59
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Насчет Калмана - это не такой уж и впечатляющий фильтр и требует явно заданных закономерностей поведения управляемой/наблюдаемой системы. Является по сути интегратором с опережающим предсказанием, которое использует сигналы воздействия на систему и известные (то бишь заданные вручную) закономерности отклика системы. В одномерном случае вообще может выродится в три строки со сложением, отрицанием и умножением.
Материал в источниках подан слишком натянуто на универсальное многомерное исчисление, буквы подобраны не очень удачно и все это вызывает непонятки у людей.
Nikopol, может вы расскажете подробней чего именно вы хотите добиться? Какой сигнал хотите получить, от какой системы, чего хотите достичь и т.д.?
Я прошу дополнительную информацию потому что есть много вариантов решения одной задачи.
Например, у меня имеется обширный опыт с NLMS-фильтрами, с которыми можно сделать многое, так как они позволяют строить адаптивную модель отклика управляемой системы "на лету", без привязок. С помощью это фильтра можно сделать удивительные вещи - подавить паразитное эхо в звуковом сигнале, сделать адаптивный ПИД регулятор, подавить шум и т.д. NLMS это действительно универсальный предсказатель.
Калман - отдаленное подобие известного ПИДа, только перенесенного на плоскость измерений, а не управления.
В универсальном виде вы Калман не получите, ну разве что используя матричную арифметику, но стоит понимать что это всего лишь математический штрих - под перемножением матриц можно понимать очень многое, кроме собственно перемножения матриц. Например, таким образом часто показывают какое либо воздействие на величину. А воздействие может быть нелинейное, рекурсивное и т.д. - любое, в том числе и то, которое двумерной матрицей ну никак не описывается. При этом в алгебре все просто: С = A * B. "На пальцах": величина С получена из А с учетом взаимодействия B.
Поэтому не зная задачи нельзя и говорить о реализации алгоритма Калмана.
__________________
.
В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.
|
|
|
Сказали "Спасибо" alexgap
|
|
|
21.06.2010, 23:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Да говорить то и не надо.
Нужен ПРИМЕР на Си с началом и концом, а не несколько цитат кода.
Так как делают в апноутах.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
21.06.2010, 23:20
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Алгоритм Калмана "на пальцах":
очищенный_сигнал_наблюдаемый_от_объекта = интегрированный_сигнал_наблюдаемый_от_объекта + сигнал_управления_объектом * модель_отклика_объекта
Как я говорил выше, знак "*" не стоит воспринимать буквально. Например, на языке програмирования в одномерном случае имеется в виду вызов функции модель_отклика_объекта с передачей ей одного аргумента сигнал_управления_объектом, например типа int:
Код:
|
int x = модель_отклика_объекта(сигнал_управления_объектом) ; |
Вызов функции дает значение x - это предсказанный сигнал отклика системы на управляющий сигнал. Предсказанный сигнал дает нам возможность знать что случится через несколько мгновений. Таким образом как-бы восстанавливается "острота" отфильтрованного сигнала, которая теряется при интегрировании (подавлении шума). Хочу заметить, что отклик системы всегда сбалансирован относительно 0.
В википедии то же самое изложено с стохастической точки зрения, что, на мой взгляд, намного сложнее для быстрого понимания.
__________________
.
В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.
Последний раз редактировалось alexgap; 21.06.2010 в 23:29.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
|
|
21.06.2010, 23:26
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Сообщение от avr123-nm-ru
|
Нужен ПРИМЕР на Си с началом и концом, а не несколько цитат кода.
|
Чтобы был пример, нужно полное мат. описание управляемой/наблюдаемой системы. Если это физическая система, такая как гироскоп, то нужно знать зависимость скорости гироскопа от прилагаемого напряжения к мотору, который его раскручивает.
А систем таких тысячи на каждом углу. Поэтому и нет одного примера, который бы удовлетворил всех (точнее пример уже приводили, но его никто не понял - потому что мы не знаем ничего о системе, которую в алгоритм заложил его автор).
Я и прошу автора описать свою систему - чем управляют, что замеряют, чтобы можно было хотя бы мерность системы понять.
__________________
.
В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.
Последний раз редактировалось alexgap; 21.06.2010 в 23:46.
|
|
|
|
22.06.2010, 08:23
|
|
Вид на жительство
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Сообщение от alexgap
|
Nikopol, может вы расскажете подробней чего именно вы хотите добиться? Какой сигнал хотите получить, от какой системы, чего хотите достичь и т.д.?
Я прошу дополнительную информацию потому что есть много вариантов решения одной задачи.
|
Излагаю конкретную задачу, которая встала передомною. Есть сигнал от датчика ускорения, соответсявенно, когда атчик находится в состоянии покоя на выходе получаем очень зашумленный сигнал с размахом в 0,05 (весь диапозон от -3 до 3), задача состоит в том, что бы сгладить этот шум как можно больше, идеальным было бы конечно до 0,001, да и того меньше. Сам сигнал используется для управления изображением (т.е. его вращением, в зависимости от сигнала с датчика). Я пробовал применить КИХ ФНЧ, но нужного сглаживания я не добился, а моя реализация Калмана дает очень сильную задержку, что очень плохо влияет на динамику системы. В результате что мне необходимо:
- максимально сгладить шум, дабы небыло ложных колебаний, когда датяик находится в покое.
- сохранить динамику всей системы в целом, т.е. при перемещении датчика, фронты сигнала после фильтра максимально должны повторять входной сигнал.
Могу привести пример графиков с датчика, если необходимо. Я уже вторую неделю занимаюсь этим вопросом, но пока что нужного решения не нашел, к сожалению .
__________________
____________________________________________
Internet Explorer - это такая программа, с помощью которой можно зайти на сайт http://opera.com и скачать себе браузер...
|
|
|
|
22.06.2010, 09:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Сообщение от alexgap
|
Чтобы был пример, нужно полное мат. описание управляемой/наблюдаемой системы.
|
Большинству, чтобы увидеть код в ТЫЩАХ апноутов, достаточно апноут скачать и посмотреть. Для этого не нужно ни какого мат. описания.
Нужен только доступ к документу и возможность его просмотра.
Сообщение от alexgap
|
А систем таких тысячи на каждом углу. Поэтому и нет одного примера, который бы удовлетворил всех
|
А просят пример на все случаи жизни ?
Я уж несколько раз спрашивал ЛЮБОЙ пример, но с началом, серединой и концом. Который можно в компиляторе скомпилировать.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
Последний раз редактировалось avr123-nm-ru; 22.06.2010 в 09:56.
|
|
|
|
22.06.2010, 10:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Сообщение от Nikopol
|
Есть сигнал от датчика ускорения, .
|
У меня аналогично, но "гироскоп" - т.е. измеритель угловой скорости. Стоит на столе показания скачут у нуля хаотически ( на чуть чуть вроде ) ни фильтрами ни коэфами скорректировать не возможно. После интегрирования получается что стол поворачивается не предсказуемо градусов на 5-10 в секунду.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
22.06.2010, 11:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Сообщение от alexgap
|
у меня имеется обширный опыт с NLMS-фильтрами, с которыми можно сделать многое, так как они позволяют строить адаптивную модель отклика управляемой системы "на лету", без привязок.
|
Вот по твоей ссылке есть и линк на конкреный код реализации этого алгоритма
http://xleox.somee.com/LMSAlgorithm.aspx
Вот тоже и шукчеца для Калмана.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
23.06.2010, 01:09
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Нужна помощь в реализации фильтра Калмана
Сообщение от Nikopol
|
Есть сигнал от датчика ускорения
|
То, ускорение чего он замеряет, управляется вашим же аппаратом?
__________________
.
В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:50.
|
|