运动想象 EEG 信号分析

基于运动想象的公开数据集:Data set IVa (BCI Competition III)1
数据描述参考前文:https://blog.csdn.net/qq_43811536/article/details/134224005?spm=1001.2014.3001.5501

本文使用公开数据集 Data set IVa 中的部分被试数据,数据已公开可以从网盘获取:
链接:https://pan.quark.cn/s/5425ee5918f4
提取码:hJFz


目录

  • 1. 实验介绍
  • 2. EEG 信号分析
    • 2.1 EEG 的时域特征
    • 2.2 EEG 的频域/时频特征
      • 2.2.1 频域特征
      • 2.2.2 时频特征
    • 2.3 EEG 的空域(电极位置)特征
  • 3. 分析代码


1. 实验介绍

本任务的实验数据来自一名健康受试者,代号al。受试者在视觉提示出现后3.5s内完成以下3个运动想象中的一个:(L)左手,(R)右手,(F)右脚。分类任务中的数据只包括了右手和右脚两类,共280个试次。实验过程中使用脑电帽记录了118个通道的EEG信号,电极位置如图1所示。采集到的EEG信号首先经过带通滤波(0.05-200Hz),再经过数字化和下采样,得到采样率为100Hz的信号。

在这里插入图片描述

图1 电极位置

2. EEG 信号分析

2.1 EEG 的时域特征

我们首先绘制EEG的时域图,图2(a)和图2(b)分别展示了10个通道和所有通道10s内的信号,可以观察到EEG信号的随机性较强。

在这里插入图片描述

(a)                                                                  (b)
图2 EEG时域波形。(a)10个通道的EEG。(b)所有通道的EEG。

2.2 EEG 的频域/时频特征

2.2.1 频域特征

EEG信号是随机信号,通常使用功率谱描述其频域特征。我们截取了100s的EEG信号,使用welch算法估计其功率谱,结果如图3所示。图4则将功率谱按照各电极的位置进行了排列。可以看出:(1)10Hz左右具有明显的峰值,即alpah波;(2)相邻通道的功率谱具有较高的一致性;(3)不同脑区的功率谱具有较大的差异,Alpha波主要出现在枕叶和顶叶区域。

在这里插入图片描述

图3 所有通道的功率谱

在这里插入图片描述

图4 功率谱按电极位置排列

2.2.2 时频特征

EEG信号具有非平稳的特点,因此需要同时考虑时域和频域。这里,为了更加精细地观察,我们对提示出现后0.5s至3.5s的信号进行分析,并将频率范围限制在12Hz至28Hz。使用Morlet小波变换进行时频域分析,得到的结果如图5所示。可以看出,频率变化在13Hz左右较明显,且枕叶的变化尤为明显。
在这里插入图片描述

图5 EEG时频分析结果图

2.3 EEG 的空域(电极位置)特征

进一步,我们从空域的角度分析EEG,计算两次运动想象期间的功率谱并绘制了5个典型频段的功率谱密度拓扑图,如图6所示。

在这里插入图片描述

图6 功率谱密度拓扑图。每一行代表一次事件,每一列代表一个频段

3. 分析代码

  • 主要使用Python的MNE包进行分析
  • MNE Tutorials 官网:https://mne.tools/stable/auto_tutorials/index.html
  • 部分变量说明:
    • raw:由 mne.io.RawArray() 函数创建,代表原始EEG数据
    • epochs:由 mne.Epochs() 函数创建,代表一个事件(event)对应的所有数据,在该数据集中一个事件即 “右手”或者“脚”的想象运动
