EEGLAB的相关使用

目录

概念

1.安装EEGLAB

 2.文件实例演示

导入数据集处理

(1)导入数据集

(2)画图

(3) 修改并存储数据集

(4) 保存数据集

(5) 删除数据集 

(6) 文件首选项

导入事件处理

(1)从数据通道导入事件

(2)从 MATLAB 数组或文本文件导入事件 

关于对齐事件的重要说明

导入频道位置 

3、过滤数据

滤波器消除线性趋势

4、重新引用

(1)概念

(2)操作

5.拒绝伪影 

(1)删除不良通道

(2)删除不好的数据

概念

EEGLAB 是一个交互式 Matlab 工具箱,用于处理连续的和事件相关的 EEG、MEG 和其他电生理数据,结合了独立分量分析 (ICA)、时间/频率分析、伪影抑制、事件相关统计以及几种有用的平均可视化模式和单次试验数据

1.安装EEGLAB

  1. 将 EEGLAB zip 文件解压到您选择的文件夹中

  2. 启动Matlab

  3. 将Matlab路径更改为刚刚解压的EEGLAB文件夹

  4. 输入“eeglab”并在 Matlab 提示符下按 Enter 键文件实例演示

 2.文件实例演示

导入数据集处理

(1)导入数据集

这里使用的是eeglab下载的安装包自带的数据集

这里的数据为.set格式,如果不是,import data导入matlab.array转化为.set格式后再Loading existing dataset

输入eeglab之后有界面弹出来,点击file->

选择教程文件“eeglab_data.set”,该文件随工具箱一起分发,位于 EEGLAB 的“sample_data”文件夹中。然后按打开

(2)画图

plot->channal data(scroll)

(3) 修改并存储数据集

先进行简单的滤波操作

tool->filter the data

输入1作为下沿频率(以Hz为单位)(第一个编辑框),然后按确定

修改数据集后,EEGLAB 会询问用户如何处理修改后的数据集,如下所示。默认设置是将新数据集存储在内存中,同时保留第一个数据集。用户还可以通过单击下面相应的复选框来决定覆盖内存中的原始数据集。

 存储新数据集(而不是覆盖它)后,您可以使用 EEGLAB 菜单项“数据集”在内存中可用的数据集之间进行可视化和导航,如下所示。可以在此菜单中选择任何数据集

(4) 保存数据集

将新数据集存储在 MATLAB 内存中不会自动将其永久存储在磁盘上

file->save current dataset as

保存新数据文件时,会出现文件浏览器窗口。输入数据集的名称(应以文件扩展名.set结尾),然后按“保存”(如下)将保存数据集 

(5) 删除数据集 

要从 MATLAB 内存中删除新创建的第二个数据集,请选择“文件”→“清除数据集”或“编辑”→“删除数据集”,然后输入数据集索引“2”,如下所示,然后按“确定”

 要删除数据集文件,只需从 MATLAB 外部的磁盘中删除该文件即可。

(6) 文件首选项

调用菜单项File → Preferences。数据集和文件首选项是下面显示的前三项。

第一个选项确定内存中是否可以存储多个数据集。我们在执行组分析时将选择此选项,因为通常不可能将所有数据集保存在内存中。选择此选项时,缺点是用户必须保存或覆盖父级,如下所示(必须选中下部的复选框之一)。

默认情况下,EEGLAB 将为每个数据集保存两个文件。一个包含元数据的文件(扩展名为 .set,是一种 MATLAB 文件),另一个文件包含原始数据(扩展名为 .fdt 的 float32)。第二个选项可以保存单个文件

导入事件处理

(1)从数据通道导入事件

有关实验事件的信息通常记录在脑电图数据矩阵的某一行(通道)上

创建模拟数据来说明如何从数据通道导入事件

假设 EEG 数据集有 33 行(通道),其中前 32 行是数据通道,最后 (33) 是事件通道,值为 1(刺激开始)、2(受试者响应)和 0(其他) 。用于生成此类数据的 MATLAB 代码如下(用于测试、复制代码并将其粘贴到 MATLAB 命令行):

