Android:如何将getMaxAmplitude转换为db?

时间:2012-11-29 15:28:50

标签: android decibel amplitude

我有一段代码可以从麦克风中获取音频的getMaxAmplitude()。 它有效,但价值肯定很奇怪。 我需要将其转换为分贝。 我怎么能够? 我发现了这个公式:double db = 20 * Math.log10(recorder.getMaxAmplitude()/ 2700.0);但我不知道这是否正确。 感谢。

1 个答案:

答案 0 :(得分:0)

公式是正确的,但2700.0我不知道,因为: 假设这种情况: 我们有16位深度的声音。这意味着我们可以使用2 ^ 16(" 2到16次幂")不同的振幅值,或65,536步。由于步数分为正值和负值(我们的波峰和波谷),这意味着它分为32,767个正(加零)和32,768个负值。 然后:

db = 20 * log10(peaks/ 32767);

" 2700.0" rappresents信号的最大振幅值,但我不知道位深度。 问候。