Цитата(Alexey Lukin @ Apr 19 2012, 10:41)

В таких случаях можно вычислять RMS не с прямоугольным окном, а с экспоненциальным, по рекурсивной формуле RMS[t] = (1 - alpha) * RMS[t-1] + alpha * x2[t].
alpha подбирается для достижения нужного времени интеграции (1 с).
Строго говоря, самих RMS - не один-единственный вариант в отношении "Mean" (способа усреднения), а несколько, то есть надо смотреть по условиям задачи.
Во-первых, есть средний квадрат за интервал времени наблюдения, то есть с "прямоугольным" окном переменной длины, равной всему интервалу наблюдения - от начала до текущего момента. Такой способ методически наиболее точен для определения характеристик стационарных стохастических величин. Компактную реализацию этого метода тут уже приводили - в 3 посте: MS[n] = MS[n-1]*((n-1)/n) + (x^2)/n, или, более явно, MS[n] = MS[n-1] + (x^2 - MS[n-1])/n, RMS[n] = SQRT(MS[n]/n), однако нужно иметь в виду, что она (как и БИХ фильтрация, см. ниже) критична к вычислительным погрешностям, то есть при вычислениях нужен запас по разрядности, порядка 1.5*Log2(n).
Самая быстрая (и точная) реализация этого алгоритма - с "пост-масштабированием", когда по ходу дела просто накапливается сумма квадратов (естественно, с соответствующей разрядностью накопителя, во избежание переполнения), и только потом, когда данные уже собраны, накопленное делится на n, после чего извлекается корень.
Во-вторых, есть скользящее среднее - т.е. с прямоугольным окном фиксированной длины, этот метод часто применяется для подавления периодической помехи и ее гармоник (пример - вычисление RMS для частоты 50 Гц, как правило, эффективнее всего выполнять за интервал 20 мс). Для реализации нужен циклический буфер на длину окна (с разрядностью для квадрата, если нет желания дважды его вычислять).
В-третьих, можно явно сформировать КИХ весовую функцию, применив алгоритм КИХ фильтрации (в любой форме) к квадратам мгновенных значений.
Ну и в-четвертых, можно применить не КИХ, а БИХ-фильтрацию к "мгновенным" значениям квадрата, формой "окна" при этом будет служить импульсная характеристика БИХ фильтра. Тогда число хранимых величин определяется порядком фильтра. (Выше как раз фактически использован простейший БИХ первого порядка).
Обычно это самый эффективный в вычислительном отношении алгоритм (или сразу после п.1., если БИХ более высокого порядка).
Естественно, все суммы нормируются в соответствии с фактическим или эквивалентным числом отсчетов, точнее, с учетом "площади" (интеграла) весовой функции.