Застосування A-зважування


11

Я хочу обчислити гучність даного сигналу, і я натрапив на цю нитку . Я трохи збентежений щодо А-вагового аспекту цього. Я не можу розміщувати зображення, але я думаю, що цей сайт має формулу, яка мені потрібна. (Wa = 10лог ...)

Що я не розумію - це як насправді використовувати його у своїй програмі. Якщо fстоїть частота, то, імовірно, я можу жорстко кодувати значення, оскільки вони залишаться постійними. Якщо це так, як я застосувати Waдо моїх значень вибірки та які значення я використовую? Чи обчислюю я спектр потужності, щоб отримати WINDOW_SIZE/2значення та помножувати кожне значення в діапазоні частот на відповідне попередньо обчислене Waзначення чи це неправильний спосіб зробити це? Спасибі заздалегідь.

Відповіді:


8

Так, ви можете твердо кодувати значення, зробити FFT свого сигналу і помножити на твердо кодовані значення, а потім отримати амплітуду в частотній області з теореми Парсевала ( приклад ).

Ви також можете застосувати цифровий фільтр і зробити це у часовій області. Ось код Matlab та мій переклад на Python .

Зауважте, що білінеарне перетворення змушує цифровий фільтр згортатися швидше, ніж аналоговий фільтр, вводячи помилки вимірювань при загальній частоті вибірки. Просте виправлення полягає в тому, щоб спочатку взяти вибірку даних, щоб розбіжність була мінімізована. Інші підходи до дизайну фільтрів тут: http://dsp.stackexchange.com/q/36077/29


Дякую, я розумію це трохи краще. У вашому прикладі Parseval, чи є rms_flat рівняння RMS (SQRT(x1^2 + x2^2...xn^2/n))і в чому різниця між rms_flat сигналу та rms_flat FFT?
TryNCode

@ExpAns: Так, rms_flat()просто sqrt(mean(absolute(a)**2)). /nЗнаходиться на зовнішній стороні. Значення RMS сигналу та FFT однакові, за винятком коефіцієнта масштабування.
ендоліт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.