eegdata = rand(32, 256*100); % 32 channels of random activity (100 s sampled at 256 Hz).
eegdata(33,[10:256:256*100]) = 1; % simulating a stimulus onset every second
%从10到256*100的点,每隔256个点有一个打标线,均匀打标
eegdata(33,[100:256:256*100]+round(rand*128)) = 2; 
%从100到256*100的点,每隔(256+一个随机数)个点有一个打标点,非均匀打标

将上述代码复制到 MATLAB 并使用File → Import data → from ASCII/float file or MATLAB array菜单项将数组eegdata作为测试数据集导入 EEGLAB后,选择File → Import event info → from data channel菜单项来调用函数pop_chanevent.m

 输入33作为事件通道,并将边缘提取类型设置为向上(前导)(注意:将鼠标放在文本Transitions to extract上以查看上下文帮助消息)。按确定。现在,事件信息将已导入到测试 EEGLAB 数据集中。同时,通道33将从测试数据中删除。选择菜单项“edit”→“events value”以检查导入的事件类型和延迟。

PS:

  • 事件类型标识特定的事件或刺激。
  • 事件延迟事件发生的时间点,相对于EEG数据开始的时间位置。
  • 出现事件延迟的原因不同事件在不同时间点发生,需要记录这些时刻以便分析。
(2)从 MATLAB 数组或文本文件导入事件 

使用上面创建的随机 EEG 数据集,我们导入存储在 ASCII 文本文件tutorial_eventtable.txt中的事件信息。该文本文件由三列组成,第一列包含事件的延迟(以秒为单位),第二列包含事件的类型,第三列包含描述事件的参数(例如,刺激位置)

选择菜单项 file —>events value --> MATLAB 数组或 ASCII 文件

关于对齐事件的重要说明

事件延迟与数据事件对齐,它将第一个事件延迟与现有事件延迟对齐并检查延迟一致性NaN值(MATLAB 表示非数字)表示忽略此选项(如上例所示)。然而,对于大多数脑电图数据,脑电图是通过存储在事件通道中的基本事件来记录的(请参阅上面从数据通道导入事件)。详细的事件信息单独记录在文本文件中:因此,文本文件中记录的事件必须与脑电图中记录的事件一致

如果文本文件中的第一个事件对应于 EEG 中记录的第一个事件(即,如果两者之间的偏移量为 0),请将“将事件延迟与数据事件对齐”的输入设置为 0。将此值设置为 1 表示事件文本文件中的事件 1 对应于 EEG 数据中的事件号 2。这里,负值也可用于指示文本文件中的事件在脑电图记录的事件之前开始。

 PS:文本文件和EEG记录的事件的区别

  • EEG数据中的事件:主要是基本的时间和类型标记,直接与EEG数据同步。
  • 文本文件中的事件:提供更详细的元数据和描述,独立存储,便于编辑和分享

导入频道位置 

1.加载EEGLAB 数据集

2.查找频道位置

命令行通道位置查找示例

chanlocs = struct('labels', { 'cz' 'c3' 'c4' 'pz' 'p3' 'p4' 'fz' 'f3' 'f4'});
pop_chanedit( chanlocs );

从文件加载通道位置

edit->channel locations

Read location选择文件,eeglab_chan32.locs(位于EEGLAB 发行版的sample_data子目录中)。 

3、过滤数据

滤波器消除线性趋势

tool->filter the data->basic FIR

请注意,如果同时选择高通和低通截止频率,低通和高通部分将具有相同的斜率。因此,低通斜率常常比必要的更陡。为了避免此问题,我们建议首先应用低通滤波器,然后在第二次调用中应用高通滤波器(反之亦然)。尽量先低通后高通,一次一次操作,尽量不带通 

4、重新引用

(1)概念

用于记录脑电图数据的参考电极通常被称为数据的“公共”参考

EEG记录中的典型记录参考是一个乳突(例如,10-20系统中的TP10,下图中红色的电极),链接的乳突(通常是数字链接的乳突,事后计算),顶点电极( Cz),单个或相连的耳垂,或鼻尖。具有有源电极的系统(例如,BIOSEMI Active Two)可以无参考地记录数据。在这种情况下,必须在数据导入期间事后选择参考。如果不这样做,可能会在数据中留下 40 dB 不必要的噪声。

