По умолчанию для уровня звука 0 дБ в качестве абсолютного значения с плавающей точкой - PullRequest
0 голосов
/ 10 октября 2011

Я сейчас создаю что-то вроде крошечного программного синтезатора звука в Windows 7 на С ++. Основной двигатель работает, и после получения событий midi он воспроизводит ноты, изменяет программы и т. Д. В настоящий момент меня удивляет то, куда поставить эталонный уровень звукового давления 0 дБ выходных каналов.

Допустим, синтезатор создает синусоидальную волну с частотой 440 Гц с амплитудой | 0.5f | , Чтобы рассчитать уровень звука в дБ, мне нужно установить опорный уровень (0 дБ). Кто-нибудь знает что-то вроде по умолчанию для этого?

Ответы [ 2 ]

3 голосов
/ 10 октября 2011

Когда речь идет о децибелах относительно полной шкалы, AKA dBFS, ноль дБ назначается максимально возможному цифровому уровню.Цитата из Wiki:

0 дБFS соответствует максимально возможному цифровому уровню. [1]например, сигнал, который достигает 50% максимального уровня в любой точке, достигнет пика в -6 дБFS, то есть на 6 дБ ниже полной шкалы.Все пиковые измерения будут отрицательными числами, если они не достигнут максимального цифрового значения.

1 голос
/ 10 октября 2011

Во-первых, вы должны быть уверены в единицах. dB само по себе является отношением , а не абсолютным значением. Как предположил @Roman R., вы можете просто использовать 0 дБ для обозначения «полной шкалы», и тогда ваш диапазон будет от 0 дБ (макс.) До некоторого отрицательного значения в дБ, которое соответствует минимальному значению, которое вас интересует (например, -120 дБ). Однако это просто произвольное измерение, которое ничего не говорит вам об абсолютной величине сигнала.

В вашем вопросе вы ссылаетесь на dB SPL (SPL = уровень звукового давления), который равен абсолютной единице. Уровень звукового давления 0 дБ обычно определяется как 20 мкПа (RMS), что составляет около порога человеческого слуха, и в этом случае интересующий диапазон может составлять от -20 дБ УЗД до +120 дБ УЗД. Однако, если вы действительно хотите измерять дБ УЗД, а не просто произвольное значение дБ, вам необходимо откалибровать вашу систему, чтобы учесть усиление микрофона, частотную характеристику микрофона, чувствительность / усиление A-D и другие факторы. Это нетривиально, но необходимо, если вы действительно хотите внедрить какую-то систему измерения SPL.

...