【发布时间】:2012-05-11 09:55:36
【问题描述】:
我在数学课上学习了傅立叶变换,并认为我已经理解了它们。现在,我正在尝试使用 R(统计语言)并在实践中解释离散 FFT 的结果。这就是我所做的:
x = seq(0,1,by=0.1)
y = sin(2*pi*(x))
calcenergy <- function(x) Im(x) * Im(x) + Re(x) * Re(x)
fy <- fft(y)
plot(x, calcenergy(fy))
得到这个情节:
如果我理解正确,这代表能量密度谱的“一半”。由于变换是对称的,我可以将所有值镜像到 x 的负值以获得完整的光谱。
但是,我不明白的是,为什么我会得到两个尖峰?这里只有一个正弦频率。这是混叠效应吗?
另外,我不知道如何从这个图中得到频率。假设 sinus 函数的单位是秒,那么密度谱中 1.0 处的峰值是 1Hz 吗?
再次:我了解 FFT 背后的理论;实际应用是问题:)。
感谢您的帮助!
【问题讨论】:
-
切线,
calcenergy可以写成function(x) abs(x)^2。 (这样会更有效率)。 -
@dbaupp 哦,谢谢。我知道有一些内置的方法可以做到这一点,但我懒得去寻找它:)
标签: r signal-processing fft