Страницу назад в DSP об этом было... Еще раз повторю (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 17 июня 2003 г. 22:50
В ответ на: Вопрос: А как понять"...домножение на (1/<сумма квадратов коэфф. окна>, " отправлено SAG 17 июня 2003 г. 22:10

берется N выборок. N всегда фиксировано и выбрано изначально. Далее рассчитывается (например в матлабе) окно. Они разные бывают, например хемминга, блэкмен-харриса и т.п. Получается массив W[] Далее возводится каждый коэффициент в квадрат. Получаем массив, содержащий выборки оконной функции, возведенные в квадрат. Это будет хранится в памяти процессора, но приведенное к формату Q15 например. Еще надо посчитать в том-же матлабе сумму всех элементов массива W и получить обратную величину к ней. Тоже привести к Q15 (опять-же к примеру, форматы чисел на свое усмотрение) - тоже пригодится.

Теперь в процессоре считаем (x[] - это N выборок сигнала

  
+- -+
| N-1 N-1 |
RMS = sqrt | (1/(sum(w[n]*w[n]) * sum (w[n]*w[n]*x[n]*x[n]) |
| n=0 n=0 |
+- -+

Первая половина - обратная величина к сумме квадратов окна - посчитана предварительно, и есть просто нормирующий множитель, на который нужно домножить результат второй суммы. Вторая сумма - есть сумма произведений двух величин: квадрата окна (посчитано заранее) и квадрата сигнала. Вот в общем и все. Главное тут не запутаться в форматах чисел c фиксированной точкой (Q15, Q16, Q31 и т.п.) и правилах их перемножения.

Ну и на последок - если N достаточно большое, и обрезки неполных на краях окна не внесут ощутимой погрешности, то можно взять прямоугольное окно - это ликвидирует одно умножение (на 1-цу множить нет смысла :)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru