numpy阵列的Python-Fourier变换

numpy阵列的Python-Fourier变换,python,signals,fft,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(cha

我在尝试表示信号的傅里叶变换时遇到了一个问题。 这是我的代码:

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()
输出为:

我不明白这个输出,我怎么知道频率? 我还尝试了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()
其输出为:


关于第二个绘图,似乎需要放大。还可以试试对数刻度吗?谢谢,我会找到做对数刻度的说明。当然可以!也许添加一些数据也会很有用。另外,不要忘记图中的单位。否则事情会变得一团糟……对不起,第一个情节的输出是什么意思?老实说,我有点不知所措。我可以提供一些FFT理论,但不能与Python结合。因此,对于给定的脉冲(P=P(t):依赖于时间),通过FFT,可以将其分解为如下所示的频率:。这里你缺少的是FFT背后的数学思想,并试图用简单的语言解释它。代码将是您的第二项任务。别忘了分享一些数据。关于第二个图,似乎需要放大。还可以试试对数刻度吗?谢谢,我会找到做对数刻度的说明。当然可以!也许添加一些数据也会很有用。另外,不要忘记图中的单位。否则事情会变得一团糟……对不起,第一个情节的输出是什么意思?老实说,我有点不知所措。我可以提供一些FFT理论,但不能与Python结合。因此,对于给定的脉冲(P=P(t):依赖于时间),通过FFT,可以将其分解为如下所示的频率:。这里你缺少的是FFT背后的数学思想,并试图用简单的语言解释它。代码将是您的第二项任务。别忘了分享一些数据。