我自己开发的一个针对EEG EMG数据自动化处理流程的使用说明。
该工具是针对txt格式的数据进行的处理,其中EEG和EMG数据混合在一起。并且该实验只有两个事件,a和b,数据格式如下:
1 | # MIX|None|0+True+胫骨前肌+1000|1+True+腓骨长肌+1000|2+True+腓肠肌内侧+1000|3+True+腓肠肌外侧+1000|4+True+股直肌+1000|5+True+股内侧肌+1000|6+True+股二头肌长头+1000|7+True+半腱肌+1000|8+False+胫骨前肌+1000|9+False+腓骨长肌+1000|10+False+肠肌内侧+1000|11+False+肠肌外侧+1000|12+False+EMG13+1000|13+False+EMG14+1000|14+False+EMG15+1000|15+False+EMG16+1000|0+True+P4+80|1+True+CP2+80|2+True+FC5+80|3+True+C3+80|4+True+P3+80|5+True+C2+80|6+True+FC6+80|7+True+C4+80|8+True+CP6+80|9+True+F3+80|10+True+FC2+80|11+True+FC1+80|12+True+F4+80|13+True+CP5+80|14+True+C1+80|15+True+CP1+80 |
其中第二行是打点信息。
为了能使得流程自动发现数据,数据依据如下存放格式
1 | ├─code_locs |
subj0, subj1分别表示数据采集源,将数据直接存在original文件夹下。
使用Matlab进行数据分析,并需要预先安装EEGLAB
dataBaseFolder
:该项指定了存储所有原始数据文件的根目录。在这个目录中,程序将会查找并加载包含脑电(EEG)和肌电(EMG)混合数据的 .txt 文件。avgDatasFolder
:该项指定了存储经过处理后的数据,特别是用于计算平均数据时存放结果的目录。所有经过清洗或处理后的数据将保存至此文件夹。startPoint
:指定了事件的起始点定位方式。isPeak
布尔值, 属性表示打点位置是否为信号的峰值(中间)。若为 true,则事件标记将位于信号的最中间峰值。Fs
:此项指定采样率,即每秒钟读取多少数据点。一般用于数据预处理步骤中。artifacts
:该部分指定了伪影(artifacts)的阈值,用于从数据中识别并去除无效的信号。每一类伪影均指定了其上限与下限,用于过滤符合条件的数据。lower_limit
:此伪影种类的下限值,用于过滤信号值小于此阈值的数据。upper_limit
:此伪影种类的上限值,用于过滤信号值大于此阈值的数据。运行main.m文件
共有五个功能:
点击该按钮会出现如下图形界面:
并且会展示,它所找到的第一个数据画出来图形:
输入窗口解释:
按钮解释:
点击小窗口里的 EEGLAB Preprocessing
按钮会自动查找切片好的数据,并导入EEGLAB,导入好的数据存储在subjx/set/beforeInterp
下面
然后回自动进行EEGLAB里的第一步,坏导插值
首先展示当前数据的波形图:
然后展示一个新的操作界面:
按钮解释:
插值过的set数据存储在subjx/set/afterInterp
目录下
上一步按下Done & save按钮之后,会自动进入到下一步执行ICA,并自动执行,跑完ICA的数据存储如下/subjx/set/afterICA/
执行完后回自动进行伪影标记阶段,出现如下图形窗口:
点击 Flag Artifacts会对数据进行伪影标记,其中这一步默认展示的阈值在前面的config文件里设置。
之后会出现新的弹窗:
该弹窗显示对哪些通道进行了标记,按钮解释如下:
去除伪影之后的数据存储位置如下:/subjx/set/afterArtifact
这一步是用来自动计算EEG和EMG数据的时频域分析,采用的是所有subject,/subjx/set/afterArtifact
下的所有set文件
采用Morlet小波进行小波连续变换,得到相关性矩阵。
算出来的结果在:rootDataDir/CMCresults_lowerLimb/subjx/
绘制相关性的图,绘制完成会自动保存,关闭,绘制下一个。绘制内容如下所示:
图片存储在:dataRootDir/CMCplots_lowerLimb/subjx
计算相关性的平均数据,并得出平均后的时频域图,一般执行这个步骤是因为上图显示的相关性太不均匀了。
要将要计算的mat数据存放在一起,一个文件夹下。
点击这个按钮会让你选择要计算平均的数据的目录。
执行出来的结果存放在你选择的目录下。