我正在尝试理解scipy.fftpack.fft的输出。我创建了一个信号并对其进行fft。以下是fft的代码:
import numpy as np
from scipy.fftpack import fft
import matplotlib.pyplot as plt
# Number of samplepoints
N = 600
# sample spacing
T = 1.0 / 800.0
x = np.linspace(0.0, N*T, N)
y = 5.0 * np.sin(50.0 * 2.0*np.pi*x) + 1.0*np.sin(80.0 * 2.0*np.pi*x) #unit is V
yf = fft(y)
xf = np.linspace(0.0, 1.0/(2.0*T), N/2)
plt.close()
plt.plot(xf, 2.0/N * np.abs(yf[0:N/2]))
plt.grid()
plt.show()
这将创建如下内容: 我知道信号强度幅度的单位与其波形信号单位相同(V)。但我不明白FFT频率的幅度与原始信号幅度之间的关系。例如,50 Hz正弦波的幅度为5.0 V,那么为什么50 Hz的FFT幅度只有约3.6 V?