我正在尝试使用 scipy 的函数计算 DFT。我不明白为什么具有 2 Hz 频率的简单正弦波的相位谱在。相反,相位图似乎对频率有一些线性依赖性,我不明白。我提供帮助代码。如何解决这个问题?看起来像一个简单的问题,我没有掌握。请帮忙。
import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fft, fftfreq
# 1Hz sine wave
npts = 100
tmax = 10
t = np.linspace(0, tmax, npts)
y = np.sin(2*np.pi*2*t)
dt = tmax/npts
# FFT computation
Y = fft(y)
freq = fftfreq(npts, d=dt)
amplit = abs(Y)/npts
phase = np.angle(Y)
phase = phase / np.pi
fig, ax = plt.subplots(1, 2, figsize=(10,4))
ax[0].plot(freq, amplit)
ax[1].plot(freq, phase)
ax[0].plot([2,2], [0,0.5], '--')
ax[0].plot([-2,-2], [0,0.5], '--')
ax[1].plot([2,2], [-1,1], '--')
ax[1].plot([-2,-2], [-1,1], '--')