# time domain
raw.crop(tmax=100)
# plot electrode position
plt.figure(figsize=(4,6))
raw.plot_sensors(title='Channel positions')
plt.savefig('Results\sensors.png')
plt.show()# plot raw eeg data
plt.figure(figsize=(4,6))
raw.plot(n_channels=10, scalings='auto', title='Raw EEG Signals')
plt.show()plt.figure(figsize=(4,6))
raw.plot(n_channels=118,scalings='auto', title='Raw EEG Signals')
plt.show()================== plot frequency spectrum
raw.compute_psd().plot()
plt.tight_layout()
plt.savefig('Results\spectrum.png')
plt.show()
raw.compute_psd().plot_topo(color="k", fig_facecolor="w", axis_facecolor="w")
plt.tight_layout()
plt.savefig('Results\spectrum_all.png')
plt.show()============================ plot time-frequency features
freqs = np.logspace(*np.log10([12, 28]), num=8)
n_cycles = freqs / 2.0  # different number of cycle per frequency
power, itc = mne.time_frequency.tfr_morlet(epochs,freqs=freqs,n_cycles=n_cycles,use_fft=True,return_itc=True,decim=3,n_jobs=None,
)
power.plot_joint(baseline=(0, 0.5), mode="mean", tmin=0, tmax=3.5,timefreqs=[(0.5, 13), (1, 13),(2.8, 13)]
)
plt.show()epochs[right_id].compute_psd().plot_topomap(ch_type="eeg", agg_fun=np.mean, normalize=True)
plt.savefig(r'Results\right_compute_psd_plot_topomap.png')
plt.show()
epochs[foot_id].compute_psd().plot_topomap(ch_type="eeg", agg_fun=np.mean, normalize=True)
plt.savefig(r'Results\foot_compute_psdplot_topomap.png')
plt.show()

  1. https://bbci.de/competition/iii/desc_IVa.html ↩︎

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

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

相关文章

C#在.NET Windows窗体应用中使用LINQtoSQL

目录 一、新建Windows窗体应用并添加LINQtoSQL类 二、错误信息CS0234 三、添加扩展包让Windows窗体应用支持LINQtoSQL类 默认安装的背景下,新建的Windows窗体应用是不支持LINQtoSQL类的。现象是资源管理器里的依赖项中默认的安装不能自动生成支持system.data.lin…

如何在Python爬虫中使用IP代理以避免反爬虫机制

目录 前言 一、IP代理的使用 1. 什么是IP代理? 2. 如何获取IP代理? 3. 如何使用IP代理? 4. 如何避免IP代理失效? 5. 代理IP的匿名性 二、代码示例 总结 前言 在进行爬虫时,我们很容易会遇到反爬虫机制。网站…

Linux-源码安装go

使用go 1.14 版本 #wget https://golang.org/dl/go1.14.15.linux-amd64.tar.gz #tar zxvf go1.14.15.linux-amd64.tar.gz #mv go /usr/local/ #vim /etc/profile export GOROOT/usr/local/go export GOBIN$GOROOT/bin export GOPKG$GOROOT/pkg/tool/linux_amd64 export GO…

JS操作字符串常见方法

目录 一:前言 二:常见的内置方法 1、charAt与charCodeAt 2、indexOf与lastIndexOf 3、substring与substr 4、toLowerCase 和 toUpperCase 5、slice 6、replace 7、split 8、concat 9、trim 10、trimStart / trimLeft 11、trimEnd / trimRigh…

flutter开发报错The instance member ‘widget‘ can‘t be accessed in an initializer