(2)操作

1.加载 EEGLAB 数据集

2.计算平均参考值

tools->re-reference the data

3.更改采样率

tools->change sampling rate

5.拒绝伪影 

(1)删除不良通道

1.加载数据集

2.滚动频道数据

Plot->channel data(scroll)

3.查看数据频谱

Plot->channel spectra and maps

4.选择通道数据

edit->select data

(2)删除不好的数据

1.加载数据集

2.滚动频道数据

Plot->channel data(scroll)

3.电压等级

4.调整滚动时间窗口的宽度

 

Settings → Time range to display,并将所需的窗口长度设置为“10”秒,如下所示, 

5.显示频道数

Setting->numbers of channels to display

6.放大数据

Settings → Zoom off/on → Zoom on。使用鼠标在数据区域周围拖动一个矩形以将其放大。

7.拒绝数据

Tools → Inspect/reject data by eyes和Plot → Channel data (scroll)调用函数eegplot.m。根据您选择的菜单项,可能会出现警告消息;单击“继续”

8.拒绝不良数据部分的策略

拒绝不良数据部分的一种策略是使用eegplot.m窗口(右上角)的Stack按钮堆叠数据并显示大约 30 秒的数据(有关更改时间窗口的大小,请参阅上一节)。这样可以轻松发现并删除伪影,

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术前沿 |【BLIP:统一理解和生成的自举多模态模型研究】

BLIP:统一理解和生成的自举多模态模型研究 摘要引言一、BLIP模型概述二、 BLIP模型在多模态任务中的应用三、总结 摘要 本文介绍了BLIP(Bootstrapping Language-Image Pre-training)模型,一个前沿的多模态模型,通过自…

散列(哈希)及其练习题(基础)

目录 散列 字符出现次数 力扣经典题:两数之和 集合运算 交 并 差 字符串的出现次数 散列 导入: 有N个数和M个数,如何判断M个数中每个数是否在N中出现? 思想:空间换时间 创建hashtable,以N个数本…

图_基础算法

