MNE-python读取.edf文件

EDF,全称是 European Data Format,是一种标准文件格式,用于交换和存储医疗时间序列。

该格式文件能够存储多通道的数据,允许每个信号拥有不同的采样频率。

在内部,它包括标题和一个或多个数据记录。标题包含一些一般信息(患者标识,开始时间......等等)以及每个信号的技术规格(校准,采样率,过滤,......等等),编码为 ASCII 字符。数据记录包含小端 16 位整数的样本。因此,EDF 也是多导睡眠图(PSG)录音的流行格式。

python读取edf文件,可以通过mne实现

方法原型:

方法原型:
mne.io.read_raw_edf(input_fname,montage='deprecated', eog=None,misc=None,stim_channel='auto',exclude=(), preload=False, verbose=None)"""
input_fname:edf文件存放地址montage='deprecated':已弃用eog:通道名称或应指定为EOG通道的索引列表。值应对应于文件中的电极。默认为无。misc:通道名称或应指定为MISC通道的索引列表。值应对应于文件中的电极。默认为无。stim_channel:默认为"auto",这意味着将名为“status”或“trigger”(不区分大小写)的通道设置为STIM。
如果为str(或str列表),则所有与名称匹配的通道均设置为STIM;
如果为int(或int列表),则将对应于索引的通道设置为STIM。exclude:要排除的频道名称。这在读取具有不同采样率的数据时会有所帮助,以避免不必要的重采样。preload:如果为True,则数据将被预加载到内存中(这样可以加快数据的索引);
如果preload是字符串,则该字符串为数据存放在硬盘中的路径地址(速度较慢,需要较少的内存)。
"""

读取edf文件:Affaf Ikram 20121020 1839.L1.edf

第一步:导入工具包

from mne.io import concatenate_raws, read_raw_edf
import matplotlib.pyplot as plt
import mne

第二步:加载本地edf文件

raw=read_raw_edf("Affaf Ikram 20121020 1839.L1.edf",preload=False)

第三步:获取原始数据中事件

查看原始edf文件中保存的event id以及events

events_from_annot, event_dict = mne.events_from_annotations(raw)
print(event_dict)
print(events_from_annot)

如上图可以发现,事件ID有1,2,3,4,5,6

每个ID对应着注释:['TRSP', 'bgin', 'fix+', 'resp', 'stm+', 'stm-']

共有517个事件

第四步:根据事件ID获取对应事件

下面只选取事件ID为5和6的所对应的事件

custom_mapping = {'stm+':5, 'stm-': 6}
(events_from_annot,event_dict) = mne.events_from_annotations(raw, event_id=custom_mapping)
print(event_dict)
print(events_from_annot)

第五步:绘制事件图

fig = mne.viz.plot_events(events_from_annot, sfreq=raw.info['sfreq'],first_samp=raw.first_samp, event_id=event_dict)
fig.subplots_adjust(right=0.7)

epochs = mne.Epochs(raw, events=events_from_annot, event_id=event_dict)epochs.plot_image()

"""
获取采样频率sfreq知识点:“采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。
采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。
通俗的讲采样频率是指计算机每秒钟采集多少个信号样本。”"""
sfreq=raw.info['sfreq']
"""
获取索引为m到n的样本,每个样本从第k次到第h次.
data,times=raw[m:n,k:h]其中data为索引为m到n的样本,每个样本从第k次到第h次.
times是以第k次采样的时间作为开始时间,第h次采样时的时间为结束时间的时间数组。
"""
data,times=raw[:3,int(sfreq*1):int(sfreq*3)]
plt.plot(times,data.T)
plt.title("Sample channels")

更多阅读

Python-Evoked地形图可视化

BrainNet:用于人与人之间直接协作的多人脑对脑接口

如何快速找到脑机接口社区的历史文章?

第2期 | 国内脑机接口领域专家教授汇总(修改)

收藏 | 脑电EEG基础与处理汇总

你知道"淘宝意念购"吗?阿里巴巴也入局脑机接口领域了...,

使用时空-频率模式分析从脑电数据的一些试验中提取N400成分

未来50年的神经科学会是什么样呢?

脑机接口BCI学习交流QQ群:515148456

