科研,思想(道)是首位,其次才是方法(手段)。在思想和方法都还欠缺的时候,一定要保持冷静和清醒,一步一步来。从简单的方法入手吧。
一、使用Brainstorm进行EEG源定位
导入数据后,源定位流程:脑电电极定位->计算头模->源估计->源分析
(1)脑电电极定位,选择标准后,记得查看电极位置;
(2)计算头模,这步时间比较长。计算完头模,一般数据已经进行过预处理,所以不进行噪声协方差矩阵的计算。
(3)进行源估计。
(4)进行源分析。
二、使用EEGLAB进行EEG处理
EEGLAB好的一点就是,可以通过写matlab调用。这里记录以下几个常用的函数以及用法。
(1)pop_eegplot( EEG ),查看脑电波形图。EEG是通过pop_loadset读出来的脑电数据,一般为结构体。
(2)pop_loadset([path]),导入set文件。如:
data = pop_loadset(['D:\2_chenfang_labs\brain_heart\1_subjects\s41.set']);
(3)pop_importevent(),打入marker到脑电数据中。如:
latency=max_loc';
latency=1000*latency;
type=char(zeros(length(max_loc),1)); % 清空数据
position=char(zeros(length(max_loc),1));
for i = 1:length(max_loc)
type(i,1) = 'P';
position(i,1)=1;
end
events_P = table(latency,type,position);
writetable(events_P,['PMarker.txt'],'Delimiter',' ','WriteRowNames',true)
%将Rmarker文件 打入EEG
eeg_31 = pop_importevent(eeg_31, 'event',['PMarker.txt'],'fields',{'latency' 'type' 'position'},'skipline',1,'timeunit',1E-3);
生成的Pmarker.txt
(4)pop_epoch(),根据打入的marker对数据进行分段。如:
% 根据峰值点的 [-1,5] 确定一个 epoch
eeg_epoP= pop_epoch( eeg_31_PT, {'P'}, [-0.5 6.5], 'newname', ' resampled pruned with ICA epochs', 'epochinfo', 'yes');% 下降段
其中,P是marker的名字,[-0.5 6.5]是时间,P对应的位置一致时0点。
(5)pop_saveset(),把处理好的结构体保存为set文件。如:
EEG3 = pop_saveset( eeg_avep, 'filename','down_ave.set','filepath','D:\\2_chenfang_labs\\brain_heart\\xsw_40subject_rest_precessed\\single_sub_ave\\set_files\\');
其中,eeg_avep是我自己处理好的结构体。
当不知道使用哪个函数进行处理以及怎么使用时,可以:
(1)第一种方法:matlab命令行输入:doc eeglab,可以找到EEGLAB的函数以及使用说明;
(2)第二种方法:在EEGLAB的操作页面,进行想要的操作之后,如下图,相应操作的代码就会生成。