gpt4 book ai didi

r - 为什么我通过 R 中的 FFT 从一个简单的正弦函数中得到两个频率尖峰?

转载 作者:行者123 更新时间:2023-12-04 10:27:54 27 4
gpt4 key购买 nike

我在数学课上学到了傅立叶变换,并认为我已经理解了它们。现在,我正在尝试使用 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))

并得到这个情节:

energy density spectrum of sin(2*pi*(x)) from 0 to 1 with a 0.1 step

如果我理解正确,这代表了能量密度谱的“一半”。由于变换是对称的,我可以将所有值镜像到 x 的负值以获得全谱。

但是,我不明白的是,为什么我会得到两个尖峰?这里只有一个正弦频率。这是混叠效果吗?

另外,我不知道如何从该图中获取频率。让我们假设正弦函数的单位是秒,那么密度谱中 1.0 处的峰值是 1Hz 吗?

再说一遍:我理解 FFT 背后的理论;实际应用是问题:)。

谢谢你的帮助!

最佳答案

对于 N 点的纯实输入信号,您会得到 N 点的复数输出,并具有关于 N/2 的复共轭对称性。您可以忽略 N/2 以上的输出点,因为它们没有为实际输入信号提供有用的附加信息,但是如果您绘制它们,您将看到上述对称性,对于单个正弦波,您将看到 bin n 处的峰值和 N - n 。 (注意:您可以将上面的 N/2 个 bin 视为表示负频率。)总而言之,对于 N 点的实际输入信号,您可以从 FFT 中获得 N/2 个有用的复数输出 bin,它们表示来自 DC 的频率( 0 Hz) 到奈奎斯特 (Fs/2)。

关于r - 为什么我通过 R 中的 FFT 从一个简单的正弦函数中得到两个频率尖峰?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10549192/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com