2020第十七届华为杯数模C题——P300脑电信号数据预处理算法

news/2024/10/18 10:14:34/

脑电信号数据预处理

  这两天的数学建模选的C题,目标是要处理脑电P300信号的数据并进行相关预测任务。该题重点是数据预处理,因此根据最后实验的结果,分享相关的预处理方法以及源代码。长话短说,给出任务的简单描述、分析方法以及相关源代码。关于2020年第十七届华为杯研究生数学建模所有赛题可前往: (https://pan.baidu.com/s/19O9J_0tnWumMe47zqk3jMg ,提取码:xx3j),赛题解压码为

  任务描述:脑机接口是通过计算机检测人脑活动的系统,其通过对人体大脑各个通道检测脑电信号,通过脑电波来发现体态情况。通常医学领域内,检测的脑电信号可以用于分析患者的睡眠情况、身体康复等。现有通过脑机接口制作一个简单的实验。如果给与被试者一个适当的刺激,在一定时间的延时后脑电信号会产生一个波峰,产生的波峰的P300信号可以反应被试者的一些特征。如下图所示:

在这里插入图片描述
当给与一个刺激时,通常会在一定延时后产生一个P300电位,该电位在整个信号波中属于一个波峰。

在这里插入图片描述

  赛题C给定的实验背景是:提供了5个健康成年被试(S1-S5)的P300脑机接口实验数据,平均年龄为20岁。在实验的过程中,要求每一位被试(被测试者)集中注意力。P300脑机接口实验的设计如下:每位被试能够观察到一个由36个字符组成的字符矩阵,如图所示,字符矩阵以行或列为单位(共6行6列)。每轮实验的设计流程:首先,提示被试注视“目标字符”,例如在图3的字符矩阵上方,出现的灰色字符“A”;其次,进入字符矩阵的闪烁模式,每次以随机的顺序闪烁字符矩阵的一行或一列,闪烁时长为80毫秒,间隔为80毫秒;最后,当所有行和列均闪烁一次后,则结束一轮实验。在被试注视“目标字符”的过程中,当目标字符所在行或列闪烁时,脑电信号中会出现P300电位;而当其他行和列闪烁时,则不会出现P300电位。上述实验流程为1轮,共重复5轮。

  因此我们的任务目标是给定一组这样的信号波,来预测哪个波存在P300电位。具体的实验背景可参考附件的赛题C。

  数据描述:给定的一共有5个被试者,分别是S1、S2、S3、S4和S5,每个被试者所有数据分别放在对应的文件目录内,每个被试者有4个xlsx文件,分别对应训练集、测试集的脑电数据,和训练集、测试集的event文件,其中包含字符闪烁编号以及对应的采样点位置。
  对于训练集,一共有12个表单(sheet),每个表单中有20列,分别代表20个通道,相当于数据集的特征。每个表单中有3000多行,每一行代表依次采样,相邻两行采样时间间隔为4毫秒,行号代表采样点编号;
在这里插入图片描述

  对于event数据中,第一行(红色)两个数,分别表示目标字符以及其采样点起始行编号。第二行开始,第一列表示目标字符闪烁所在的行或列(1-6数值表示第1-6行,7-12数值表示第1-6列)。绿色表示一个轮次,相当于给定目标字符102,分别闪烁12行或列字符,重复这个过程5个轮次。
在这里插入图片描述
  预处理方法:因为每个轮次中只有两行或列,例如上图102字符对应的是第1行(1)和第2列(8),因此这两个数据是存在P300电位,而其他10行或列数据是不存在P300电位,因此我们将存在P300电位的数据标注为正样本,其他为负样本。
  另外,原始数据的各个通道值所在幅度范围不同,且存在大量的噪声,因此需要进行预处理,处理包括:
(1)数据截取:根据闪烁字符所对应采样点的位置开始,向后延迟一定时间,并截取固定窗口内的所有采样点。例如本文的预处理中,选择延迟100毫秒后开始截取窗口大小为400毫秒的数据,最终可形成 100 × 20 100\times 20 100×20 维度的矩阵。
(2)每一个特征的数据存在噪声,需要进行多阶段的离散小波变换(DWT)。小波通常指频率、波幅参差不一的波,小波变换的主要目标是对上下浮动参差不齐的信号波进行噪声过滤,形成尽可能平滑的数据,而过滤掉噪点。小波变换详解可参考:参考【1】和 参考【2】 。
(3)对于一个给定目标字符的条件下,由于每个被试者每个轮次内的数据一共有12个(12行列各闪烁一次),因此只有2个为正样本,10个为负样本,因此存在非均衡问题。根据相关文献提供的方法,我们使用叠加平均算法。简单描述为:对于某一轮次,在已知的12个sheet,共搜集24个正样本,120个负样本,为了和负样本数量相同,则额外需要增加96个正样本。每次随机从已有的正样本中挑选两个样本,并求和平均后添加进去,循环操作96次即可。
(4)由于各个通道的浮动范围不同,如第2通道的数据均在5070左右,而第14通道则在-398左右。因此还需要进行均方归一化,公式为:

x i j = x i j − x ˉ j σ j x_{ij} = \frac{x_{ij} - \bar{x}_j}{\sigma_j} xij=σjxijxˉj

其中 x i j x_{ij} xij 表示第 i i i 个采样点,第 j j j 个通道对应的值, j ˉ \bar{j} jˉ 表示所有采样点的第 j j j 个通道的均值, σ j \sigma_j σj 则为对应的方差。归一化后,所有值均在0上下范围内。

注:源代码目前属于参赛阶段,暂时隐藏,文章仅供参考,禁止转载与抄袭。


http://www.ppmy.cn/news/327731.html

相关文章

SUP-P300压力变送器SUP-P300

SUP-P300 SUP-P300 SUP-P300 SUP-P300 SUP-P300 主要技术参数: 量 程: 0-1~30m 测量介质: 各类水、重轻油、原油、酸碱等各类腐蚀性液体 精 度: 0.25%FS; 0.5%FS(一般为0.5%FS) 输 出: 4~20mADC 温 度: 环境温度0~60℃,介质…

基于卷积神经网络的P300脑机接口信号检测

参考文献《Convolutional Neural Networks for P300 Detection with Application to Brain-Computer Interface》; 论文下载地址:https://ieeexplore.ieee.org/document/5492691/ 本文主旨:通过CNN网络检测P300信号是否存在。贯穿全文的有两类CNN模型&…

P201-P300

P201:基本类型包装类概述 P202:Integer类的概述和使用 P203:int和String的相互转换 P205:自动装箱和拆箱 P206:Date类概述和构造方法 P207:Date类的常用方法 P208:SimpleDateFormat日期类 P213:异常概述 P214:JVM的默认处理方案 P215:异常处理之try…catch… P218:异常处理之th…

MATLAB编程之PTB:简单的P300脑电实验

为了验证设备的可靠性,编写了一个诱发脑电P300的odd-ball范式,因为采集信号的方式不同,可能打marker的方式也就不一样,所以我就把自己给串口发送trriger的代码省略了,有需要的话可以在下面的代码的基础上加上发送trrig…

DIY混合BCI刺激系统:SSVEP-P300 LED刺激

导读 这篇文章讨论了一种完全可定制芯片版LED设计,该设计可同时激发两个大脑反应(稳态视觉诱发电位--SSVEP和瞬态诱发电位--P300)。考虑到脑机接口(BCI)中可能的不同模式,SSVEP由于需要较少的脑电图(EEG)电极和最小的训练时间而被…

【信号处理】脑机接口P300信号处理(MATLAB实现)

一、研究背景和原理简介 为了实现对脑机接口系统的控制,受试者需要有意识地对自己的大脑信号进行控制,这些被动或主动的神经响应形成了不同的从而形成不同的脑电信号模式,主要分为下列两大类:诱发电位和对自发电位的控制。诱发电…

脑机接口应用和P300拼写器概述

一、概念简介 脑机接口(BCI)系统是神经技术领域的一个部分,它将人类大脑的指令传递给计算机,在目前的研究领域中,BCI是发展最快的领域。脑机接口的应用领域包括了医学、教育、神经工效学、游戏娱乐等多个方面&#xff…

P300数据集介绍

脑机接口中最常见也是用于入门的数据集是P300信号,它被应用于各种机器学习或深度学习算法实现分类或识别,目前最高分类正确率能达到99%以上。 1.详细介绍 P300事件相关电位 http://www.360doc.com/showweb.aspx?id972300708 2.P300信号的原理和特点 …