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

Опитвам се да намеря максимална стойност на амплитудата от PCM буфера.

Въпросите ми са-

1) Открих, че за да намеря тази стойност в DB, ​​формулата е: 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)


Формулата, която използвате, е правилна. Имайте предвид, че dB е перцептуално измерване, което сравнява интензитет с референтно ниво, което сте задали. Следователно има смисъл то винаги да е отрицателно, тъй като вашето референтно ниво, използвано във формулата, е максималното PCM ниво. С други думи, вашият dB винаги ще бъде по-нисък (отрицателен) от максималното ниво (0 dB).

По отношение на стойностите, които получавате, съвсем нормално е да получите максимална амплитуда. Ако това е комерсиална песен, обичайна практика за мастериране е да се усили сигнала възможно най-много. Ако това е запис, който сте направили, това може да е свързано с чувствителността на микрофона и звуците, които записвате.

И накрая, само за да бъде ясно, това няма нищо общо с нивата на звуково налягане, при които звукът ще се получи при възпроизвеждане, тъй като гледате само разликите в амплитудата на записан звук.

person jimijazz    schedule 02.10.2014