
Поговорим о различных методах сравнения данных. В программировании микроконтроллеров часто необходимо усреднять значения датчиков для более точных и постоянных показаний. С помощью усреднения мы убираем кратковременные выбросы значений датчиков, что дает нам более или менее ровные показания.
В данной статье рассмотрим 3 способа усреднений. Таких как:
- среднее арифметическое усреднение;
- среднее квадратическое усреднение;
- скользящее среднее.
Для начала нам нужны данные которые мы будем усреднять. Для этого возьмем массив из 1000 рандомно сгенерированных значений от 0 до 1000. Все построения будем отображать на графике.

Cреднее арифметическое усреднение
Данный тип усреднения, является самым простым из рассматриваемых. Общая формула:
где, n — количество усредняемых значений. Хоть это и считается усреднением, но данный метод очень сильно реагирует, если возникают большие выбросы, что на практике не всегда хорошо.


Как мы видим варьируя n (количество выборок) мы можем добиться нужного нам усреднения.
Cреднее квадратическое усреднение
Данный метод похож на среднее арифметическое, за одним отличием, усредняются не сами данные, а их квадраты.
где, n — количество усредняемых значений.


Скользящее среднее
где — n количество значений для усреднения, pt — значения в точке t. SMAt — значение простого скользящего среднего.
Минусом данного метода является первоначальное накопление данных, равное количеству n.


Из графика n=50 видно, как происходит нарастание данных. Чем выше n, тем сильнее будет сглаживание данных.
Исходный код программки на C# можно скачать по ссылке.