numpy数组的Python傅里叶变换

时间:2017-06-07 21:42:56

标签: python signals fft

我试图表示信号的傅里叶变换时遇到问题。 这是我的代码:

path = "./sensor_20170315_140457Z.das.h5"
p5 = h5py.File(path, 'r')
dsData = p5["DAS/Data"]
ds_as_array = np.array(dsData, dtype=np.int32)
channel = ds_as_array[355, 0:2500]
channel_t=np.arange(0,1,0.0004)
plt.plot(channel_t, channel)
plt.show()

我计算傅立叶变换的代码是:

Y = fft(y)
plt.plot(Y)
plt.show()

,输出为:

enter image description here

我不明白这个输出,我怎么知道频率? 我也尝试了scipy文档的样本,但结果更令人失望

N = 2500
# sample spacing
T = 1.0 / 2500.0
x = np.linspace(0.0, N*T, N)
y = channel
print(y)
yf = fft(y)
xf = np.linspace(0.0, 1.0/(2.0*T), N//2)
plt.plot(xf, 2.0/N * np.abs(yf[0:N//2]))
plt.grid()
plt.show()

,其输出为:

enter image description here

0 个答案:

没有答案