公式使用FFT幅度

时间:2014-01-08 11:45:39

标签: audio real-time signal-processing fft amplitude

我想问下波幅的公式。我正在使用Fast Fourier Transform。所以它返回真实和复杂的数字。 之后我必须搜索每个频率的幅度。

我的公式是

amplitude = 10 * log (real*real + imagined*imagined)

我想问一下这个公式。它的来源是什么?我一直在搜索,但我找不到任何来源。谁能告诉我这个消息来源?

2 个答案:

答案 0 :(得分:2)

这是两个方程式的组合:

1:找到magnitude of a complex number(特定区间的FFT结果) - 其等式为 m = sqrt(r^2 + i ^2)

2:来自幅度值的Calculating relative power in decibels - 其等式为p =10 * log10(A^2/Aref^2) == 20 log10(A/Aref),其中Aref是某个参考值。

通过m将等式1中的a插入等式2中的ARef = 1,我们得到:

p = 10 log(r^2 + i ^ 2)

请注意,这可以衡量相对信号功率而非振幅。

答案 1 :(得分:0)

公式的第一部分可能来自Decibel的definition,参考P0设置为1,假设log表示基数为10的对数。

第二部分,即上面链接中的P1=real^2 + imagined^2,是您正在考虑的cn频率的傅里叶系数n-的模数的平方。

傅立叶系数通常是一个复数(在DFT here的情况下见其定义),P1定义为其模数的平方。你提到的FFT只是计算DFT的一种方法。在您的情况下,您所引用的实数和复数实际上可能是该系数cn的实部和虚部。

  • sqrt(P1)cn频率信号的傅立叶系数 n-的模数。
  • sqrt(P1)/N,是n-频率信号的傅里叶分量的幅度(即该频率信号的谐波分量的幅度) ,N是信号中的样本数。要说服自己需要除以N,请参阅this等式。但是,除法因子取决于您使用的傅立叶变换的定义/约定,请参阅上面的注释here和讨论here