← Назад RaCEboards - электроника для твоего проекта
Далее → Шестой урок: работа с I2C - подключение барометра
В данной статье приводится примеры программных фильтров для сглаживания (фильтрации) данных.
Содержание
Шум можно условно разделить на два типа: постоянный шум датчика с одинаковым отклонением:
Постоянный шум с одинаковым отклонением
И случайный шум, который возникает при различных случайных (чаще всего внешних) обстоятельствах:
Случайный шум
Небольшой шум наблюдается у любого аналогового датчика, который опрашивается средствами микроконтроллером RaCEBoards. Сам микроконтроллер (любой, не только RaCEBoards) практически не шумит, если обеспечить качественное питание платы и отсутствие электромагнитных помех.
Однако как только питание становится некачественным, например, от дешевого блока питания, картина меняется.
Если блок питания работает без нагрузки и обеспечивает хорошее питание, шума нет. Но как только появляется нагрузка, начинают проявляться шумы, связанные с устройством блока питания и отсутствием нормальных выходных фильтров.
Шумы также могут возникнуть, если рядом с датчиком присутствует мощный источник электромагнитного излучения (например катушка).
От шума можно избавляться аппаратно, добавив фильтры по питанию и экранировав все аналоговые провода, однако это не всегда возможно (и зачастую достаточно трудоёмко). Поэтому чаще всего фильтрацию данных осуществляют программно.
Далее будут приведены примеры фильтров, реализованных на языке Python для дальнейшего использования их в коде. Примеры даны в виде функций, аргументом которой является новое значение с датчика. Каждый пример реализован для данных о высоте над уровнем моря с барометра.