【发布时间】:2019-04-12 15:11:24
【问题描述】:
import numpy as np
import matplotlib.pyplot as plt
n = 500
T = 10
dw = 2 * np.pi / T
t = np.linspace(0, T, n)
x = 5 * np.sin(20 * t + np.pi) + 10 * np.sin( 40 * t + np.pi/2)
fftx = np.fft.rfft(x)
freq = np.fft.rfftfreq(n) * n * dw
amps = np.abs(fftx) * 2 / n
angs = np.angle(fftx)
_, ax = plt.subplots(3, 1)
ax[0].plot(t, x)
ax[1].plot(freq, amps)
ax[2].plot(freq, angs)
我得到正确的频率和幅度值。但从图中可以看出,相位值不正确。如何从fft中提取正确的相位值?我在相位图中究竟看到了什么?
我预计频率 20 和 40 分别约为 3.14 和 3.14/2。
【问题讨论】: