Цитата
собственно, у меня идея такая: пропустить через выпрямитель этот сигнал, пропустить через фильтр и подать на вход АЦП
А вы точно знаете коэффициент передачи аналоговой части вашей схемы и он не "уйдет" за время работы? Иначе вы получите смещенную неверную оценку.
Цитата
и зачем такая большая частота дискретизации?
Это одна из стандартных частот сэмплирования звука. 44,1 48 и 96, если мне не изменяет память. Может еще какие-то есть. Вам предлагают не смотреть в сторону АЦП, работающих на повышенных частотах сэмплирования. Берите 44,1 - она самая распространённая. Можно стандартный аудио-вход от микрофона с такой АЦП-кой. Для готовых железок передаточные характеристики трактов перед АЦП наверняка документированы, так что их можно скомпенсировать при рассчёте.
Потом, вам нужно среднее значение амплитуды или именно сигнала? Если сигнала, то вы будете мерить уровень постоянки. Если амплитуды - вам нужно сначала взять модуль сигнала, а потом измерять среднее. Если нужна мощность, то после модуля нужно возвести в квадрат, а потом считать среднее. Самый простой способ усреднения - экспоненциальное взвешивание:
mean(k) = s(k)/N + mean(k-1) - mean(k-1)/N,
где N - порядок фильтра. Такое решение не потребует большого количества памяти для накопления N отсчётов, как в случае с обычным скользящим средним. За N отсчётов сходится к результату скользящего среднего. В итоге на выходе фильтра будете постоянно иметь среднее по сигналу/амплитуде/мощности (в зависимости от того, что подадите на вход). Измерение будет иметь задержку, вносимую фильтром в пределах до
(N/44.1кГц) мс. N определяет также и точность, возьмите например 1024. Если сигнал сильно шумит, можно увеличить до 16384 или 32768. Степень двойки позволит заменить деление на битовую операцию смещения.
ЗЫ: а, ну и коэффициент передачи аналоговой части. Допустим есть коэффициент передачи по напряжению, К. Если считаете уровент постоянки, то (скорее всего вы её не вносите аналоговой частью) можно ничего не изменять, а просто отдать на выход алгоритма. Если измеряете среднюю амплитуду, то нужно выход алгоритма поделить на К, если мощность - на квадрат К.
Сообщение отредактировал serjj - Jun 1 2015, 14:02