主要内容

  • 1、数据提取
  • 2、制作数据样本-数据分快
  • 3、过程展示

1、数据提取

本次教程以chb01患者的数据为例:
首先提取该患者的eeg数据:
在数据提取中就完成滤波:(0~50Hz)

from mne import Epochs, pick_types, events_from_annotations
from mne.io import concatenate_raws
from mne.io import read_raw_edf
from mne.datasets import eegbci
import mne
import numpy as np
import pandas as pd
import glob
import numpy as np
import os
from scipy import signal, fft
import matplotlib.pyplot as pltpath_time = "ttt.csv" # 患者发病发病起止时间表
file_dir = "chb01"
path_save = "data"
# 选择患者共有的通道
ch = ['FP1-F7', 'F7-T7', 'T7-P7', 'P7-O1', 'FP1-F3', 'F3-C3', 'C3-P3', 'P3-O1', 'FP2-F4', 'F4-C4', 'C4-P4', 'P4-O2', 'FP2-F8', 'F8-T8', 'T8-P8-0', 'P8-O2', 'FZ-CZ', 'CZ-PZ', 'P7-T7', 'T7-FT9', 'FT9-FT10', 'FT10-T8']
time = pd.read_csv(path_time,index_col="chb")
files = sorted(os.listdir(file_dir))
for file in files:if os.path.splitext(file)[1] == '.edf':f = os.path.splitext(file)[0]f_str = str(os.path.splitext(os.path.splitext(file)[0])[0])if i == 0:raws = mne.io.read_raw_edf(file_dir+"/" + file,preload=True,verbose=False)raws.pick_channels(ch)raws.filter(0.1,50.,method='iir')raw_d,raw_t = raws[:,:]i+=1else:i+=1if f_str in time.index:time.loc[f_str]['start'] = time.loc[f_str]['start'] * 256 + len(raw_t)time.loc[f_str]['end'] = time.loc[f_str]['end']*256 + len(raw_t)raw = mne.io.read_raw_edf(file_dir+"/" + file, preload=True,verbose=False)raw.pick_channels(ch)raw.filter(0.1,50.,method='iir')raws = concatenate_raws([raws,raw])raws_d, raw_t = raws[:,:]
d, t = raws[:,:]
data = d*1e6
np.save(path_save+"/"+file_dir+".npy",data)

其中,ttt.csv文件的部分内容如下:

2、制作数据样本-数据分快

详细代码如下:

   fbq = 3600*256fbjq = 3600*256*6fbjh = 3600*256*5time_window = 1024 # 每秒256个采样数据,这里的1024则是4秒的窗口的数据,可以根据实验需求调整!start = times.iloc[0]['start'] end = times.iloc[0]['end']d = np.load(path_save+"/"+file_dir)if start >= fbq :             fbqd = d[:,start-fbq:start]fbqd = fbqd.transpose(1,0)fbqd = fbqd.reshape(-1,time_window,22)fbql = np.zeros(fbqd.shape[0], dtype = int)fbql[:] = 1print(fbqd.shape,fbql.shape)np.save(path_save+"/"+"/d/"+file_dir+"_q.npy",fbqd)np.save(path_save+"/"+"/l/"+file_dir+"_q.npy",fbql)if start >= fbjq:fbjd = d[:,start-fbjq:start-fbjh]fbjd = fbjd.transpose(1,0)fbjd = fbjd.reshape(-1,time_window,22)fbjl = np.zeros(fbjd.shape[0], dtype = int)print(fbjd.shape,fbjl.shape)np.save(path_save+"/"+"/d/"+file_dir+"_j.npy",fbjd)np.save(path_save+"/"+"/l/"+file_dir+"_j.npy",fbjl)

3、过程展示

数据提取的过程如下:

样本制作与数据分块过程如下:
900为样本数量,1024为4s时间窗口内的数据,22为eeg通道数量!

接下来就可以进入具体的研究内容了!!!

CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理(二)相关推荐

  1. CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-癫痫发作预测(六)

    CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-癫痫发作预测(六) 导入需要的包 各功能模块 数据集导入 模型训练 训练结果 保存模型 测试结果 导入需要的包 import numpy as np ...

  2. CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-通道选择(五)

    CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-通道选择(五) 概述 通道选择模型 通道选择 LightGBM模块代码 LightGBM模型训练 概述 由于癫痫发作时不是整个大脑区域都有相关的反映 ...

  3. CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-2D-CNN(四)

    主要内容 1.数据提取 2.提取过程 1.数据提取 本次教程做适用于整体数据集上的处理工作,以不同的的处理代码展示整体的数据处理! 本次数据处理教程是没有做STFT变换,之间将提取的数据变换为适合2D ...

  4. 手把手教你EEG脑电数据预处理-操作篇

    目录 导入数据 对数据进行初步认识 电极定位 移除无用电极 重参考 重采样 滤波 分段和基线校正 插值坏导 ICA 剔除ICA成分 剔除坏段 目视检查法 保存数据 本分享为脑机学习者Rose整理发表于 ...

  5. 手把手教你EEG脑电数据预处理-原理篇

    目录 0. EEG data 1. 定位通道数据 2. 删除无用数据 3.滤波 4.分段 5.基线校正 6. 重参考 7. 降低采样率 8. 插值坏导 9. 独立主成分分析 10. 剔除坏段 本分享为 ...

  6. Analyzer脑电数据处理步骤

    Analyzer脑电数据处理步骤 1 简化版流程 2 详细版流程 2.1 设置数据路径的workspace 2.2 转换参考(New Reference 2.3 滤波(Filters) 2.4 ICA ...

  7. Python中FIR滤波和STFT滤波对比(MNE脑电数据处理)

    在脑电数据处理中滤波是很重要的一个步骤,直接影响后面的特征提取等计算流程.在之间写的博客中有过介绍(https://blog.csdn.net/zhoudapeng01/article/details ...

  8. EEG脑电公开数据库大盘点

    不做实验能否发表论文?答案当然是肯定的.对于刚进入EEG领域的同学来说,利用网上公开的EEG数据库练练手,顺便发表一些论文是个不错的选择.公开数据库对于促进科学研究的快速发展意义重大,公开数据的建立可 ...

  9. arduino eeg脑电模块_应用深度学习EEGNet来处理脑电信号

    本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195 EEGNet论文 EEGNet简介 脑机接口(BCI)使用神经活动作为 ...

最新文章

  1. C# 引用类型和值类型
  2. ORB-SLAM2从理论到代码实现(七):Tracking.cc程序详解(中)
  3. gensim models.word2vec – Word2vec embeddings API
  4. mac 安装 RabbitMQ
  5. 3.1 哈尔空间 V0
  6. BLE 配对流程(转自襄坤在线)
  7. Micropython教程之TPYBoardv102 DIY蓝牙智能小车实例
  8. plus 什么是mybais_【mybatis-plus】什么是乐观锁?如何实现“乐观锁”
  9. Linux alias设置别名 Ubuntu设置别名创建简写指令短命令
  10. rtx2060什么水平_不出预料+不负众望,NVIDIA RTX2060显卡获得2019我最喜欢称号
  11. vue中如何用npm下载less
  12. 量子化学计算机理,量子化学(理论化学的分支学科)_百度百科
  13. 哲学家就餐问题python伪代码_哲学家就餐问题代码
  14. 当exe文件运行时,汉字出现乱码
  15. 手机计算机国二支付,“刷手机”时代悄然来临 手机支付呼唤国家标准(二)...
  16. 怎么用计算机计算方位角,方位角计算软件
  17. 如何找到隐式转换的SQL?
  18. 最简单的 UE 4 C++ 教程 —— 扫描多线轨迹【十六】
  19. WiFi DFS(动态频率选择)
  20. OpenGL核心技术之Gamma校正

热门文章

  1. NodeJS充分利用多核CPU以及它的稳定性
  2. 容器编排的作用和要实现的内容
  3. 南航与英航签署合作谅解备忘录
  4. AI崛起,阿里的科技孵化力
  5. 在OpenStack私有云上安装配置虚拟机
  6. 怎么减少别人屏蔽你的朋友圈(二)
  7. 一个高尚的人,一个纯粹的人,一个有道德的人,一个脱离了低级趣味的人,一个有益于人民的人。...
  8. 游记_秦皇岛-北戴河两日游
  9. JDK11变化详解JDK8升级JDK11详细指南
  10. IOS实现3DTouch功能