MNE是用于探索、可视化和分析人类神经生理学数据的开源 Python 包
这里使用的数据集为BCI CompetitionIV(2008)中的数据集2a。数据集文件如下图:
使用mne.io.read_raw_gdf()读取,具体参数设置见官网:https://mne.tools/stable/generated/mne.io.read_raw_gdf.html#examples-using-mne-io-read-raw-gdf

1.读取数据

import mne
import matplotlib.pyplot as plt
input_fname = 'BCI_data/BCICIV_2a_gdf/A01E.gdf'  # 选取01E文档
# 通道名称映射
mapping = {'EEG-Fz': 'eeg','EEG-0': 'eeg','EEG-1': 'eeg','EEG-2': 'eeg','EEG-3': 'eeg','EEG-4': 'eeg','EEG-5': 'eeg','EEG-C3': 'eeg','EEG-6': 'eeg','EEG-Cz': 'eeg','EEG-7': 'eeg','EEG-C4': 'eeg','EEG-8': 'eeg','EEG-9': 'eeg','EEG-10': 'eeg','EEG-11': 'eeg','EEG-12': 'eeg','EEG-13': 'eeg','EEG-14': 'eeg','EEG-Pz': 'eeg','EEG-15': 'eeg','EEG-16': 'eeg','EOG-left': 'eog','EOG-central': 'eog','EOG-right': 'eog'
}
raw = mne.io.read_raw_gdf(input_fname)
raw.set_channel_types(mapping)  # 这里我进行了一步映射,如果不映射会显示无法将EEG与EOG区分开

显示脑电数据的信息

print(raw)
print(raw.info)

如果不进行映射,打印的结果如下:

<RawGDF | A01E.gdf, 25 x 687000 (2748.0 s), ~29 kB, data not loaded>
<Info | 7 non-empty valuesbads: []ch_names: EEG-Fz, EEG-0, EEG-1, EEG-2, EEG-3, EEG-4, EEG-5, EEG-C3, EEG-6, ...chs: 25 EEGcustom_ref_applied: Falsehighpass: 0.5 Hzlowpass: 100.0 Hzmeas_date: 2005-01-19 12:00:00 UTCnchan: 25projs: []sfreq: 250.0 Hz

可以看到chs那里把EOG通道也归到EEG通道中了,正确结果应为下面打印的:

<RawGDF | A01E.gdf, 25 x 687000 (2748.0 s), ~29 kB, data not loaded>
<Info | 7 non-empty valuesbads: []ch_names: EEG-Fz, EEG-0, EEG-1, EEG-2, EEG-3, EEG-4, EEG-5, EEG-C3, EEG-6, ...chs: 22 EEG, 3 EOGcustom_ref_applied: Falsehighpass: 0.5 Hzlowpass: 100.0 Hzmeas_date: 2005-01-19 12:00:00 UTCnchan: 25projs: []sfreq: 250.0 Hz
>

显示前10秒所有的脑电信号

plt.figure(figsize=(10, 8))
raw.plot(duration=10, n_channels=25, scalings='auto')
plt.show()

结果如图:

60HZ下的psd

raw.plot_psd(fmax=60)
plt.show()

结果如下图:(我觉得这个绘制的有点问题,通道数不明显,有懂得可以讨论一下)

获取10-20秒内良好的eog数据

# 方法一
picks = mne.pick_types(raw.info, eog=True, exclude='bads')  # 换成eeg即可显示eeg数据
t_idx = raw.time_as_index([10., 20.])
data, times = raw[picks, t_idx[0]:t_idx[1]]
plt.plot(times, data.T)
plt.title("Sample channels")
plt.show()
# 方法二
sfreq = raw.info['sfreq']
data, times = raw[22:25, int(sfreq*10):int(sfreq*20)]
plt.plot(times, data.T)
plt.title("Sample channels")
plt.show()

结果如下图所示:
方法一:

方法二:

