gpt4 book ai didi

python - numpy 傅里叶变换产生意想不到的结果

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:19 25 4
gpt4 key购买 nike

我目前正在学习傅里叶变换并使用 Python 来玩弄它。

我这里有一段代码:

x = np.arange(0,50,0.1)
T = 5
y = np.sin(T*np.pi*x)
freq = np.fft.rfftfreq(x.size)
y_ft = np.fft.rfft(y)
plt.plot(freq, np.abs(y_ft))

它生成如下正确的图表:

enter image description here

但是当我把T改成10的时候,图表是这样的: enter image description here

我原以为我会得到一个类似于第一个峰值右移的图表,因为我只是延长了周期时间。

为什么增加周期时间会产生如此意想不到的结果?

最佳答案

您正在有效地对信号进行采样。使用您的代码,您采样的频率为 1/0.1 或 10 弧度/秒。你的第一个正弦波的频率就在 Nyquist frequency 上(5 弧度/秒)。你的第二个正弦波的频率超出了奈奎斯特,因此你的信号没有被正确采样。解决方案:增加采样频率(例如 x = np.arange(0, 50, 0.01))。

看看你的 T=10 信号在绘制时的样子(你可以看到它不像采样点处的单个正弦曲线):

enter image description here

关于python - numpy 傅里叶变换产生意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31601865/

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