如何使用python将样本中的xaxis转换为时间(s)和频率(Hz)?

2024-05-31 23:54:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在这里,我用fft()在时域和频域绘制了ecg信号: time-domain

frequency-domain

但正如您所看到的,两幅图像的x轴仍在样本中

我搜索了一些关于如何将样本转换为时间(s)和频率(Hz)的参考文献,但是失败了,不仅x轴发生了变化,而且绘图形状也发生了变化

你能帮我解决这个问题吗?多谢各位


Tags: 图像ffttime信号domain时间绘制参考文献
1条回答
网友
1楼 · 发布于 2024-05-31 23:54:16

代码可以如下所示:

signal, sample_rate = librosa.load(blues_1)
max_time = signal.size/sample_rate

time_steps = np.linspace(0, max_time, signal.size)
plt.figure()
plt.plot(time_steps, signal)
plt.xlabel("Time [s]")
plt.ylabel("Amplitude")

f = np.abs(np.fft.fft(signal))
freq_steps = np.fft.fftfreq(signal.size, d=1/sample_rate)
plt.figure()
plt.plot(freq_steps, f)
plt.xlabel("Frequency [Hz]")
plt.ylabel("Amplitude")

Time Domain

Frequency Domain

可以理解的是,您也只能在频域中绘制一半的值

相关问题 更多 >