Формула для вычисления :
Y[i] = Y[i-1]+(X[i] - Y[i-1])*A
X - входное значение
Н - выходное
А - коэфф. сглаживания
написано ято его можно приобщить к количеству выборок:
А = 2/(N+1)
Я взял количество выборок равное 15.
unsigned int average_value;
unsigned int average_value_old = 0;
void Exponential_Sliding_Average(unsigned int measuring_value)
{
average_value = average_value_old + ((measuring_value - average_value_old) >> 3); // вычисляем значение "среднего" для текущего шага
average_value_old = average_value; // обновляем значение старого "среднего" для следующего щага
}