Классическая формула RMS: берем отсчеты (относительно нуля, то есть
оффсет АЦП заранее вычитаем), каждый отсчет возводим в квадрат и
прибавляем к аккумулятору. После n отсчетов накопленную сумму делим
на n, из результата извлекаем квадратный корень. Результат будет
верным для любой формы входного сигнала. Если частота известна, n
нужно выбирать так, чтобы за период сигнала укладывалось целое
число отсчетов, тогда биения и связанные с ними пульсации
результата будут отсутствовать. Такой способ дает ступенчатый отклик на резкий скачок, поскольку данные на выходе обновляются 1 раз за n отсчетов. Если нужна гладкая функция на выходе, вместо простого прибавления к аккумулятору используем алгоритм скользящего среднего (понадобится буфер на n отсчетов, и корень придется извлекать каждый раз). Реакция на скачок будет запаздывать примерно на n/2f, где f - частота дискретизации сигнала.