图这种数据结构还有一些比较特殊的算法,比如二分图判断,有环图无环图的判断,拓扑排序,以及最经典的最小生成树,单源最短路径问题,更难的就是类似网络流这样的问题。 先看拓扑排序(有环无环&…

【linux性能分析】heaptrack分析内存占用

文章目录 1. Heaptrack是什么2. Heaptrack有哪些功能3. Heaptrack和valgrind massif对比4. Heaptrack安装5. Heaptrack生成追踪文件6. heaptrack_gui进行内存分析7. heaptrack_print也能用于堆分析8. 报错解决9. 补充介绍:heaptrack编译安装 1. Heaptrack是什么 he…

内网穿透--Spp-特殊协议-上线

免责声明:本文仅做技术交流与学习... 目录 spp项目: 一图通解: 1-下载spp 2-服务端执行命令 3-客户端执行命令 4-服务端cs监听&生马 spp项目: GitHub - esrrhs/spp: A simple and powerful proxy 支持的协议:tcp、udp、udp、icmp、http、kcp、quic 支持的…

Java开发者必知的时间处理工具:SimpleDateFormat类详解

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

小红书云原生 Kafka 技术剖析:分层存储与弹性伸缩

面对 Kafka 规模快速增长带来的成本、效率和稳定性挑战时,小红书大数据存储团队采取云原生架构实践:通过引入冷热数据分层存储、容器化技术以及自研的负载均衡服务「Balance Control」,成功实现了集群存储成本的显著降低、分钟级的集群弹性迁…

[图解]SysML和EA建模住宅安全系统-07 to be块定义图

1 00:00:01,970 --> 00:00:05,040 入侵者这里有个∞ 2 00:00:05,530 --> 00:00:07,000 说明它下面已经有子图了 3 00:00:07,010 --> 00:00:08,080 我们看看里面子图 4 00:00:10,200 --> 00:00:17,000 这里,我们看位置 5 00:00:19,030 --> 00:00:…

Vitis HLS 学习笔记--抽象并行编程模型-不良示例

目录 1. 简介 2. 基础 kernel 2.1 pass kernel 2.2 double_pass kernel 2.3 add_kernel 2.4 split kernel 3. 三种bypass 3.1 input_bypass 3.2 middle_bypass 3.3 output_bypass 4. 总结 1. 简介 本文展示三个在数据流水线中常见的问题: 输入参数绕过…

chatgpt线性差值 将直线渐变颜色

color(x)(x-x1)/(x2-x1) 与gpt给出的 这个位置比例可以表示为d/L是概念相同 x-x1是计算当前点距离起点距离,x2-x1是计算长度 例如,如果我们在直线上距离起点A的距离为d,整条直线的长度为L 用数学方式解释 2024/5/25 18:54:30 当我们要在一…

vue+echart :点击趋势图中的某一点或是柱状图,出现弹窗,并传输数据

样式 在趋势图中点击某一个柱状图,出现下面的弹窗 代码实现 主要是在趋势图页面代码中,在初始化趋势图的设置中,添加对趋势图监听的点击方法 drawChart() {const chartData this.chartData;let option {};if (!chartData.xData?.len…

Swift 类和结构体

类和结构体 一、结构体和类对比1、类型定义的语法2、结构体和类的实例3、属性访问4、结构体类型的成员逐一构造器 二、结构体和枚举是值类型三、类是引用类型1、恒等运算符2、指针 结构体和类作为一种通用而又灵活的结构,成为了人们构建代码的基础。你可以使用定义常…

python mp3转mp4工具

成品UI 安装moviepy库 pip install moviepy 转换demo from moviepy.editor import *# 创建一个颜色剪辑,时长与音频相同 audioclip AudioFileClip(r"C:\Users\Administrator\PycharmProjects\pythonProject44\test4\赵照 - 灯塔守望人.mp3") videoclip…

用Python Pygame做的一些好玩的小游戏

有些游戏的代码比较长就不公布了 1.简简单单 1.疯狂的鸡哥 你要准备的图片: 命名为:ji.png 代码: import pygame import random as r pygame.init() pygame.display.set_caption(aaa) pm pygame.display.set_mode((800,600))class Ls(py…

Java进阶学习笔记15——接口概述

认识接口: Java提供了一个关键字Interface,用这个关键字我们可以定义一个特殊的结构:接口。 接口不能创建对象。 注意:接口不能创建对象,接口是用来被类实现(implements)的,实现接口…

基于Spring Boot的高校图书馆管理系统

项目和论文都有企鹅号2583550535 基于Spring Boot的图书馆管理系统||图书管理系统_哔哩哔哩_bilibili 第1章 绪论... 1 1.1 研究背景和意义... 1 1.2 国内外研究现状... 1 第2章 相关技术概述... 2 2.1 后端开发技术... 2 2.1.1 SpringBoot 2 2.1.2 MySQL.. 2 2.1.3 My…

vr商品全景展示场景编辑软件的优点

3D模型展示网站搭建编辑器以强大的3D编辑引擎和逼真的渲染效果,让您轻松实现模型展示的优化。让用户通过简单的操作,就能满足个人/设计师/商户多样化展示的需求,让您的模型成为独一无二的杰作。 3D模型展示网站搭建编辑器采用国内领先的实时互…

java继承使用细节二

构造器 主类是无参构造器时会默认调用 public graduate() {// TODO Auto-generated constructor stub也就是说我这里要用构造器会直接调用父类。它是默认看不到的 ,System.out.println("graduate");} 但当主类是有参构造器如 public father_(int s,doubl…

c语言:将小写字母转换为大写字母

//将小写字母转换为大写字母 #include <stdio.h> #include <ctype.h> int main() { char arr[]"you are low"; int i0; while(arr[i]) { if(islower(arr[i])) { arr[i]arr[i]-32; } i; } printf("%s\n",arr); return 0; }

微调Llama3实现在线搜索引擎和RAG检索增强生成功能

视频中所出现的代码 Tavily SearchRAG 微调Llama3实现在线搜索引擎和RAG检索增强生成功能&#xff01;打造自己的perplexity和GPTs&#xff01;用PDF实现本地知识库_哔哩哔哩_bilibili 一.准备工作 1.安装环境 conda create --name unsloth_env python3.10 conda activate …