如何使用Numpy和Python正确绘制cos(2x)的傅里叶变换

6ss1mwsb  于 2023-10-19  发布在  Python
关注(0)|答案(1)|浏览(129)

我看了一个关于傅里叶变换的视频,在函数cos(2x)的傅里叶变换图中,hike应该在ω=-2ω=2处,但为什么我的不同:

这是代码:

import numpy as np
import matplotlib.pyplot as plt
import scipy.fftpack

# Number of samplepoints
N = 600
t = np.arange(0.0, 20.0, 0.1)
# sample spacing
T = -1.0 / 1.0
x = np.linspace(0.0, N*T, N)
yt = np.cos(2.0*t)
y = np.cos(2.0*x)
yf = scipy.fftpack.fft(y)
xf = np.linspace(0.0, 1.0/(2.0*T), N//2)

fig, ax = plt.subplots(figsize=(14, 7))
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)

ax1.plot(xf, 2.0/N * np.abs(yf[:N//2]))
ax1.set_title("$FT\{f(x)\}$")

ax2.plot(t,yt)
ax2.set_title("$f(x) = cos(2x)$")
ax2.set_xticks([0, np.pi, 2 * np.pi])
plt.show()
jslywgbw

jslywgbw1#

角频率ω可以定义为ω = 2πf。你是用频率来作图的,而不是角频率。
要在预期的位置获得峰值,只需将绘图说明更改为:

ax1.plot(2*np.pi*xf, 2.0/N * np.abs(yf[:N//2]))

相关问题