ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

脑电(EEG)信号预处理全流程详解:从滤波、重参考到ICA去伪影

脑电(EEG)信号预处理全流程详解:从滤波、重参考到ICA去伪影 脑电EEG信号预处理这关几乎每个做脑机接口、认知神经科学或者睡眠研究的人都会卡一下。网上的流程总结很多但真正动手处理自己的数据时你会发现教程永远不会告诉你那些最细碎的问题为什么滤波之后波形突然变得怪怪的为什么ICA跑完眼电还在换了个参考电极结果差异怎么这么大这篇内容就把“脑电信号及相关信号的预处理过程”从头到尾捋一遍先用最直白的方式讲清楚脑电到底是什么再按照一个常规脑电数据处理项目从采集到预处理的所有关键节点逐步拆解最后把实操中容易踩的坑单独列出来希望对第一次系统接触脑电数据处理的你有点帮助。1. 先从根源理解脑电信号1.1 脑电信号是怎么产生的脑电信号本质上是大脑皮层大量神经元同步放电后在头皮表面形成的电位变化。具体来说单个神经元放电产生的电流太小经过颅骨和头皮这些低导电率的组织衰减之后根本到不了电极表面。能被头皮电极记录到的主要是锥体细胞顶树突产生的突触后电位而且必须成千上万个神经元在时间和空间上同步活动形成局部场电位才能在头皮上形成可以检测到的电位差。这个过程有点像操场上几千个人同时喊口号你站在很远的地方也能听见整齐的声音如果各喊各的声音就淹没在环境噪声里了。这也是脑电记录最基本的一个特点它反映的是群体神经活动的同步性而不是单个神经元的活动。明白了这个机制就会理解脑电信号的两个先天特点。第一幅度非常小正常成人头皮脑电的波幅一般在10到100微伏之间比心电信号小两三个数量级跟环境中各种电磁噪声相比甚至更微弱。第二它是从颅外“隔空”记录到的空间分辨率自然很有限头皮的容积导体效应会把相邻脑区的活动混淆在一起。处理脑电数据的时候心里始终要绷着一根弦你拿到的每一个通道的波形都不是某个脑区活动的干净副本而是多个源在头皮上叠加之后的结果预处理做得不好这些叠加关系还会进一步被扭曲。1.2 频段分类不同节律背后的生理意义做脑电分析绕不开频段这个概念。传统上把脑电按频率划分为几个主要节律每个频段都有比较典型的生理状态关联虽然现在很多研究已经不再死板地按频段走但频段依然是理解脑电信号最方便的抓手。Delta波0.5到4Hz在成人清醒状态下很少出现大量出现一般见于深度睡眠或者某些病理状态比如脑外伤、代谢性脑病。Theta波4到8Hz在困倦、冥想、记忆编码等状态下会增强儿童脑电里theta成分通常比成人更明显。Alpha波8到13Hz是最经典的节律清醒、安静、闭眼的时候在枕区最突出睁眼或者开始思考任务的时候会被抑制这个现象叫alpha阻滞。Beta波13到30Hz与警觉、注意、主动思考、运动执行等状态关系密切额区和中央区比较常见。Gamma波30Hz以上幅值非常小容易混入肌电伪迹通常跟跨脑区的信息整合、感知绑定这些高级过程有关但处理难度也最大。有一点必须提醒频段边界并不是绝对的金科玉律不同的分析软件、不同的文献会有细微差别。比如有的研究把theta定义到3.5到7.5Hz有的用4到8Hz。关键在于你的预处理流程和分析目的一致并且清楚自己关心的节律在哪个频率范围这会影响后面滤波参数的设定。你不能前面按8到13Hz找alpha后面滤波却把12Hz以上的成分都压掉了这种低级错误在初学者的流程里真的很常见。1.3 为什么脑电信号这么难处理脑电信号难处理根源在于它是非平稳、非线性、低信噪比的生理信号。非平稳意味着统计特性随时间变化睁眼闭眼、注意力波动、疲劳程度都会让脑电的幅值和频率成分发生明显改变所以不能用处理稳态工程信号那种“一招鲜”的思路来套。低信噪比意味着目标信号可能比伪迹小很多尤其在做事件相关电位分析时单个trial里的P300或者N400波幅只有几微伏一个明显的眨眼伪迹就有几百微伏如果不做预处理目标信号完全被淹没。另外脑电信号是典型的多元信号几十个通道之间存在强相关这种相关性既是噪声来源也可以被用来做去噪。比如眼电伪迹在额叶通道最明显会通过容积导体扩散到全头肌电伪迹主要影响颞区和枕区外侧的通道。正因为通道之间有这种空间分布规律我们才能用后面要讲的重参考、ICA、坏导插值等手段去处理。理解这一点很重要预处理不是在每个通道上孤立地对波形做整形而是要充分利用多通道的空间信息来区分“神经源”和“伪迹源”。这也是为什么我强烈不建议一上来就套模板跑代码先搞懂信号的产生机制和干扰来源预处理参数才调得明白。2. 采集环节就在决定预处理的上限2.1 导联系统与电极安装很多人处理数据时不关心采集端的情况其实预处理效果的上限早在戴电极帽的那一刻就定下来了。脑电导联系统最常用的是国际10-20系统及其扩展系统相邻电极之间的距离是颅骨前后或左右总长的10%或20%这样不管头型大小电极位置都保持相对一致的标准。常见的导联有Fz、Cz、Pz、F3/F4、C3/C4、P3/P4、O1/O2这些每个字母对应大脑的一个分区F是额叶C是中央区P是顶叶O是枕叶T是颞叶奇数在左侧偶数在右侧z代表中线位置。电极类型上传统湿电极需要打导电膏接触阻抗可以降到比较低的水平信号质量高但准备时间长受试者体验一般。干电极或者半干电极佩戴方便适合快速穿戴但电极与头皮之间的接触阻抗更容易波动运动伪迹也更多。我的经验是如果实验对数据质量要求高比如做ERP或者高频gamma分析尽量用湿电极系统如果是做情绪识别、疲劳监测这类相对粗粒度的分析干电极也能接受但预处理时对坏导和漂移的处理要更激进一点。电极安装时最容易忽视的是每个电极的接触阻抗一致性。现在多数放大器在采集前都能显示每个通道的阻抗值理想情况下所有通道都应该降到5千欧以下而且尽量保持一致。如果某个通道阻抗特别高它记录到的信号会明显偏小噪声偏大还容易漂移这种通道在预处理时往往要被标记为坏导。另外电极帽戴好后要检查有没有电极贴合不良尤其是颞骨附近和枕骨隆突附近这几个位置天然容易松动是后期伪迹的重灾区。2.2 参考电极、采样率与放大器的关键参数参考电极是整个脑电记录里一个容易被低估的环节。所谓脑电信号本质上都是某个电极相对参考电极的电位差所以参考电极的选择会直接改变所有通道的波形形态。常见的参考方式包括单极导联头皮电极对参考电极、双极导联两个头皮电极之间和平均参考所有通道的平均值作为参考。采集系统一般默认用某个参考点比如Cz参考、耳垂参考或者乳突参考但要注意采集阶段确定的参考只是一个初始状态只要记录方式允许后期在预处理阶段是可以通过软件重参考的。这给数据处理带来了很大的灵活性也意味着你完全不用在采集现场纠结“到底用哪个参考最好”把数据采回来再说。采样率的设置要考虑奈奎斯特采样定理采样率至少是目标信号最高频率的两倍否则会发生混叠。如果只关心40Hz以下的脑电节律250Hz采样率理论上是够的但实际操作时我一般至少用500Hz做gamma频段或高频事件相关电位时会直接用1000Hz以上。原因很简单采样率越高时间分辨率越高后续做事件相关电位峰值锁时越准确而且如果事先没有充分抗混叠滤波高频噪声折叠到低频段会产生很难处理的伪迹。另外高采样率也方便后期对数据进行降采样但反过来如果你采集的时候采样率就不够后期是补不回来的。放大器方面要看两个参数输入阻抗和共模抑制比CMRR。输入阻抗越高对电极接触阻抗的变化越不敏感信号越稳定CMRR越高对工频干扰这类共模噪声的抑制能力越强。做脑电实验之前最好检查一下放大器的这两个参数如果CMRR偏低50Hz工频干扰会非常顽固预处理阶段怎么陷波都难受。采集环境中还要尽量避开电源插座、显示器、手机等设备这些都会引入额外的电磁干扰处理起来比生理伪迹更棘手。2.3 哪些伪影会在采集时混进来脑电伪影主要分两类生理性伪影和非生理性伪影。生理性伪影中最常见的是眼电伪影包括眨眼和眼动。眨眼时眼球的垂直运动会在额叶前部产生一个幅度很大、持续时间约200到400毫秒的尖峰状信号由于容积导体效应这个信号会向全脑扩散只是幅度逐渐衰减。眼动则主要产生低频的漂移型电位改变对额叶通道影响尤其明显。肌电伪影来自头颈部肌肉活动比如咬牙、皱眉、吞咽、说话频率范围很宽主要集中在20Hz以上会污染高频段分析。心电伪影在少数受试者身上也会出现表现为与心跳同步的周期性尖峰通常在颈部或颞部电极更明显。非生理性伪影包括50Hz工频干扰、电极接触不良导致的漂移、导线摆动造成的运动伪迹、以及设备内部噪声等。工频干扰的特征非常明显在频谱40到60Hz之间会出现一个尖锐的峰国内是50Hz国外部分地区是60Hz这个通过陷波滤波器可以压掉但不建议完全依赖陷波更好的做法是采集时做好屏蔽和接地从源头上减少工频耦合。电极漂移表现为基线的缓慢上下起伏通常是电极与头皮接触状态发生变化或者导电膏慢慢干涸导致的用高通滤波可以去除但如果漂移幅度太大说明采集现场可能已经无法挽救数据质量会大打折扣。我在处理数据之前一定会先做一件事把原始数据的每个通道波形从头到尾快速浏览一遍分段标记出明显异常的时间区间。这比直接跑预处理流程要重要得多因为很多伪迹是有“个性”的算法未必能识别出所有异常但人眼在浏览波形时可以快速发现明显的接触不良、大幅漂移、突发噪声等问题提前把这些问题记录在案后面设置剔除标准时会非常有底气。3. 预处理全流程的完整拆解3.1 数据导入、预检与坏导标记预处理的第一步是数据导入。不同采集设备导出的数据格式五花八门国内常见的设备有BP、EGI、NeuroScan、ANT等各自有专有格式好在开源工具基本都做了兼容。以Python生态中最常用的MNE-Python为例读取NeuroScan的CNT文件用mne.io.read_raw_egi或者read_raw_cnt读取EEGLAB的.set文件用read_raw_eeglab读取BDF格式用read_raw_bdf这些函数都会自动带上电极位置信息前提是数据文件本身包含这些元数据。如果设备没有导出电极坐标就需要手动添加一个标准10-20坐标模板后面做ICA和地形图才方便。预检阶段要做的事情包括查看数据时长、通道列表、采样率、事件标记以及每个通道的波形概况。MNE里raw.plot()可以直接弹出交互式波形窗口raw.compute_psd()可以看各通道的功率谱这一步能很快发现明显的坏导和整体噪声水平。所谓坏导一般是指波形明显平坦、幅度特别小、噪声特别大、或者跟周围通道波形形态完全不同。我的习惯是先在交互窗口里记录下有问题的通道序号然后结合统计指标来确认。比如计算每个通道的方差或峰峰值如果一个通道的峰峰值明显高于或低于其他通道就值得警惕。坏导的处理方式有两种直接剔除或者插值。如果只是个别通道有问题而且后续分析必须用完整通道数比如做源定位可以用相邻通道的加权平均来插值修复MNE里raw.copy().interpolate_bads()就是做这个的。如果坏导太多超过总通道数的10%到20%我会倾向于直接剔除整个通道因为插值太多会让数据变得“假”后面的统计分析也会受到扭曲。这里有一个容易被忽略的点坏导插值应该在滤波和重参考之前还是之后我一般建议在初步滤波之后、重参考之前做因为滤波可以先去掉一部分高频噪声让坏导的识别更准确而重参考是对所有通道的线性变换插值后的通道如果参与了平均参考计算会把插值误差扩散到其他通道。3.2 滤波方案怎么定滤波是脑电预处理中最频繁被误用的环节。滤波器的基本原理是让目标频段的信号通过衰减其他频段但现实中的滤波器不是理想矩形窗口会在通带边缘产生过渡带和波纹过度滤波会导致波形畸变、相位偏移、甚至制造出原本不存在的“假波”。所以滤波方案的设计原则是能少滤就少滤能选择零相位滤波就尽量避免相位偏移。高通滤波器主要用于去除基线漂移和极低频噪声。做ERP分析时通常使用0.1到1Hz的高通具体数值取决于目标成分。比如研究慢波如CNV时高通截止频率就要设低一些甚至用0.01Hz否则慢波成分会被滤掉如果只关心P300这种相对快速的成分0.5Hz高通并没有太大问题。低通滤波器用于去除高频噪声和肌电伪迹一般在40到50Hz之间但同样要看分析目标如果做gamma频段分析低通截止频率至少要放到80到100Hz甚至不设低通。陷波滤波器专门针对工频干扰50Hz陷波可以消除特定频率的尖峰但代价是也会损失50Hz附近的真实脑电信号所以如果后续分析涉及alpha波段8到13Hz或者beta波段陷波的影响不大但如果是研究高频成分就要慎用。在MNE-Python里滤波的典型写法是这样的import mne raw mne.io.read_raw_cnt(data.cnt, preloadTrue) # 先做高通和低通滤波使用零相位的FIR滤波 raw_filtered raw.copy().filter(l_freq0.5, h_freq40, fir_designfirwin)这里l_freq0.5就是高通截止频率h_freq40是低通截止频率fir_designfirwin表示使用FIR滤波器。MNE默认的滤波方式是零相位也就是以正反两个方向分别滤波再叠加这样不会造成相位偏移。但要注意滤波的计算量会随数据长度和采样率上升如果数据量特别大可以先降采样再做滤波但降采样之前一定要先做低通滤波否则会发生混叠。我见过很多初学者在滤波上反复横跳先0.5到40Hz滤一遍觉得波形不够干净又改成0.5到30Hz发现波形变了再换0.1到50Hz来回折腾。实际上每次滤波都会改变数据反复滤波等于在原始信号上叠加了多次滤波器响应波形畸变会越来越严重。正确的做法是先确定分析目标和目标频段一次设定好合理的滤波参数然后在整个分析流程中保持一致不要中途反复修改。3.3 重参考的取舍重参考是脑电预处理中一个很有“门道”的步骤。由于脑电记录总是相对的同一段数据使用不同的参考得到的波形甚至结论都可能不同。比如Cz参考会让所有通道都带有Cz点的活动而Cz在中央区活动通常比较强这会明显改变其他通道的波形形态耳垂参考或乳突参考相对“安静”一些但左右耳垂活动不对称时也会引入偏置平均参考则假设全头电极空间分布均匀所有通道对参考的贡献相互抵消在通道覆盖均匀且数量足够多时是一种比较稳健的选择。实际选择时要看研究的传统和具体问题。很多ERP研究偏好用平均参考或双侧乳突平均参考因为这样不会偏向某一个脑区。但平均参考在通道数量少比如只有8导、覆盖不完整时并不理想因为“平均”本身会被少数活跃通道主导反而引入系统性偏差。源定位研究通常也建议平均参考或参考电极标准化技术REST而一些特殊的分析比如针对颞叶内侧的研究可能用同侧耳垂参考更好。我的建议是如果条件允许可以在预处理时用不同的参考方式各处理一遍看看关键结论是否稳健如果结论对参考极其敏感那就说明你的结论本身需要打问号。在MNE里重参考非常简单一行代码搞定# 把所有通道重参考到平均值 raw_filtered.set_eeg_reference(average)这里有一个细节默认情况下set_eeg_reference会把当前参考通常是采集时设置的参考通道从数据中剔除所以如果采集时用了某个通道作参考重参考后这个通道就不再作为有效通道了需要明确处理。另外如果后续要做ICA我建议先做重参考再做ICA因为ICA对参考电极的选取也有敏感性使用平均参考可以让ICA分解出来的成分在空间分布上更稳定。3.4 去伪影从阈值法到ICA去伪影是整个预处理流程里最考验经验的部分。最简单的方法是阈值法设定一个幅值标准超过这个标准的trial直接剔除。比如ERP分析时如果某个trial在某个通道的峰峰值超过100微伏就认为它含有明显的伪影直接丢掉。这种方法简单粗暴适合处理大幅度的眨眼和运动伪迹但对小幅度的渐进式伪影无能为力而且如果剔除率过高会显著减少有效trial数影响信噪比。更精细的方法是回归法也就是用眼电通道的信号作为参考估计眼电对每个脑电通道的影响系数然后从脑电通道中减去这部分预测信号。这种方法对眨眼和眼动比较有效但前提是有独立的眼电通道而且它假设眼电对脑电的影响是线性且时不变的实际情况要复杂一些。现在更受推荐的是独立成分分析ICA。ICA的核心思想比较直观既然脑电是多通道记录而不同源神经活动、眨眼、眼动、心电、肌电在空间上是混合在一起的ICA就试图把它们分离成相互独立的成分。每个成分有各自的头皮分布地形图和时间序列你只需要识别并剔除那些对应伪迹的成分剩下的成分重组后就是相对干净的脑电信号。ICA使用起来有几个关键点第一进行ICA前最好先经过高通滤波和坏导处理高通截止频率建议在1Hz左右因为ICA对低频漂移和大幅基线偏移很敏感这些慢变化会被分解成若干个成分让后续识别变得混乱。第二ICA的输入通道数要足够多一般建议至少16导以上通道太少分解不稳定。第三识别伪迹成分不能完全靠自动算法需要用目视检查。眨眼成分的特征非常典型地形图集中在额叶前部时间序列上有明显的间断性尖峰脉冲功率谱能量集中在低频。心电成分则地形图分布在心电方向上时间序列与心跳频率同步。肌电成分的地形图分散在头颈边缘频谱宽且以高频为主。MNE里做ICA的流程大概是这样的from mne.preprocessing import ICA # 先对数据进行1Hz高通方便ICA分解 ica_raw raw_filtered.copy().filter(l_freq1, h_freqNone) ica ICA(n_components20, methodfastica, random_state42) ica.fit(ica_raw) # 查看成分人工识别伪迹成分 ica.plot_components() ica.plot_sources(raw_filtered) # 假设成分0和1被识别为眼动和眨眼 ica.exclude [0, 1] # 应用ICA去伪迹 raw_clean ica.apply(raw_filtered.copy())这里n_components可以根据通道数和数据质量调整一般设为通道数的80%左右。random_state固定一个值是为了让分解结果可重复否则每次运行ICA结果都可能略有差异这在科研中是不可接受的。识别伪迹成分时我个人的习惯是先看地形图优先排除额叶分布、时间序列上呈尖峰脉冲的成分然后再看频谱排除那些低频能量异常高的成分。这个环节不能赶时间一个经验不足的人可能把真实的神经成分当成伪迹剔掉那就得不偿失了。3.5 分段、基线校正与最终质检完成滤波、重参考、去伪影之后就到了分段阶段。事件相关分析需要把连续数据切成以事件标记为中心的小段也就是epoch。分段的参数包括tmin事件前时间和tmax事件后时间以及是否做基线校正。基线校正通常用事件前一段时间比如-200到0毫秒的平均值作为基线从epoch中减掉这样可以消除各trial之间的直流偏置差异让ERP波形在零点对齐。这个步骤在连续数据上不做不行因为脑电每一段的绝对幅值会有缓慢漂移不做基线校正叠加平均出来的波形会出现整体上下偏移峰值测量就会出错。epoch之后还需要做一次自动化的伪迹剔除因为ICA和滤波只能去掉一部分伪迹剩下的、尤其是那些在特定trial里出现的异常值需要用更严格的标准筛掉。常见的方法包括绝对幅值阈值比如任一通道超过正负100微伏就剔除、峰值到峰值阈值比如峰峰值超过150微伏就剔除、以及基于梯度或方差的标准。在MNE中可以用epochs.drop_bad(reject{eeg: 150e-6})这样的方式实现这里的单位是伏特所以要写成微伏的负指数形式初学者经常在这里搞错单位。最终质检是整个流程里最容易被跳过但最重要的环节。我会至少做三件事第一画出预处理前后的各通道波形和频谱对比图确认伪迹确实被去除了同时没有把正常的神经信号也滤掉第二统计被剔除的trial比例如果剔除率超过20%要回溯检查采集阶段是否有系统性干扰而不是盲目调大阈值第三用全脑ERP图查看各个通道的叠加平均波形是否符合预期的地形分布。一个常见的错误是只盯着某个关键通道看结果其他通道还残留大量伪迹却浑然不知最后做出的地形图一片“脏”。4. 预处理实操中的高频问题排查4.1 滤波之后波形畸变怎么办滤波后波形出现畸变最常见的原因是滤波器设计不当或者过度滤波。一个典型现象是滤波后的ERP波形出现“振铃”也就是在成分峰值前后出现周期性波动这通常是因为高通截止频率设得太高或者滤波器的阶数太高导致瞬时响应出现过冲。另一个典型现象是波形被整得太平滑高频细节完全消失这是因为低通截止频率设置过低把真实的高频神经活动也一并滤除了。排查思路是先用一个宽频带滤波比如0.1到100Hz快速查看原始数据的基本形态再根据目标成分的频带逐步收窄滤波范围每次改动后对比波形变化。如果发现波形对滤波参数极其敏感说明信号本身的信噪比可能不够高这时候与其反复调滤波不如回头检查坏导、伪迹剔除和采集质量。我在实际项目中遇到过一种情况某个通道的波形在30到40Hz之间存在持续的高频振荡怎么滤波都压不掉后来发现是电极导线贴得太近产生了局部振荡处理完电极帽重新采集才解决。滤波还有一个容易被忽略的坑滤波器的边界效应。因为滤波本质上是卷积运算在数据开头和结尾会产生不稳定的输出。MNE的零相位滤波会自动处理一部分边界问题但如果你分段后再对每个epoch滤波边界效应就会出现在每个epoch的起止位置污染事件前基线。解决办法是先对连续数据滤波再分段而不是先分段后滤波。4.2 ICA去眼电总是去不干净ICA去眼电去不干净要从几个方向排查。先看ICA分解的质量如果成分数量太少或者数据里有大幅漂移眼电信号可能被拆成多个成分只剔除一两个自然不够。这种情况下可以先把高通截止频率从0.5Hz提高到1或2Hz让漂移减少后再做ICA同时把n_components适当增大给分解算法更多自由度。再看识别是否准确。眨眼和眼动是两种不同的伪迹眨眼对应的时间序列是尖峰状的眼动对应的则是低频的阶梯状变化它们往往分解成不同成分。如果只剔除了眨眼成分眼动成分还留在数据里额叶通道的基线还是会随着受试者视线移动而波动。正确做法是逐一检查ICA成分把所有地形图集中在额叶前部、时间序列与眨眼或眼动模式一致的成分都纳入排除列表。还有一类情况是ICA在数学上没能把眼电和神经成分完全分离。ICA假设各源之间是线性瞬时混合且相互独立的但真实的脑电混合可能存在延迟和非线性所以ICA并不能做到100%完美分离。如果研究对额叶通道的纯净度要求极高可以考虑在ICA之前先用回归法或阈值法把大幅眨眼去除一部分再用ICA处理残余伪迹多级去噪结合往往效果更好。最后如果数据本身眼电伪迹太严重剔除率会很高这时不要硬撑直接标记该受试者的数据为不可用并在报告中说明剔除标准这是完全合理的处理方式。4.3 参考电极不同导致结果差异明显如果你用不同的参考电极处理同一批数据得到的ERP波形差异明显先不要急着下结论这本身可能是一个重要的发现也可能提示你的数据本身有问题。出现这种情况的常见原因有三个一是事件相关成分本身分布很广不同参考对成分的幅度和极性都有影响比如经典的N400成分在平均参考下和耳垂参考下的分布就有差别二是通道覆盖不完整某个关键的活跃源没有被充分采样导致平均参考产生偏差三是某个参考通道本身质量差比如采集时乳突参考电极接触不良那么整个数据都被这个坏参考污染了。作为项目负责人我会在分析方案里明确写下参考电极的选择依据并且在报告中报告不同参考条件下的对比结果这是审稿人很看重的一点。如果时间允许我会用两种参考方式分别跑完全流程看关键指标的结论是否一致。如果结论只在某一种参考下成立我会认为这个结论不够稳健需要进一步验证。另外要特别注意重参考之后通道数是否发生了变化有些工具在重参考时会把原参考通道剔除如果之后没有统一处理就会影响后续所有分析。4.4 伪迹判定阈值怎么定才合理伪迹判定阈值没有统一标准但可以从数据本身出发寻找依据。一个实用的方法是先画出所有trial的峰峰值分布直方图观察它的形态。如果大部分trial集中在某个区间少数trial拖出长尾那长尾的部分就是明显的异常trial阈值可以设在尾部开始的位置。比如大多数trial峰峰值在60到80微伏之间少数达到200微伏直接设100到120微伏就很合理不需要生搬硬套文献里的固定值。但阈值也不能完全跟着数据走否则容易出现“把数据洗到想要的样子”的问题。我的做法是在预处理方案中预先写清楚判定规则比如“任一通道在事件前基线至事件后800毫秒内峰峰值超过120微伏则剔除”然后用统一的规则处理所有受试者。如果个别受试者剔除率异常高我会单独标记并在筛查报表中说明而不会为了保留数据去单独放宽阈值。这样做的原因是如果每个受试者用不同的阈值最终统计学差异可能只是来自阈值的差异而不是真实的脑电差异。还有一个经验之谈对自动剔除后的数据一定要再人工浏览一遍重点检查那些边缘通过的trial。有些trial虽然在幅值上没有超标但频谱上存在持续的高频噪声或者基线在事件前已经漂移得很厉害这些都是自动阈值看不出来的问题。花二十分钟浏览一遍数据可能比多跑十次自动算法更有价值。脑电预处理从来不是一道有唯一正确答案的工序它的核心目标是在保留真实神经活动的同时尽可能干净地移除各种伪迹并且让整个处理过程可复现、可解释。你在项目里记录下的每一个参数不管是滤波频率、参考方式还是ICA成分的剔除规则到最后都会成为研究报告里最有说服力的部分。根据我个人的经验预处理阶段多投入一小时后面的统计分析和结果解释就能省下十倍的时间。
返回列表