VR康复训练之脑电部分(Matlab)

原理

在康复训练过程中给患者播放几段生活中的视频,在此同时对患者进行脑电信息采集,通过对脑电数据的分析,得出患者对哪些视频片段感兴趣,对此反复播放。

简述

界面

本程序有预处理界面和数据分析界面,都设计在一个界面上,采取隐藏其他界面组件的方式来实现

首先进行脑电数据预处理,因为在采集脑电数据的时候,会有很多噪音,产生伪迹,因此我们需要去除这些伪迹,然后才能对脑电数据进行分析,这样才更具有精确性

预处理
在打开程序会出现如下图界面
第一步:加载数据,把我们所需要的脑电数据导入到程序中去,这里我导入的是.EDF数据
第二步:输入我们想要截取的脑电数据的片段,即脑电数据时间段,因为在数据采集时,是提前采集的所以需要对脑电数据进行片段截取
第三步:添加或删除脑电通道,因为我们在对脑袋数据进行分析时,并不需要所有的通道,因此我们可以根据自己的需要添加通道,只需要在勾选复选框,然后点击添加通道即可,添加错误可以点击错误通道,点击删除通道即可
第四步:点击一键预处理按钮,对脑电数据进行一键预处理,或者点击右上角的第一个菜单栏,会显示预处理的一系列步骤,可以自行处理,同时也看以查看数据处理前和处理后的对比,如下第二张图显示

注:第二步、第三步顺序随机
在这里插入图片描述
在这里插入图片描述
数据分析
在这里要进行数据提取和分析的部分,我们要根据自己的需求,提取数据特征,然后对其进行分析,得出结论

点击左上角的第二个菜单栏,选择特征提取的算法,这里有PSD特征提取和DE特征提取 脑电信号特征提取算法介绍
在这里插入图片描述
在选择结束特征提取的算法之后,会使用这种算法对脑电信号尽心提取,最后形成一张均值图和方差图,中间的红线为平均值,距离平均值越远的,患者对这段视频的反应越敏感
在这里插入图片描述

部分代码

首先需要生成GUI界面,在命令行输入guide,选择blank gui生成新的界面,添加我们所需要的组件

设置全屏代码

set(0,'Units','pixels');   //将计算机屏幕的单位值设为像素
sc = get(0,'MonitorPosition');   //获取显示屏的分辨率
set(gcf,'Menubar', 'none');   //gcf为当前窗口,不显示当前窗口的菜单条 
set(gcf, 'Position',[sc(1)-1 sc(2)-1 sc(3) sc(4)]);  //设置当前窗口的位置

设置组件是否显示

set(handles.axes1,'visible','off');

导入文件

[filename pathname] = uigetfile('.EDF', '选择文件');
if ~filename   %如果没有打开文件
    return;
end;
str = [pathname filename];    //str为文件的路径名和文件名

保存.mat数据

save Filename;    //将工作空间中的所有变量保存到名为Filename的MAT文件中
save Filename x y z;   //将工作空间中的x、y、z等指定变量保存到名为Filename的MAT文件中
save Filename -regexp pat1 pat2; //将工作空间中符合表达式要求的变量保存到名为Filename的MAT文件中
save Filename x y z  -ASCII; //将工作空间中的x、y、z等指定变量保存到名为Filename的8位ASCII文件中

加载.mat数据

load Filename;   //将名为Filename的MAT文件中的所有变量加载到工作空间中
load Filename x y z; //将名为Filename的MAT文件中的x、y、z等指定变量加载到工作空间中
load Filename -regexp pat1 pat2;  //将名为Filename的MAT文件中符合表达式要求的变量加载到工作空间中
load Filename x y z  -ASCII; //将名为Filename的8位ASCII文件中的x、y、z等指定变量加载到工作空间中

将当前窗口保存为图片

saveas(gca, 'picture1', 'jpg');

设置复选框为空,0表示复选框未勾选,1表示勾选

set(handles.Fpz, 'Value',0);

MATLAB GUI表格(uitable)的增删操作
表格增删查改

load('newData.mat');     //加载newData数据
set('handles.uitable', 'Data', newData);  //把数据放入表格之中

生成零矩阵以及求绝对值

zeros(3,4) //按回车键生成了一个3行4列的零矩阵
abs(x);   //是去绝对值的函数

排序

sort(A);   //若A是向量不管是列还是行向量,默认都是对A进行升序排列。是默认的升序,而sort(A,'descend')是降序排序。若A是矩阵,默认对A的各列进行升序排列
sort(A,dim)   //dim=1时等效sort(A),dim=2时表示对A中的各行元素升序排列

求矩阵大小

disp(size(A));

其他文章:
Matlab plot用法总结

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值