首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脑电数据的频率电压图- Python中的FFT

脑电数据的频率电压图- Python中的FFT
EN

Stack Overflow用户
提问于 2017-02-23 19:11:50
回答 1查看 1.1K关注 0票数 2

我有点不确定如何处理这个问题,因为这对我来说是一个新的话题,所以我的代码的任何指导都将非常感谢。我有一组脑电图记录(18949条脑电图记录,采样率为500 nV,记录格式为nV)。我正在尝试从数据中创建一个频率与电压的关系图,但到目前为止我还没有成功。

我的代码如下:

代码语言:javascript
复制
data = pd.read_csv('data.csv')
data = data['O1']
Fs = 500.0
Ts = 1.0/Fs
t = np.arange(len(data)) / Fs

n = len(data) # length of the signal
k = np.arange(n)
T = n/Fs
frq = k/T # two sides frequency range
frq = frq[range(int(n/2))]

Y = np.fft.fft(data)/n
Y = Y[range(int(n/2))]

fig, ax = plt.subplots(2, 1)
ax[0].plot(t,data)
ax[0].set_xlabel('Time')
ax[0].set_ylabel('Voltage')
ax[1].plot(frq,abs(Y),'r')
ax[1].set_xlabel('Freq (Hz)')

plt.draw()
plt.show()

fig.savefig("graph.png")

我的结果图看起来像这样:

有没有人能提供一些指导,说明我在这方面可能出了什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-24 10:25:26

你的信号在时域上有相当大的直流偏移(至少相对于其他信号的变化)。在频域中,这将被绘制为0 0Hz处的一条强线(它被曲线图的轴隐藏),那么其他频率分量的振幅相对来说接近于0。

为了获得更好的可视化效果,您应该使用公式20*log10(abs(Y))Decibels (dB)中绘制频谱,这样您就可以实际看到其他频率分量。

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

https://stackoverflow.com/questions/42414114

复制
相关文章

相似问题

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