EYE-EEG是可以联合分析脑电和眼动数据,可以让我们更好地去除眼动相关伪迹。单个数据的处理方法可以参考:
clear;clc;
%%
dataPath='F:\eeg_script\data\fixation';
Subjects = {'sub28', 'sub29', 'sub30','sub31', 'sub32', 'sub33', 'sub34', 'sub35'};
filePath={'eye','eeg'};
savePath = 'F:\Ye\eeg_script\outData\fixation\preSep';
%% 循环
for i = 1: length(Subjects)
sub = Subjects{i};
disp([sub,' preprocessing......'])
%% eeg和eye文件夹
eye_path=cell2mat(fullfile(dataPath,string(sub),filePath{1}));
eeg_path=cell2mat(fullfile(dataPath,string(sub),filePath{2}));
%% 导入原始脑电数据
% 这里导入的是NeuroScan的.cdt数据;不同的脑电文件请更换方法
eeg_data = dir(fullfile(eeg_path, '*.cdt'));
[ALLEEG EEG CURRENTSET ALLCOM] = eeglab;
EEG = loadcurry(fullfile(eeg_path, eeg_data.name), 'KeepTriggerChannel', 'True', 'CurryLocations', 'False');
EEG = eeg_checkset( EEG );
%% 将眼动数据添加到脑电中
% 基于EyeLink产生的眼动文件:使用EDF Converter把.edf文件转为.asc文件
% EDF Converter可以在EyeLink下载
eye_data = dir(fullfile(eye_path,'*.asc')); % 眼动原始文件
ET = parseeyelink(fullfile(eye_path, eye_data.name), fullfile(eye_path, 'eye.mat'), 'MYKEYWORD'); %%转为眼动文件数据格式
EEG = pop_importeyetracker(EEG,fullfile(eye_path, 'eye.mat'),[200 100] ,[1:7] ,{'TIME','L-GAZE-X','L-GAZE-Y','L-AREA','R-GAZE-X','R-GAZE-Y','R-AREA'},0,1,0,1,4); %添加哪些数据
EEG = eeg_checkset( EEG );
%% 根据眼动位置拒绝眼动数据;检测眼跳和注视,并添加到eeg的事件中
EEG = pop_rej_eyecontin(EEG,[69 70 72 73] ,[1 1 1 1] ,[1280 1024 1280 1024] ,100,2); % 选择眼动数据电极,不同数据的编号可以不同,注意更换;[1280 1024]代表分辨率
EEG = pop_detecteyemovements(EEG,[69 70] ,[72 73] ,6,4,0.030215,1,0,50,1,1,1,1); % 选择电极;计算视角;
EEG = eeg_checkset( EEG );
%% 滤波和重参考
EEG = applytochannels(EEG, [1:67] ,' pop_eegfiltnew(EEG, ''locutoff'',1,''plotfreqz'',1);');
EEG = applytochannels(EEG, [1:67] ,' pop_eegfiltnew(EEG, ''hicutoff'',30,''plotfreqz'',1);');
EEG = eeg_checkset( EEG );
EEG = pop_reref( EEG, [33 43] ); %这里选择的是M1和M2,注意要换成你需要的参考电极
EEG = eeg_checkset( EEG );
%% 剔除无用电极
EEG = pop_select( EEG, 'nochannel',{'HEO','VEO','TRIGGER','TIME'}); % 剔除眼电,注意按你的数据更换
EEG = eeg_checkset( EEG );
%% ICA和去眼动伪迹
EEG = pop_runica(EEG, 'icatype', 'runica', 'extended',1,'interrupt','on','pca',68); %选择多少通道跑ICA,注意根据你的数据更换
EEG = eeg_checkset( EEG );
[EEG vartable] = pop_eyetrackerica(EEG,'saccade','fixation',[10 0] ,1.1,3,1,1);
EEG = eeg_checkset( EEG );
% 剔除眼动数据电极
EEG = pop_select( EEG, 'nochannel',{'L-GAZE-X','L-GAZE-Y','L-AREA','R-GAZE-X','R-GAZE-Y','R-AREA'});
%% 保存数据
saveName = [sub, '.set'];
EEG = pop_saveset(EEG, 'filename',saveName,'filepath',savePath);
end
以上就是批处理脚本。还要强调一下,批处理前要跑一下单个被试。