Сравнение методов усреднения данных

Данные без фильтрации

Поговорим о различных методах сравнения данных. В программировании микроконтроллеров часто необходимо усреднять значения датчиков для более точных и постоянных показаний. С помощью усреднения мы убираем кратковременные выбросы значений датчиков, что дает нам более или менее ровные показания.

В данной статье рассмотрим 3 способа усреднений. Таких как:

  • среднее арифметическое усреднение;
  • среднее квадратическое усреднение;
  • скользящее среднее.

Для начала нам нужны данные которые мы будем усреднять. Для этого возьмем массив из 1000 рандомно сгенерированных значений от 0 до 1000. Все построения будем отображать на графике.

Данные без фильтрации
Рисунок 1. Данные без фильтрации

Cреднее арифметическое усреднение

Данный тип усреднения, является самым простым из рассматриваемых. Общая формула:

\[ \overline{x}=\frac{1}{n}\displaystyle\sum_{i=1}^{n} x_i=\frac{1}{n}(x_1+…+x_n) \]

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

Среднее арифметическое при n=16
Рисунок 2. Среднее арифметическое при n=16
Среднее арифметическое при n=3
Рисунок 3. Среднее арифметическое при n=3

Как мы видим варьируя n (количество выборок) мы можем добиться нужного нам усреднения.

Cреднее квадратическое усреднение

Данный метод похож на среднее арифметическое, за одним отличием, усредняются не сами данные, а их квадраты.

\[ s=\sqrt{\frac{a_1^2+a_2^2+…a_n^2}{n}} \]

где, n — количество усредняемых значений.

Среднее квадратичное при n=16
Рисунок 4. Среднее квадратичное при n=16
Среднее квадратичное при n=3
Рисунок 5. Среднее квадратичное при n=3

Скользящее среднее

\[ SMA_t=\frac{1}{n}\displaystyle\sum_{i=0}^{n-1} p_{t-i}=\frac{p_t+p_{t-1}+…+p_{t-i}+…+p_{t-n+2}+p_{t-n+1}}{n} \]

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

Минусом данного метода является первоначальное накопление данных, равное количеству n.

Скользящее среднее при n=16
Рисунок 6. Скользящее среднее при n=16
Скользящее среднее при n=50
Рисунок 7. Скользящее среднее при n=50

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

Исходный код программки на C# можно скачать по ссылке.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии