0001 function regress_out_eog_from_eeg(p)
0002
0003
0004
0005
0006
0007 disp(mfilename);
0008
0009
0010 Nfile = length(p.file_list);
0011 prefix = 'r_';
0012 load_spec.ChannelName = {'EOG1', 'EOG2'};
0013 ch_eeg = 1:63;
0014
0015
0016 eog_all = [];
0017 eeg_all = [];
0018 for file=1:Nfile
0019
0020 trial_file = fullfile(p.proj_root, p.eeg_dirname, p.trial_dirname, [p.file_list{file} '.eeg.mat']);
0021 eog = vb_load_meg_data(trial_file, load_spec);
0022 for tr = 1:size(eog, 3)
0023 eog_all = [eog_all, eog(:,:,tr)];
0024 end
0025
0026
0027 load(trial_file, 'eeg_data')
0028 for tr = 1:size(eeg_data, 3)
0029 eeg_all = [eeg_all, eeg_data(ch_eeg,:,tr)];
0030 end
0031 end
0032
0033
0034 w = zeros(length(ch_eeg), size(eog_all, 1)+1);
0035 for ch = ch_eeg
0036 w(ch, :) = vb_multiple_regression(eog_all, eeg_all(ch, :));
0037 end
0038
0039
0040 for file = 1:Nfile
0041
0042 trial_file = fullfile(p.proj_root, p.eeg_dirname, p.trial_dirname, [p.file_list{file} '.eeg.mat']);
0043 eog = vb_load_meg_data(trial_file, load_spec);
0044
0045
0046 load(trial_file, 'eeg_data')
0047 for tr = 1:size(eeg_data,3)
0048 for ch = ch_eeg
0049 peeg = vb_pre_multiple_regression(eog(:, :, tr), w(ch, :));
0050 eeg_data(ch, :, tr) = eeg_data(ch, :, tr)-peeg;
0051 end
0052 end
0053
0054
0055 new_trial_file = fullfile(p.proj_root, p.eeg_dirname, p.trial_dirname, [prefix p.file_list{file} '.eeg.mat']);
0056 copyfile(trial_file, new_trial_file);
0057 vb_save(new_trial_file, 'eeg_data');
0058 end
0059