文章目录 问题描述问题原因解决方法 问题描述 The instance member ‘widget’ can’t be accessed in an initializer. 问题原因 “The instance member ‘widget’ can’t be accessed in an initializer” 错误是因为在初始化器列表中(constructor initializer…

[ACTF2020 新生赛]Upload 1

题目环境: 仍旧是文件上传漏洞 这道题和上一道大差不差、大同小异、这里不再赘述。 [极客大挑战 2019]Upload 1:https://blog.csdn.net/m0_73734159/article/details/134267317?spm1001.2014.3001.5501 区别在于本题需要在抓包数据里面改文件后缀&#…

2023年11月5日网规考试备忘

早上题目回忆: pki体系 ipsec,交换安全(流量抑制) aohdlc bob metclaf —ethernet pon tcp三次握手 OSPF lsa?交换机组ospf配置问题,ping网关可通,AB不通 raid6 300G*8 网络利用率 停等协议10…

【踩坑专栏】禁止kafka自带的日志

在测试kafka的时候&#xff0c;有很多kafka自带的debug和info日志&#xff0c;需要禁止掉。 方法[1]如下&#xff1a; 在resource文件夹下&#xff0c;新增一个logback.xml文件。 内容如下&#xff1a; <configuration scan"true" scanPeriod"10 seconds&q…

《009.Springboot+vue之进销存管理系统》

《009.Springbootvue之进销存管理系统》 项目简介 [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;DEA jdk1.8 Maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatisredis; 前台&#xff1a;vueElementUI; [2]功能模块展示&#xff1a; 1.用户管…

亚马逊合规,亚马逊涉及12个站点合规政策更新,需警惕合规要求!

最近&#xff0c;许多亚马逊站点的卖家陆续收到了合规政策更新的通知邮件&#xff0c;涵盖了美国站、加拿大站、英国站、法国站、意大利站、德国站以及西班牙站。 这些更新影响了不同品类的卖家&#xff0c;包括以下品类&#xff1a; 美国站&#xff08;US&#xff09;对于“发…

基于UNI-APP实现适配器并保证适配器和实现的调用一致

概述 前端功能的实现是基于不同的环境采用不同的实现方式的。一种是企业微信小程序&#xff0c;需要基于企业微信框架实现。一种是移动APP&#xff0c;需要基于uni-app的中底层实现。为了调用方便&#xff0c;需要将两种实现统一在一种适配器中&#xff0c;调用者只需要指定环…

【Linux】:文件系统

文件系统 一.认识硬件-磁盘1.磁盘的物理构成2.磁盘的存储构成3.逻辑结构 二.文件系统 文件内容属性&#xff0c;前面我们所说的文件操作都是针对以打开的文件&#xff0c;那么未打开的文件呢&#xff1f;当然是在磁盘上储存着&#xff0c;接下来谈谈它是如何储存的。 一.认识硬…

JavaEE平台技术——MyBatis

JavaEE平台技术——MyBatis 1. 对象关系映射框架——Hibernate、MyBatis2. 对象关系模型映射3. MyBatis的实现机制4. MyBatis的XML定义5. Spring事务 在观看这个之前&#xff0c;大家请查阅前序内容。 &#x1f600;JavaEE的渊源 &#x1f600;&#x1f600;JavaEE平台技术——…

个性化联邦学习-综述

介绍阅读的三篇个性化联邦学习的经典综述文章 Three Approaches for Personalization with Applications to Federated Learning 论文地址 文章的主要内容 介绍了用户聚类&#xff0c;数据插值&#xff0c;模型插值三种个性化联邦学习的方法。 用户聚类&#xff1a; 目的&a…

智能井盖传感器助力建设数字化城市

在推进智慧城市建设过程中&#xff0c;多个城市在打造数字化管理平台&#xff0c;因为通过科学技术手段统一管理城市各种基础设施建设&#xff0c;可以缓解传统人工不足所导致的执法困难的问题&#xff0c;而且可以方便城市管理及时响应。在智慧城市建设过程中&#xff0c;城市…

计算机视觉

目录 一、图像处理 main denoise 二、Harris角点检测 三、Hough变换直线检测 四、直方图显著性检测 五、人脸识别 六、kmeans import 函数 kmeanstext 七、神经网络 常用函数&#xff1a; imread----------读取图像 imshow---------显示图像 rgb2hsv---------RGB转…

【慢SQL性能优化】 一条SQL的生命周期 | 京东物流技术团队

一、 一条简单SQL在MySQL执行过程 一张简单的图说明下&#xff0c;MySQL架构有哪些组件和组建间关系&#xff0c;接下来给大家用SQL语句分析 例如如下SQL语句 SELECT department_id FROM employee WHERE name Lucy AND age > 18 GROUP BY department_id其中name为索引&a…

基于MindAR实现WebAR人脸识别追踪功能

前言 调研 AR SDKValueARKitARKit 是一个移动端 AR 平台&#xff0c;用于在 iOS 上开发增强现实 app&#xff1b;SLAM场景识别、SLAM场景识别、刻度估量、基本边界的垂直和水平面检测、快速稳定的动作捕捉、多重人脸追踪、多人会话、同步前置、后置摄像头ARCoreARCore 是 Goo…

合肥工业大学操作系统实验5

✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :hfut实验课设 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!没有人会关心你付出过多少…

算法训练 第六周

二、二叉树的中序遍历 本题给我们了一个二叉树&#xff0c;要求我们以中序遍历的方式输出它的值。 1.递归法 使用递归的方式来模拟遍历二叉树的过程&#xff0c;按照左头右的顺序进行&#xff0c;递归终止条件为遇到空节点&#xff0c;具体代码如下&#xff1a; /*** Defini…