MNE读取竞赛数据集gdf格式脑电数据,并简单可视化相关推荐

  1. Python读取.edf格式脑电数据文件

    MNE-python读取.edf文件 EDF,全称是 European Data Format,是一种标准文件格式,用于交换和存储医疗时间序列. 该格式文件能够存储多通道的数据,允许每个信号拥有不同的 ...

  2. Python专栏 | MNE脑电数据(EEG/MEG)可视化

    关注微信公众号:脑机接口研习社 了解脑机接口最近进展 系列文章目录 Python专栏 | 脑电图和脑磁图(EEG/MEG)的数据分析方法之载入数据 文章目录 系列文章目录 正文 总结 正文 MNE包的 ...

  3. 从.gdf格式的脑电数据中获得脑电数据,通道名称,采用频率。

    用mne库的mne.io.read_raw_gdf(path)读取gdf文件,想要读取edf文件,就将mne.io.read_raw_gdf()中的gdf改为edf即可. import mne imp ...

  4. Python协方差矩阵处理脑电数据

    在本教程中,我们将介绍传感器协方差计算的基础知识,并构建一个噪声协方差矩阵,该矩阵可用于计算最小范数逆解. 诸如MNE的源估计方法需要从记录中进行噪声估计. 在本教程中,我们介绍了噪声协方差的基础知识 ...

  5. 脑电分析系列[MNE-Python-21]| Python协方差矩阵处理脑电数据

    今天主要介绍一下MNE中如何用协方差矩阵来处理脑电数据的. MNE中的许多方法,包括源估计和一些分类算法,都需要根据记录进行协方差估计. 在本教程中,我们将介绍传感器协方差计算的基础知识,并构建一个噪 ...

  6. 脑电分析系列[MNE-Python-18]| 生成模拟原始脑电数据

    在实验中有时需要原始脑电数据来进行模拟实验,但又限于实验条件的不足,需要构造模拟的原始脑电数据. 本示例通过多次重复所需的源激活来生成原始数据. 案例介绍 # 导入工具包 import numpy a ...

  7. Python-生成模拟原始脑电数据

    在实验中有时需要原始脑电数据来进行模拟实验,但又限于实验条件的不足,需要构造模拟的原始脑电数据. 本示例通过多次重复所需的源激活来生成原始数据. 案例介绍 # 导入工具包 import numpy a ...

  8. Python脑电数据的Epoching处理

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 import os.path as op import numpy as np import mne import ma ...

  9. 【思维导图】利用LSTM(长短期记忆网络)来处理脑电数据

    文章来源| 脑机接口社区群友 认知计算_茂森的授权分享 在此非常感谢 认知计算_茂森! 本篇文章主要通过思维导图来介绍利用LSTM(长短期记忆网络)来处理脑电数据. 文章的内容来源于社区分享的文章&l ...

最新文章

  1. java发送短信模板_java发送短信
  2. python3菜鸟-Python3 迭代器与生成器
  3. HarmonyOS之深入解析线程间的通信
  4. 设置eclipse启动时使用的jdk
  5. yum安装与源码编译安装实际使用区别
  6. Spring3系列7- 自动扫描组件或Bean
  7. 架构师日记|一次性讲透K8S,服务网格,服务治理这些概念
  8. 情人节民宿预定量同比增200% 北京建国门最火
  9. React Native——一次学习,随处编写
  10. word参考文献编号、引用、修改
  11. mac下制作windows启动U盘
  12. 无线承载根据承载的内容不同分为SRB和DRB EPS承载根据用户业务需求和Qos的不同可以分为GBR/ Non-GBR 承载...
  13. input输入密码的时候调用纯数字键盘和加密,js弹出键盘
  14. 延庆区计算机学校,【基层链接】发展中的校园欢迎你——延庆五中现代化的教学专室与设备系列...
  15. DOS命令经典应用复习
  16. PCF8591详解(蓝桥杯单片机模块(IIC总线))
  17. python 网页爬虫nike_python网络爬虫-爬取网页的三种方式(1)
  18. 优化距离计算函数的matlab实现
  19. 基金使用计划 数学建模 matlab,数学建模论文-基金使用计划
  20. Android Training Note

热门文章

  1. 高速公路监控系统方案
  2. 缓存穿透、击穿、雪崩(超精华版)
  3. 收官更是启程!来看CDEC2020成都站绝美高清大图
  4. 没错,基于SSM+小程序的物业系统开源了,现在也有视频了
  5. 轻松入门H3C无线AC上线AP【入门篇】
  6. 机械制造工艺学课程设计——发动机连杆加工(说明书+CATIA三维模型+CAD图纸+工序卡+过程卡)
  7. Android创建AVD时出现no emulator installed和install haxm
  8. 现代计算机发现应用思路有哪些,数学在现在科技中的应用有哪些
  9. 使用Axure RP 8制作两种导航菜单-悬浮菜单
  10. MatLab2012b/MatLab2013b分类器大全(svm,knn,随机森林等)