FFT和分贝秤

时间:2013-02-14 18:07:59

标签: ios signal-processing fft

如果我在iPhone(即真实)数据上获取音频数据,请执行FFT然后取大小(Re ^ 2 + Im ^ 2)。

这些从> 0到一些大数字不等,所以我10log(n)以dB为单位。

这使得输出为负(对于<1的输入)为正。

但是我在这方面看到的例子(以及在Sonic Visualiser中绘制光谱)在以dB为单位测量时总是具有正谱。

那么我错过了什么?!

从更广泛的角度来看,据我所知它的分贝是一个比率,因此在这种情况下,当将FFT幅度转换为dB时,它们的比率是多少?

2 个答案:

答案 0 :(得分:4)

简单的答案是,在大多数情况下,可以在dB值中添加任意数字,以使值全部为正数,或者全部为负值,或者您喜欢的任何值。使用未经校准的麦克风,就像在iPhone上一样,无论如何这都是有意义的,因为你所知道的只是相对价值。

对于更高级的技术方法,使用校准麦克风,您可以使用dB(SPL)作为合理标准参考所有内容,但这很麻烦,无论如何都没有意义。

理由:
移动任意数量的主要原因是日志不报告度量单位。例如,即使您知道输入幅度为0.1帕斯卡,也可以说这是100毫帕斯卡是完全有效的,您将记录100而不是0.1(因此日志值为2或-1)。两者都是完全有效的,选择完全是任意的。与标准参考值比较时,如dB SPL,请注意它是以比率log(P / P ref )完成,消除了更改单位的影响。

答案 1 :(得分:0)

由于FFT是线性算子,因此FFT输出的比例与输入FFT的数据的比例有关。 iPhone上FFT输入的比例取决于麦克风的增益,音频滤波器,可能是AGC和DAC参考。由于后者都是未记录的并且可以变化(通过麦克风的位置,设备的型号,可能取决于音频会话配置的输入增益等),除非您执行某种校准,否则您将不知道该比率一个已知的参考。