Zak*_*Zak 5 android amplitude decibel
我有一段代码可以给我麦克风的音频的getMaxAmplitude()。它有效,但是值肯定很奇怪。我需要将其转换为分贝。我怎么能够?我发现这个公式:double db = 20 * Math.log10(recorder.getMaxAmplitude()/ 2700.0); 但我不知道这是否正确。谢谢。
公式是正确的,但 2700.0 我不知道,因为: 假设这种情况:我们有一个 16 位深度的声音。这意味着我们将有 2^16(“2 的 16 次方”)可用的不同幅度值,或 65,536 个步长。由于步数分为正值和负值(之前的波峰和波谷),这意味着它分为 32,767 个正值(加零)和 32,768 个负值。然后:
db = 20 * log10(peaks/ 32767);
Run Code Online (Sandbox Code Playgroud)
“2700.0”表示信号的最大幅度值,但我不知道在哪个位深度。问候。
| 归档时间: |
|
| 查看次数: |
4090 次 |
| 最近记录: |