如何从最大振幅计算分贝,我编写了一款Android应用程序以在定期间隔获取最大振幅,我需要以分贝的形式向用户显示输出。
分贝是一个相对单位,它表示你的信号功率与某个参考功率之间的关系。
如果你在处理幅度,那么公式为:
power_db = 20 * log10(amp / amp_ref);
(参见http://en.wikipedia.org/wiki/Decibel#Field_quantities)。
还要注意的是,最大振幅通常不是响度(甚至不是功率)的很好指标。更典型的做法是测量信号的有效功率RMS 功率,然后将其转换为 dB。
普通手机麦克风没有进行绝对响度校准的功能,因此如果没有同时使用声音仪器来进行初始校准,就不可能测量绝对响度。正如Oli所提到的,您可能能够计算相对于原始响度的变化,但我想您希望复制一个真实的声级计。