PCM缓冲器的最大振幅 - 音频Android

时间:2014-08-26 16:11:05

标签: android media android-mediaplayer audiorecord

我试图从PCM缓冲区中找到最大振幅值。

我的问题是 -

1)我发现要在DB中找到该值,公式为:amplDB = 20log(abs(ampl)/ 32767)。现在假设放大器在-32768到32767的范围内,log((abs)幅度/ 32767)的值总是负的。这个公式是正确的吗?我应该否定AmplDB的价值吗?

2)我的价值观非常高涨。对于普通歌曲,最大振幅值也是32767,这似乎不正确。一首歌的通常振幅值是什么?

3)我发现另一个公式amplDb = ampl / 2700。这是什么2700?

4)还有其他方法可以计算振幅值吗?

由于

1 个答案:

答案 0 :(得分:0)

您使用的公式是正确的。请记住,dB是一种感知测量,可将强度与您设置的参考水平进行比较。因此,它总是负的,因为在公式中使用的参考电平是最大PCM电平。换句话说,你的dB总是低于(负),而不是你的最高等级(0 dB)。

关于您获得的值,获得最大幅度是很正常的。如果它是商业歌曲,常见的母带制作实践是尽可能地增强信号。如果是您录制的录音,则可能与麦克风的灵敏度和您正在录制的声音有关。

最后,为了清楚起见,这与播放时声音发生的声压级无关,因为您只是查看录制声音的振幅差异。