EEGLAB的相关使用

news2024/11/16 12:42:17

目录

概念

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.coloradmin.cn/o/1693243.html

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

相关文章

零基础HTML教程(33)--HTML5表单新功能

文章目录 1. 背景2. HTML5新增表单元素2.1 number (数字输入框)2.2 email (邮箱输入框)2.3 url (链接输入框)2.4 tel (电话输入框)2.5 range (范围选择框)2.6 color (颜色选择框)2.7 datetime (日期时间选择框)2.8 search (搜索框) 3. placeholder (占位属性&#x…

php TP8 阿里云短信服务SDKV 2.0

安装:composer require alibabacloud/dysmsapi-20170525 2.0.24 官方文档:短信服务_SDK中心-阿里云OpenAPI开发者门户 (aliyun.com) 特别注意:传入参数获得值形式 正确: $PhoneNumbers $postData[PhoneNumbers];$signName $po…

Vue集成Iframe

一、应用场景,为什么要集成Iframe? 1、庞大项目拆分后,便于管理和部署,用集成Iframe的方法合并 2、避免功能重复开发,共用模块可单独开发为一个项目,既可独立部署,也可集成到中台系统 二、集成…

【feature selection】特征选择学习笔记

文章目录 1. 什么是特征选择2. 特征选择与特征提取的区别3. 特征选择的方法3.1 Filtering过滤法3.2 Wrapper包装法3.3 Embedding嵌入法 4. 特征选择示例4.1 方差选择法示例4.2 递归特征消除法示例 1. 什么是特征选择 特征选择是特征工程的内容, 其目标是寻找最优特征子集。剔除…

暴雨“彩虹”行业大模型加速器平台全新发布

近日,在第七届数字中国建设峰会期间,暴雨信息全新发布“彩虹”行业大模型加速器平台,聚焦于为客户降本增效减负,将海量通用数据与行业特有数据融合,专注于流程工艺的智能化改进,因地制宜深挖业务需求&#…

图像上下文学习|多模态基础模型中的多镜头情境学习

【原文】众所周知,大型语言模型在小样本上下文学习(ICL)方面非常有效。多模态基础模型的最新进展实现了前所未有的长上下文窗口,为探索其执行 ICL 的能力提供了机会,并提供了更多演示示例。在这项工作中,我…

【论文速读】GPT-1:Improving Language Understanding by Generative Pre-Training

摘要 自然语言理解包括广泛的不同的任务,如文本隐含、问题回答、语义相似性评估和文档分类。虽然大量的未标记文本语料库非常丰富,但用于学习这些特定任务的标记数据非常稀缺,这使得经过区别训练的模型要充分执行任务具有挑战性。我们证明&a…

mongoengine,一个非常实用的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个超酷的 Python 库 - mongoengine。 Github地址:https://github.com/MongoEngine/mongoengine 在现代应用程序开发中,NoSQL数据库因其灵活性和高性能而广受欢迎。MongoD…

基于Android Studio图书管理,图书借阅系统

目录 项目介绍 图片展示 运行环境 获取方式 项目介绍 用户 书架:搜索书籍,查看书籍,借阅书籍,收藏书籍,借阅书籍必须在一个月之内还书; 我的:可以修改密码,退出登录&#xff…

M功能-支付平台(三)

target:离开柬埔寨倒计时-221day 前言 今天周六,但是在柬埔寨还是工作日,想着国内的朋友开始休周末就羡慕呀,记不清在这边过了多少个周六了,多到我已经习惯了。而且今天技术部还停电了,真的是热的受不了呀…

网络安全的重要组成部分:数据库审计

数据库审计(简称DBAudit)以安全事件为中心,以全面审计和精确审计为基础,实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。它通过对用户访问数据…

MCU复位电路

【单片机复位电路,巧妙的RC无处不在。】https://www.bilibili.com/video/BV1XW4y1571r?vd_source3cc3c07b09206097d0d8b0aefdf07958 左侧的RESET引脚正常情况下是低电平,是高电平复位;右侧的RESET引脚正常情况下是高电平,是低电…

刷代码随想录有感(77):回溯算法——含有重复元素的全排列

题干&#xff1a; 代码&#xff1a; class Solution { public:vector<int> tmp;vector<vector<int>> res;void backtracking(vector<int> nums, vector<int> used){if(tmp.size() nums.size()){res.push_back(tmp);return;}sort(nums.begin(),…

第十六节:带你梳理Vue2: 生命周期与钩子函数

前沿: 通过前面几节的学习&#xff0c;我们已经对vue有了初步的了解&#xff0c;大致了解了vue可以帮我们干什么&#xff0c; 那么接下来我们就来看看vue的生命周期和它常用的钩子函数, 1. 理解生命周期的含义 生命周期&#xff1a;就是一个组件从实例化创建并添加到DOM树开…

每日5题Day8 - LeetCode 36 - 40

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;36. 有效的数独 - 力扣&#xff08;LeetCode&#xff09; 题目要求我们进行判断&#xff0c;我们不需要自己填写&#xff0c;所以要一个标志位&#xff0c;来看当…

MySQL 存储过程(实验报告)

一、实验名称&#xff1a; 存储过程 二、实验日期&#xff1a; 2024 年5 月 25 日 三、实验目的&#xff1a; 掌握MySQL存储过程的创建及调用&#xff1b; 四、实验用的仪器和材料&#xff1a; 硬件&#xff1a;PC电脑一台&#xff1b; 配置&#xff1a;内存&#xff0…

外卖霸王餐返利外卖会员卡小程序开发

外卖霸王餐返利外卖会员卡小程序开发 "社交电商赋能下的外卖返利小程序"是专为商家与用户双赢而设计的创新平台。 以下是其开发方案的详细步骤&#xff1a; 一、需求梳理&#xff1a;首先&#xff0c;我们需要明确小程序的核心功能和特色。包括设定活动类型、返利…

7款好用到离谱的神级App推荐!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 转眼间&#xff0c;2024年已经是下个月。最近有很多小伙伴的咨询&#xff0c;我也赶紧整理了7款好用的软件&#xff0c;希望对大家有所帮助。 …

Spring MVC/Web

1.Spring MVC 的介绍 Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;也是Spring框架的一部分。它提供了灵活可扩展的MVC架构&#xff0c;方便开发者构建高性能的Web应用程序&#xff0c;并与 Spring 生态系统无缝集成。 2.MVC 设计模式 MVC&#xff08;Model…

【静态分析】在springboot使用太阿(Tai-e)01

参考&#xff1a;使用太阿&#xff08;Tai-e&#xff09;进行静态代码安全分析&#xff08;spring-boot篇一&#xff09; - 先知社区 ---------------------------------------------------------------------- 由于spring-boot实现了控制反转与面向切面编程的设计思想&#x…