打maker,分段,提epoch的基本操作

您所在的位置:网站首页 eeglab数据预处理 打maker,分段,提epoch的基本操作

打maker,分段,提epoch的基本操作

2024-01-01 21:46| 来源: 网络整理| 查看: 265

对于脑电EEG数据,在进行功能连接计算之前,要充分做好预处理步骤。这里仅把打marker,分段,提epoch的基本操作做个笔记。

首先,打marker和events数量有关;分段和epoch数量有关(eeglab中可以看到相应信息);打完marker,分完段并且做好所有的预处理步骤后,就可以提epoch了,提epoch是为了对不同数据中的不同多个epoch取个统一数量(比如1.set有1010个epoch,2.set有990个epoch,3.set有880个epoch,就可以把这仨全部取成800个epoch,这样方便后面的功能连接计算),为了把这几个set文件变成规整数量的mat文件,注意这一步可以根据实验目的改变逻辑。

一、打marker

(1)导入1.set

(2)插入marker

【具体见如何利用EEGlab工具包在EEG数据中手动插入Marker? - 知乎】

命令行窗口依次输入 (每输入一句就回车)

1)cc=0:5:5154    % 表示从0到5154,差值为5的等差数列;5154是eeglab中显 示的epoch end(s)的信息  

2)ent=ones(length(cc).2)   % ent为length(cc)*2的矩阵,元素全为1

3)ent(:,1)=cc'    % 用cc的转置给ent矩阵的第一列赋值

4)save event.txt -ascii ent    % 保存了一个event.txt文件在当前目录

修改txt头部: 在第一列值得上面写latency,第二列上面写type(如下图);

 

导入txt: file-->import event info-->from Matlab array or ASCII file, 导入txt文件,左上角勾一下,下面的前两行改一下(如下图),设置好后点OK;

 

(3)保存为1.set

二、分段

打开eeglab,

tools-->extract epochs-->改一下值(比如10s一个trail,取每个Mark的前5s和后5s,改成-5,5)-->基线-->OK

三、提epoch

%% 取出第二组数据 clear clc path='D:\\01脑电项目\\..\\02高压氧\\02group2\\'; file={'before','20min','50min','after'}; [ALLEEG EEG CURRENTSET ALLCOM] = eeglab; for i=1:9 %% 9个被试文件夹 path_load=[path,num2str(i),'\\done']; % 注意在done文件夹里 for j=1:4 %% 4个时间点(before,20min,50min,after) name=[file{j},'.set']; EEG = pop_loadset(name,path_load); [ALLEEG, EEG, CURRENTSET] = eeg_store( ALLEEG, EEG, 0 ); savepath=['.\05 afterEpoch_me\group2\',file{j},'\epoch_']; for k=1:80 %% 每个.set数据提取80个epoch data=EEG.data(:,:,k); t=(i-1)*80+k; save([savepath,num2str(t),'.mat'],'data'); % load是set,save变mat end end end

以此代码的项目为例,load的数据是(1-9是九个被试文件夹,done是个文件夹,每个done里有四个预处理完的set文件)

 

执行完毕后,save的数据是

 会发现提epoch的过程中也把逻辑按照实验目的改了一下,把一开始按照被试分类变成了按照实验的时间点分类。

由于每个人提取了80个epoch,所以9个人的累加一共是720个epoch。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3