小白入门脑电信号

news/2024/11/28 17:55:52/

是个脑电信号研究小白,今年3月下旬临时换了研究方向,到现在也看了不少论文,试过一些特征提取的代码还有分类的代码。现在也想总结一下这段时间所学的东西,算是做个中期回顾吧。

Ps:里面的特征提取的代码以及分类的代码均不是我所写的,后面会附上链接,可以直接去找链接,还有一些工具包,等会上传上去,应该是可以免费拿的,第一次弄,我还没怎么搞清楚。

Pps:这篇主要是汇总一些方法,还有代码链接等等。均适用于Matlab

No.1 脑电信号分析的大致流程

大致流程是:脑电信号采集,预处理,特征提取,特征筛选(我看有的文章并没有这一块,所以主要看自己吧),分类,得出结果进行分析。

 流程这一块大同小异,在脑电信号这一块大部分都是这个流程。

No.2 预处理

预处理这一块我就不做过多的详解了,我接触的不多,只是尝试过使用EMD以及EEMD做噪声剔除。

在预处理这一块,主要是剔除噪声和伪影,伪影包括眼动,肌动,心动等伪影,可以采用一些方法进行剔除,如我前面所讲的EMD和EEMD,还有PCA,ICA,ANOVA等也可以进行剔除,稍后我把EMD和EEMD的工具包上传,应该可以免费获取。

Ps:EEMD是EMD的进化,里面可以尽量避免模态混叠,但是感觉好像两者没啥太大的区别,但也有可能是我研究的这一块看起来没啥太大的区别。

我目前在网上以及文献里看到采用EMD和EEMD进行去噪去伪影的方法是,采用这些方法将原始信号分解成多个imf,随后对分解的imf进行相关性分析,得出相关系数,然后对所有的imf的相关系数求取std,随后将其设置为阈值进行筛选,大于阈值的留下,小于阈值的剔除。最后将筛选出来的imf进行重构(相加)得出一个新的信号,这个新的信号就是剔除噪声和伪影的信号。

附上链接:EEMD算法原理及应用_Zhi Zhao的博客-CSDN博客_eemd算法

No.3 特征提取

特征提取主要分为时域,频域,时频域,非线性动力学等。时域的特征有SSA(奇异值),ERP(事件相关电位)等,频域有PSD等,时频有小波变换,小波包变换等,非线性动力学特征有各种熵,比如模糊熵FuzzyEn,样本熵SaEn,近似熵ApEn,排列熵PEn等等。

附上链接1:非线性动力学特征的代码

关于熵的一个总结_人间不想清醒的博客-CSDN博客_matlab多尺度熵

【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第一篇)——“近似熵”及其MATLAB实现 - 知乎 (zhihu.com)

附上链接2:PSD的代码

数字信号中功率谱估计相关方法简介及MATLAB实现_cqfdcw的博客-CSDN博客_信号功率谱matlab

Ps: 可以直接用Welch法来计算功率谱密度

No.4 特征筛选

特征筛选就是将求取的特征进行相关性分析,将P<0.05的特征提取出来进行下一步分类的分析。因为统计学上认为P<0.05具有显著性差异,否则没有。相关性分析可以直接调用Matlab的函数corr。调用格式为

[R,p_value] = corr(data,'Type','spearman') %spearman可以替代为pearson或者Kendall,默认类型为pearson型

附上链接:matlab相关性分析(皮尔逊,肯德尔,斯皮尔曼) - 知乎 (zhihu.com)

No.5 分类

分类是我接触脑电信号研究的第一个模块,最先接触的分类器是SVM。目前感觉最好用的SVM是Libsvm,是一个工具包,稍后附上Libsvm下载的官网地址以及如何激活等。

当然分类器还有DT(决策树),RF(随机森林),KNN等。

分类主要分为机器学习和深度学习两大类

分类器
种类分类器
机器学习DT(决策树)
RF(随机森林)
SVM(支持向量机)
KNN(K近邻)
LDA(线性判别分析)
深度学习多层感知机
LSTM(长短期记忆网络)

各种神经网络

(卷积神经网络,循环神经网络等)

分类器就是首先将每个样本打上标签,标签自行定义。

