【发布时间】:2013-01-30 15:14:19
【问题描述】:
如果我在 iPhone 上获取音频数据(即真实数据),请执行 FFT,然后获取幅度 (Re^2 + Im^2)。
这些数值从 >0 到一些较大的数字不等,因此我使用 10log(n) 以 dB 为单位。
这给了我从负数(对于
但是我看到的例子(以及在 Sonic Visualiser 中绘制频谱)在以 dB 为单位测量时总是具有正频谱。
那么我错过了什么?!
在更广泛的意义上,据我所知,分贝是一个比率,所以在这种情况下,将 FFT 幅度转换为 dB 时,它们与什么比率?
【问题讨论】:
-
总之,你是对的;这是一个比率。您必须建立一个“参考水平”,如Wikipedia article 中所述。例如,对于光盘,零分贝被认为是可能的最高量级,因此所有其他值都是负数,低至约 -92 分贝。
-
这不是 stackoverflow.com/questions/2445756/ 的骗子,我专门询问 FFT 箱的输出。这是用麦克风测量声级的一般问题。
-
可以,但是原理是一样的;那里提供的答案解释了如何建立“参考水平”。
-
我也阅读了关于此的维基百科文章,其中说音频的参考电平定义为 1dB = 20 微帕斯卡。所以大概对于音频你会去
10log(20/val)哪里val是帕斯卡的测量值?我在任何地方都找不到 FFT 的参考电平是多少,或者为什么当其他来源的频谱始终为正时,我会得到负数和正数的混合。我可能错过了一个非常简单的答案!
标签: ios signal-processing fft