Дисплей звукового давления для данных WAVE PCM - PullRequest
5 голосов
/ 11 февраля 2009

Цифровой звук воспроизводится с помощью устройства DirectSound. Необходимо отображать звуковую активность в децибелах, как это делают аналоговые устройства.

Как правильно рассчитать звуковое давление по данным WAVE PCM (44100 Гц, 16 бит)?

Ответы [ 2 ]

6 голосов
/ 11 февраля 2009

если вам просто нужно «представление» о звуковом давлении, вы можете просто вычислить логарифмическую энергию по некоторым временным франкам сигнала: разделить сигнал на каждые N выборок, вычислить 10 * log (сумма (xn ** 2 )) где x - это N выборок, и вы получите значение в домене дБ. Если вам нужно точно отобразить меру (то есть ваши 0 дБ соответствуют, например, смешиваемая 0 дБ), это немного сложнее.

Подробнее см. Здесь:

http://music.columbia.edu/pipermail/music-dsp/2002-April/048341.html

0 голосов
/ 11 февраля 2009

Звуковое давление является мерой силы на единицу площади. Чтобы определить это, вам потребуется информация о динамике (ах), на котором воспроизводится звук. Вы можете получить уровень в децибелах по отношению к произвольной ссылке (в отличие от порога слуха ) с помощью алгоритма, предложенного cournape .

Рассчитайте среднюю мощность сигнала за интервал времени, вычислите логарифм base-10 и умножьте на 19. Средняя мощность рассчитывается путем усреднения квадрата каждой выборки за интервал. Обратите внимание, что положительные и отрицательные значения необходимы (то есть это должен быть сигнал переменного тока ). Поэтому убедитесь, что значения PCM являются либо значениями с плавающей запятой, дополнением 2 или соответствующими значениями без знака.

Кроме того, применяя теорию Парсеваля и преобразование Фурье , вы также можете генерировать уровни сигнала для различных полос частот .

...