ICA假设伪迹和ERP拥有相互独立的时程,但实际当你拿到数据以后就会发现,这个假设并不总是成立。如果实验中某个条件特别容易引起眼动,那么该条件所诱发的成分就和眼动伪迹的时程相关。下图的信号就通过算法被衰减了,而这些信号可能是你需要分析的。
关于伪迹的种类和来源这里就不多说了,推荐阅读:陈锐: EEG信号伪迹来源及可能原因分析 陈锐: 脑电分析之眼电纠正 尽管通过叠加平均,我们可以把淹没在背景EEG中的ERP提取出来,但需要知道的是,噪音的降低是与叠加trial数的平方根 成正比。也就是说,你需要增加四倍的trial数,才能将噪音降低一半。所以,仅仅通过增加trial数是无法完全过滤所有伪迹的。
一般来说,对于伪迹有两种处理方法:要么就删除,要么就修正。前文提到的ICA正是属于修正,而本篇主要分享的是如何删除。
ps:下面分享的操作,均是对分段且基线校正后的数据进行处理。示例所介绍的处理方法仅为我们团队常用的操作。针对下文提到的HEOG、VEOG阈值,不同研究甚至不同实验室的标准也存在差异,请结合自己具体的研究确定,切勿当成唯一的处理标准 。
示例采用双极通道记录眼电,HEOG_left是ch17,HEOG_right是ch46,两者相减作为HEOG。VEOG则是用Fp1(ch1)与眼睛下方1cm的电极VEOG_down(ch41)相减所得。
%Creat Bip-Channels EEG = pop_eegchanoperator(EEG, {'ch65 = ch17 - ch46 label HEOG' , 'ch66 = ch1 - ch41 label VEOG' }) eeglab redraw;
一. 眼电伪迹
或者具体点说,叫根据眼动的方向,分为垂直眼动(眨眼)和水平眼动(眼跳)。处理的方法有两种:
以VEOG为例,第一种方法是使用ERP-lab中的Step函数对每个trial的HEOG进行检测(250ms的时间窗,30ms的步长),如果某一trial的HEOG电压偏移超过设定的阈值(±30μV),就标记该trial。然后使用EEG-lab自带的reject epochs函数将所有标记的trial都删除。代码如下:
EEG= pop_artstep(EEG, 'Twindow' , [ - 200 999 ], 'Threshold' , [30 ], 'Windowsize' , 250 , 'Windowstep' , 30 , 'Channel' ,65 , 'Flag' , 1 )%Saccade EEG= pop_artstep(EEG, 'Twindow' , [ - 200 999 ], 'Threshold' , [30 ], 'Windowsize' , 250 , 'Windowstep' , 30 , 'Channel' ,66 , 'Flag' , 1 ) EEG = pop_rejepoch(EEG, [EEG.epoch.eventflag], 0 )
在GUI执行如下命令也能完成上述操作。
ERPLAB > Artifact detection in epoched data > Step-like artifacts上述Step函数所执行的操作就是,从-200到50ms开始,然后往前移30ms,从-170到80ms,以此类推进行窗口的移动。然后用相邻两个窗口的平均电压相减,求得若干个电压差值,再与阈值进行比较来决定是否标记为伪迹。
Step-function对于眼电检测还是比较敏感的,尤其是使用双极通道 。
根据Steven. J. Luck的表述,当眨眼发生时,眼睛上下方位点的电极极性将翻转,此时上下电压的数值相减的差值最大,更容易在和阈值对比时决定某个trial是否应该被排除。而对于水平眼跳也是同样的道理,眼睛往左看时,HEOG_left产生正电偏移,HEOG_right产生负电偏移,通过双极记录就能很好地检测这一种偏移。
另一个比较常用的是ERP-lab中的Moving Window Peak-to-Peak函数。这个函数通过对比时间窗内最大电压和最小电压之间的差异(peak to peak),并将这个差异值与我们提前设定好的阈值进行比较,超过该阈值就排除。以HEOG为例(眨眼阈值为±50μV),一般来说,HEOG的信号都会相对比较平稳,但由于眼跳的pattern比较独特,所以在伪迹检测中很容易被发现。其代码如下:
%Blink EEG = pop_artmwppth( EEG , 'Channel' , 65 , 'Flag' , 1 , 'Threshold' , 50 , 'Twindow' , [ - 200 999 ], 'Windowsize' , 150 , 'Windowstep' , 30 ); EEG = pop_rejepoch(EEG, [EEG.epoch.eventflag], 0 )
GUI中也可以通过如下操作执行上述命令。
ERPLAB > Artifact detection in epoched data > Moving window peak-to-peak threshold二. 肌电伪迹
处理方法同上述一致,选择任意一种函数,对所有电极进行±80μV的检测,超过这一阈值的就删除。
%Muscle movement for over all channels nchan = [1 :64 ] EEG=pop_artstep(EEG, 'Twindow' , [0 600 ], 'Threshold' , [80 ], 'Windowsize' , 150 , 'Windowstep' , 30 , 'Channel' ,nchan, 'Flag' , 1 ) EEG = pop_rejepoch(EEG, [EEG.epoch.eventflag], 0 )
更多关于ERP-lab的伪迹检测函数可访问:github.com/lucklab/erpl
写在最后
总的来说,对伪迹进行删除还是修正完全取决于你的研究和数据。我试过做完ICA数据变得更好,也试过做完ICA之后结果变得更加复杂,难以解释。换句话说,只要你的数据结果显示出你预测的pattern,其它噪音即使存在也不是什么不可接受的事,未必非要用ICA去校正所有的伪迹。当然,过多地对包含伪迹的trial进行删除也会造成实验条件缺乏足够的试次,导致数据失真。
参考文献
Kiss, M., Jolicœur, P., Dell'Acqua, R., & Eimer, M. (2008). Attentional capture by visual singletons is mediated by top‐down task set: New evidence from the N2pc component.Psychophysiology ,45 (6), 1013-1024. Lopez-Calderon, J., & Luck, S. J. (2014). ERPLAB: an open-source toolbox for the analysis of event-related potentials.Frontiers in human neuroscience ,8 , 213. Luck, S. J. (2005). An introduction to the event-related potential technique: Cognitive neuroscience. Woodman, G. F., & Luck, S. J. (2003). Serial deployment of attention during visual search.Journal of Experimental Psychology: Human Perception and Performance ,29 (1), 121. 本文内容来源知乎作者授权转载,文章仅供学习使用,不用于商业行为,若有侵权及疑问,请后台留言!
赞赏小编
Make brain technology more simple!
推荐阅读:
《 脑电信号分析之滤波 》
《 独立成分分析(ICA) 》
《 EEGLAB脑电数据预处理指导手册 》
继续阅读