我有以下代码只是为了从numpy fft中获得“正确答案”。
import numpy as np
import matplotlib.pyplot as plt
n = np.pi/2
Fs = 140
t = np.arange(0,n,1/Fs)
f1, f2, f3 = (20,45,60)
a1 = np.sin(2*np.pi*f1*t)
a2 = np.sin(2*np.pi*f2*t)
a3 = np.sin(2*np.pi*f3*t)
y = a1+a2+a3
plt.subplot(2,1,1)
plt.xlim(0,n)
plt.ylim(y.min()-0.2,y.max()+0.5)
plt.plot(t,y)
plt.subplot(2, 1, 2)
N = len(t)
X = np.fft.fft(y)
freq = (Fs/2)*np.linspace(0,1,N//2)
plt.plot(freq, np.abs(X[:len(freq)])*2/N)
plt.show()
为什么每个频率的fft振幅都不相同? 帮助表示赞赏。