Python读取.edf格式脑电数据文件相关推荐

  1. MNE读取竞赛数据集gdf格式脑电数据,并简单可视化

    MNE是用于探索.可视化和分析人类神经生理学数据的开源 Python 包 这里使用的数据集为BCI CompetitionIV(2008)中的数据集2a.数据集文件如下图: 使用mne.io.read ...

  2. python读取ply格式的3D模型文件

    在研究生的一些项目中,会用python语言读取3D模型,3D模型通常有很多种类,但我的研究领域,通常用到ply格式的文件,因此,我今天晚上写一个博客来实现用python读取3D模型. 我的项目是位姿估 ...

  3. python读取xlsx格式中的数据

    描述 xlsx为使用word.wps的常见格式,实际上就是表格数据 恰好最近项目需求,需要从xlsx读一些我想要的数据来进行处理,搜索网上的一些经验,这本身没什么技术水准,基本上是代码copy了 代码 ...

  4. 使用mne python简单的处理脑电数据的代码演示

    文章目录 导入包 导入数据 创建数据信息 提取数据(把samples和labels分别取出) 创建事件 trial序列图 ERP混合图(erp曲线和所有trial erp的色彩图) erp曲线图 er ...

  5. Python读取保存在hdf5文件中的脑电数据

    当脑电数据保存在hdf5文件中如何读取呢? 1.首先需要查看hdf5文件的结构: 2.通过结构来获取数据. import h5py import numpy as np fname='test.hdf ...

  6. python 读取excel格式xml,读取xml格式的xls文件、解析其中数据

    1.python 读取excel格式xml,解析其中数据 当excel文件的格式是xml的时候,window系统是可以正常打开的,但是使用pandas直接读取则会报错,原因就是现在已经是xml文件了, ...

  7. python读取.edf文件

    目录 EDF文件简介 MNE-python读取.edf文件 案例 第一步:导入工具包 第二步:加载本地edf文件 第三步:获取原始数据中事件 第四步:根据事件ID获取对应事件 第五步:绘制事件图 本教 ...

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

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

  9. python用os.system打开wav文件_使用python读取wav格式文件

    ** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...

最新文章

  1. AOE网(求关键路径)(c/c++)
  2. 一个简单问题引发对IEnumerable和IQueryable的思考
  3. 入门第十一课 Python语句的嵌套
  4. 成员函数后面加上const的作用
  5. 使用Microsoft Media Service实现网络影音多媒体应用系列第三篇---技术要点
  6. pgsql thinkphp5_thinkphp 连接postgresql
  7. 线程间通讯《代码》pthread_cond_t
  8. AVR单片机外部RAM访问
  9. 如何用python编写操作系统_操作系统介绍、python基础
  10. 某游戏中有轰炸机、直升机、重型坦克、轻型坦克、飞行兵、步兵等六大兵种
  11. 手动解析App dSYM示例
  12. 苏宁服务器修复,今天下午苏宁服务器突发宕机,官方回应:因系统升级调整
  13. 2021年中国及各省市结婚登记人数、离婚登记人数、结婚率、离婚率、婚姻的正负面效应及政策建议分析[图]
  14. 卡内基梅隆计算机金融,卡耐基梅隆大学计算金融项目申请要求是什么?
  15. 语句摘抄——第28周
  16. windows下软件安装:Anaconda下安装Pymol
  17. 八戒,别以为你站在路灯下就是夜明猪了!
  18. 密码学中Alice(爱丽丝)和鲍勃(Bob)的历史
  19. double cbrt(double x)
  20. EMMC和Nand傻傻分不清

热门文章

  1. 解决页面使用overflow: scroll在iOS上滑动卡顿的问题
  2. android开发出现No Launcher activity found!解决方案
  3. 如果不知道MySQL当前使用配置文件(my.cnf)的路径的解决方法
  4. 【原】python3.7 无法pip安装提示ssl错误解决方案
  5. 按属性值对对象数组进行排序
  6. PXC DDL 操作阻塞写
  7. [51nod1965]奇怪的式子(Min_25筛)
  8. Hdu-6249 2017CCPC-Final G.Alice’s Stamps 动态规划
  9. 自动化运维系列之Cobbler (资源)
  10. 关于Quartz.NET作业调度框架的一点小小的封装,实现伪AOP写LOG功能