Максимальная амплитуда из буферов PCM - Audio Android

Я пытаюсь найти максимальное значение амплитуды из буфера PCM.

Мои вопросы-

1) Я обнаружил, что для поиска этого значения в БД формула: amplDB=20log(abs(ampl)/32767). Теперь, учитывая, что ampl находится в диапазоне от -32768 до 32767, значение log((abs)ampl/32767) всегда будет отрицательным. Так верна ли эта формула? Должен ли я просто отрицать значение amplDB?

2) Мои ценности очень высоки. Для обычной песни максимальное значение амплитуды равно 32767, что кажется неверным. Каковы обычные значения амплитуды песни?

3) Я нашел другую формулу amplDb=ampl/2700. Для чего это 2700?

4) Есть ли другой способ рассчитать значение амплитуды?

Спасибо


person hello_hi    schedule 26.08.2014    source источник


Ответы (1)


Формула, которую вы используете, верна. Имейте в виду, что дБ — это измерение восприятия, которое сравнивает интенсивность с установленным вами эталонным уровнем. Следовательно, имеет смысл, что он всегда отрицательный, поскольку ваш опорный уровень, используемый в формуле, является максимальным уровнем PCM. Другими словами, ваш дБ всегда будет ниже (отрицательный), чем ваш максимальный уровень (0 дБ).

Что касается значений, которые вы получаете, вполне нормально получить максимальную амплитуду. Если это коммерческая песня, обычная практика мастеринга заключается в максимальном усилении сигнала. Если это ваша запись, это может быть связано с чувствительностью микрофона и звуками, которые вы записываете.

Наконец, просто для ясности: это не имеет ничего общего с уровнями звукового давления, при которых звук будет воспроизводиться при воспроизведении, поскольку вы смотрите только на различия в амплитуде записанного звука.

person jimijazz    schedule 02.10.2014