2011-02-22 213 views
0

我想用Fourier变换做一些工作,但我仍然很困惑。傅立叶变换帮助

我给出的信号(在这种情况下,它为f [T] = SIN(2πST/N),其中s = 8和N = 128)

而我假设找到真实,虚构,相位和幅度。

我知道如何获得真正的和虚的,但相位和幅度都超出了我......

用于获取现实与想象的须藤代码:

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

嗯属于http://math.stackexchange.com/ – mcabral 2011-02-22 23:15:30

回答

3

如果您认为实部和虚部作为XY平面中的坐标,那么相位就是矢量和X +轴之间的角度,幅度就是矢量的长度。 为了计算,那么你只需要

magnitude = sqrt(real*real + imag*imag) 
phase = atan2(imag, real) 
+0

就在!感谢你能这么快回复!现在我觉得哑巴我没有看到... – 2011-02-22 23:33:18

3

http://en.wikipedia.org/wiki/Complex_number#Absolute_value_and_argument

  • 幅度是sqrt(real^2 + imag^2)(其中^表示 “平方”)。
  • 阶段是atan2(imag, real)(其中atan2()表示双参数arctan函数)。

维基百科条款解释为什么比我能在这里做正义更好。

+0

是不是'ATAN2(IMAG,真)'? – 6502 2011-02-22 23:18:27

+0

@ 6502:是的,已经改正! – 2011-02-22 23:18:48

+0

+1感谢您的链接。傅立叶变换的wiki没有(据我所知)任何信息。 – 2011-02-22 23:36:04