随后将样本随机打乱分为test测试集和train训练集。分类器对训练集进行训练,得出一个模型,然后将test测试集放入到模型里进行测试,得出准确率。

分类一般分为二分类和多分类。二分类可以直接调用Matlab自带的函数。多分类则需要进行一定的更改,当然也可以不更改,比如RF,就可以直接调用Treebagger进行多分类。格式如下

%% all 随机森林模型
a_randomforest = TreeBagger(100, Traindata, Traindata_label,'Method','classification');
[a_randomforest_pred, outcome] = predict(a_randomforest, Testdata); % outcome 是概率输出% a_randomforest,a_randomforest_pred, Traindata, Traindata_label,Testdata为自行定义的名称,可根据自己喜好进行更改。
% a_randomforest:训练的模型
% a_randomforest_pred:预测的结果
% Traindata:训练的数据
% Traindata_label:训练数据的标签
% Testdata:测试的数据

附上链接:Libsvm的多分类代码示例以及Libsvm安装包如何安装的案例

SVM多分类问题 libsvm在matlab中的应用_lwwangfang的博客-CSDN博客_matlab svm多分类

LIBSVM在Matlab下的使用_xiaopihaierletian的博客-CSDN博客_libsvmread

Over!

先讲这些,后面又找到一些,学习完后,再进行归纳总结。

欢迎提问!


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

相关文章

信号

1. 定义 简而言之,信号是一种软件中断,提供了一种处理异步的方法,信号发生是随机的。例如键盘输入中断按键(^C),它的发生在程序执行过程中是不可预测的。 硬件异常也能产生信号,例如被零除、无效内存引用&am…

心电信号的特征提取、分析与处理

心电信号的特征提取、分析与处理* 数据来源:MIT-BIH数据库(可从以下数据中任选两组进行实验) 给出4组不同病例的心电信号数据,分别命名为“100-2-3”,“105-2-3”,“109-2-3”,“111-2-3”&…

脑电信号(EEG)简介:原理、应用与分析方法

目录 一、EEG基本原理 二、EEG的应用领域 1.临床应用 2.认知科学 3. 神经反馈治疗 三、EEG信号分析方法 1.预处理 2.时域分析 3.频域分析 4.时频分析 5.机器学习与深度学习 四、挑战与展望 1.挑战 2.展望 总结 参考文献 一、EEG基本原理 脑电信号,也称脑电图&#…

【肌电信号】基于matlab GUI肌电信号处理【含Matlab源码 966期】

⛄一、简介 肌电信号又称为EMG;EMG(electromyography)是一种生物电流信号,它产生于任意组织器官,一般是一种时间和一系列的振幅、频率和波形函数 。肌电信号是伴随肌肉收缩动作产生的一种生物电信号,采集皮肤表面的肌…

脑电信号情绪识别研究综述

摘要 情绪识别是指通过人的面部表情、行为动作或者生理信号等信息识别人的情绪状态,其成果在医疗辅助、教育、交通安全等方面有很大的应用价值。由于脑电信号的客观真实性等特点,使用脑电信号进行情绪识别研究受到国内外学者们的广泛关注。查阅了大量脑电情绪识别相关文献并进行…

【脑电信号】基于matlab小波变换脑电信号特征提取【含Matlab源码 511期】

⛄一、小波变换简介 小波变换是从20世纪80年代起逐渐发展成熟的一项数学应用技术,具有对时间—频率的双重分析和多分辨率分析能力,目前已经广泛应用于图像处理、模式识别等多个领域。小波变换的窗口大小固定但形状可改变,因此能够满足时域—…

心电信号采集原理及电路设计

心电测量搜索 1、心电记录电路设计(框图/波形以及信号放大器的选择)_纪客老白的博客-CSDN博客 2、心电信号检测电路设计与制作_weixin_30815427的博客-CSDN博客 3、心电电路算法滤波_简述心电信号采集原理及电路设计_weixin_39890629的博客-CSDN博客 4、关于ADS1292测心率心…

脑电信号分析

背景介绍 脑电一般指大脑皮层产生的连续节律性变化,广泛用于神经科学研究、临床诊断和治疗等领域。科研人员根据频率可以将脑电分为四种:α波、β波、θ波、δ波,不同的脑电波代表了人体不同的精神状态:当人们处于比较紧张的情况时…