Правила сообщества
В нашем сообществе запрещается:
• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)
• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском
• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)
• Рассуждать на темы политики
• Нарушать установленные правила Пикабу
В дополнительных региональных настройках винды можно заменить запятую на точку в Excel.
Что то это нифига не фильтр Калмана.
И да мне обидно за то, что ты называешь сильношумящим датчик BMP180. Даже фильтрации данных с датчика шум от него по высоте не превышает метра (производитель заявляет 50 сантиметров в режиме экономии энергии и 17 сантиметров в режиме повышенного разрешения). То есть даже без дополнительной фильтрации видно как ты перекладываешь датчик со стола на пол и наоборот. И я считаю это более чем отличным результатом.
В переменных Pc, G, P и т д хранится информация о прошлых измерениях. И если вдруг я захочу фильтровать значения не от одного датчика, а от 10, то мне придется создавать 10 наборов таких переменных и создавать 10 дубликатов этой функции, что согласись мягко говоря не очень удобно. Лучше использовать структуры или классы, например вот так
https://gist.github.com/anonymous/7ae54f90fa923d055a5edcc29c...
В этом случае для каждого канала будет легко создать свой набор переменных
KalmanFilterTypeDef FilterTemp, FilterPressure, FilterADC;
на этапе инициализации фильтра указать для каждого канала свои параметры фильтрации
KalmanFilterInit(&FilterTemp, 0.26, 0.01);
KalmanFilterInit(&FilterPressure, 0.46, 0.1);
KalmanFilterInit(&FilterADC, 0.21, 0.0024);
и пользоваться одной и той же функцией для фильтрации нескольких каналов
Temp = KalmanFilter(&FilterTemp, NewTemp);
Pressure = KalmanFilter(&FilterPressure, NewPressure);
ADC = KalmanFilter(&FilterADC, NewADC);
Кстати, полезно. Хотел как-то сделать подсветку, которая меняет свой цвет в зависимости от угла наклона, начал делать на mpu6050, но значения даже с Калманом получались довольно нестабильные. И вот не знаю то ли я рукожоп, то ли фильтр действительно не идеален