我想在傅里叶变换方面做一些工作,我仍然很困惑。
我有一个信号(在这种情况下,它是f [t] = sin(2 pi s t / N),其中s = 8且N = 128)
我想要找到真实,想象,相位和数量。
我理解如何获得真实和想象,但相位和幅度超出了我...
获取Real和Imaginary的sudo代码是:
for u = 0 to M-1 do
F[u].real = 0
F[u].imag = 0
for x = 0 to M-1 do
F[u].real += f[x] * cos(- 2 * pi * u * x / M)
F[u].imag += f[x] * sin(- 2 * pi * u * x / M)
end do
F[u].real /= M
F[u].imag /= M
end do
现在某处有相位和幅度,但在哪里?!
谢谢!
此外,一些程序员 - 相当于对FT的基础知识的探索也会很棒!
答案 0 :(得分:3)
来自http://en.wikipedia.org/wiki/Complex_number#Absolute_value_and_argument:
sqrt(real^2 + imag^2)
(其中^
表示“平方”)。atan2(imag, real)
(其中atan2()
表示双参数arctan函数)。维基百科的文章解释为什么比我在这里做得更好。
答案 1 :(得分:3)
如果您将实部和虚部作为XY平面中的坐标,则相位是矢量和X +轴之间的角度,幅度是矢量的长度。 要计算,那么你只需要
magnitude = sqrt(real*real + imag*imag)
phase = atan2(imag, real)