首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python将x轴从样本转换为时间(s)和频率(Hz)?

如何使用python将x轴从样本转换为时间(s)和频率(Hz)?
EN

Stack Overflow用户
提问于 2021-08-12 12:21:07
回答 1查看 783关注 0票数 0

这里我用fft()绘制了一个心电信号的时域和频域:time-domain

frequency-domain

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

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

你能帮我解决这个问题吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 13:15:08

代码可能如下所示:

代码语言:javascript
复制
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")

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68757419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档