numpy fft幅度不是什么

时间:2019-05-16 16:38:20

标签: python numpy matplotlib fft

我有以下代码只是为了从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()

它产生这个 enter image description here

为什么每个频率的fft振幅都不相同? 帮助表示赞赏。

0 个答案:

没有答案