MATLAB中EEGLAB超详细新手教程(也是个人学习笔记)[1] 前言EEGLAB 是运行在 MATLAB 上的开源脑电EEG数据处理工具箱也是脑电研究中最常用的软件之一。本教程面向零基础新手使用 EEGLAB 自带的示例数据eeglab_data.set手把手带你走完一整套 EEG 预处理流程导入 → 校验 → 删除坏通道 → 重参考 → 滤波 → ICA → ICLabel去伪迹 → 保存教程中每个步骤都分为详细解释和具体操作两部分——想看原理可以全读只想跟着操作可以直接看具体操作。文中截图均来自笔者实际操作过程如有差异欢迎评论区交流。第一步打开EEGLAB打开MATLAB后输入eeglab回车后即可打开EEGLAB第二步导入数据点击上方工具栏 File 》Load existing DataBase双击eeglab_data.set导入数据注eeglab_data.set是官方自带的一个数据可以直接拿来练手导入成功界面如下第三步校验数据检查数据完整性一、查看基础数据在代码框中输入EEG回车后得到此数据的信息主要查看四样信息nbchan通道总数srate采样率单位 Hzpnts总数据点数数据总时长 pnts /srate秒chanlocs如果是结构体数组说明电极位置已加载如果是空数组就是加载失败。判断标准nbchan通道数、srate采样率应该和你实验采集时的设置一致我们用的别人的数据这个可以先不管pnts总数据点数应该和你测得的时长是一样的如果你处理过数据那应该和你导入的是一样的我们用的别人的数据这个也可以先不管chanloc可以简单理解为数组这个应该是结构体数组说明电极位置已加载如果是空数组就是加载失败。二、滚动查看原始时域波形点击上方工具栏 Plot 》Channel datascroll点击后跳出连续的时域波形图可以点击最下方的左右按钮去滚动查看波形判断标准正常脑电各通道波形连续起伏幅值大多在几十微伏级别整体有节律波动断路坏通道某一条通道是平直的直线或者完全是超大幅值的杂乱噪声和其他通道明显不同全通道噪声所有通道同时出现密集毛刺、超大工频干扰整体波形完全失真绝大多数通道波形连续正常仅存在少量坏通道属于可接受范围后续插值修复即可没有整段数据全通道报废、文件损坏的情况第四步预处理数据方便ICA一、删除坏通道点击Tools 》Reject data using Clean Rawdata and ASR会跳出如下界面关于这个界面的详细说明不想看直接看后面的操作Remove channel drift去除通道慢漂移自动做一次高通滤波去掉数据里的直流慢漂移。如果数据还没做过高通滤波就勾已经单独滤过波就别勾避免重复滤波。后面的0.25 0.75是 FIR 滤波器的过渡带默认值不用改。Process/remove channels坏通道自动检测与移除Only consider these channels只检测指定的通道Ignore these channels忽略指定通道Remove channel if it is flat for more than5seconds通道连续 5 秒都是平直直线可能是因为电极掉线、完全断路判定为坏通道并移除。Max acceptable high-frequency noise std dev4通道的高频噪声标准差超过 4 倍就判定为坏通道对应接触不良、全程肌电爆炸的通道。Min acceptable correlation with nearby chans0.8通道和周围相邻通道的信号相关性低于 0.8就判定为坏通道。正常脑电相邻通道信号是高度相关的坏通道以及断路通道的相关性会暴跌。Perform Artifact Subspace ReconstructionASR 伪迹子空间重建这是一个自动去大伪迹的算法处理突然爆发的剧烈伪迹。Max acceptable 0.5 second window std dev205 秒滑动窗口内信号标准差超过 20 倍就判定为坏数据段。中间这个黎曼距离选项是测试版功能不用勾Remove bad data periods勾上直接把判定的坏数据段删掉不钩的话会用 ASR 算法 “修复校正” 这段数据并不做删除处理。Additional removal of bad data periods额外坏段剔除作为 ASR 的补充用幅值维度再筛一遍坏段Acceptable channel RMS range -Inf 7通道信号的均方根幅值超过 7 倍标准差算异常通道。Maximum out-of-bound channels 25%某一时刻异常通道的数量如果超过总通道的25%就把这一整段时间的数据 “全段报废”直接删掉。Pop up scrolling data window...处理完成会自动弹出滚动波形窗口把被删掉的坏通道、坏段高亮标出来方便检查处理得合不合理。具体操作Remove channel drift如果数据还没做过高通滤波就勾已经单独滤过波就别勾避免重复滤波。至于后面的0.25 0.75是 FIR 滤波器的过渡带默认值不用改。我们这个是官方默认给的数据新手不知道做没做过可以先勾上就当练手顺便看看差别其他的不动直接点击OK即可。会跳出新的界面两个关于上面那个界面的详细说明不想看说明的可以直接跳到后面的具体操作这个弹窗是问处理完的数据怎么存。Name it可以改个名字方便区分原始数据。Save it as file将这个数据作为文件保存比如保存为我们一开始导入的.set文件。但是这个可以先不用勾等全部做完再统一保存。Overwrite it in memory不打勾的话就会新建一个数据集原始数据还内存里做错了可以回退勾上的话直接覆盖原来的原始数据没法反悔。具体操作Name it可以先改个名字保持统一我们就一起改成Data_CRnoASR然后点击ok此时主页面会变成这样关于那个波段界面说明与判断标准简单说蓝色是会保留的波段红色是会删除的波段。判断标准只要没有大段大量的通道被删即可。如图中横向看32通道删除2个通道属于很正常删除比例在5%左右就行有的时候10%也不是不能接受。纵向看有小部分截断全删除说明这段噪声影响有点大删除也能接受只要不是极多删除就OK。具体操作看一眼没问题叉掉就行如果你的有问题那我还真得去学一下再给你解答。二、重参考点击Tools 》Re-reference the data会跳出如下界面关于这个界面的详细说明不想看的话直接看后面的具体操作Current data reference state is: unknown表示当前数据的参考电极状态为 “未知”这说明原始数据没有标注参考电极信息或是还未做过重参考属于初始正常状态。Compute average reference计算平均参考作用将所有脑电通道的信号平均值作为公共参考电位每个通道的信号都减去这个全脑平均值。适用场绝大多数脑电研究、ICA 预处理、BCI 特征提取的标准选择兼容性最好、效果最稳定。Huber average ref. with threshold 25 uV作用带阈值的鲁棒平均参考。普通平均参考会被超大伪迹、极端噪声带偏这个选项会自动忽略幅值超过 25μV 的极端数据点再计算平均值。适用数据质量差、大伪迹很多、坏通道多担心极端值拉偏平均参考的时候使用数据质量好时没必要开启。Re-reference data to channel(s)作用手动指定某一个或某几个电极作为参考比如传统 ERP 研究常用的双侧乳突参考M1/M2、鼻尖参考。适用做传统 ERP 实验、需要和既往文献统一参考方式时使用。Interpolate removed channel(s)作用如果之前删除了坏通道勾选后会先把坏通道插值补全再参与平均参考的计算。适用已经删掉了坏通道但又希望平均参考基于全脑通道计算时使用。Retain ref. channel(s) in data作用将原始参考电极通道保留在数据中如果是单电极参考保留后这个通道会是一条平直线。只有选择 “指定通道参考” 时该选项才可用平均参考模式下为灰色不可选无需关注。Exclude channel indices (EMG, EOG)作用计算平均参考时排除指定的通道 不参与平均值计算。适用场景数据里包含肌电 (EMG)、眼电 (EOG)、心电 (ECG) 这类非脑电辅助电极时这些信号和脑电差异大参与平均会干扰结果需要填入通道编号排除。Add old ref. channel back to the data作用把原始数据的参考电极重新加回数据矩阵里。一般用于从单电极参考切换到其他参考方式的特殊场景。具体操作对于一步步跟下来的直接点击ok即可。如果数据噪声大或者想要分析其他方向建议好好看看详细说明再做抉择。点击ok后会跳出一个命名界面这里就不过多介绍了为了保持一致这里给他取名为Data_CRnoASR_Re点击ok得到如下界面。三、滤波点击Tools 》Filter the data 》Basic FIR filternewdefault点了之后会跳出这个界面关于Filter the data 的扩展不想看的直接跳过就行Basic FIR filter (new, default)定位新版默认标准滤波器。特点自动计算合适的滤波器阶数线性相位、波形失真小过渡带平滑不会引入明显伪影。适用场景99% 的常规脑电预处理、ICA 前置滤波、ERP/BCI 分析全适用。Windowed sinc FIR filter定位加窗 sinc 法设计的 FIR 滤波器。特点截止频率更 “锐利”过渡带更窄频率选择性更强。适用场景需要精准滤除某一特定频段、对截止边界要求极高的时候用。Parks-McClellan (equiripple) FIR filter定位等波纹最优 FIR 滤波器特点通带内更平坦阻带衰减更均匀同阶数下性能更好适用场景工程级高精度信号处理、特殊频段提取。Moving average FIR filter定位移动平均平滑滤波器。特点只做时域平滑能压掉高频毛刺但会严重模糊波形的时域细节。Basic FIR filter (legacy)定位老版本 EEGLAB 的经典 FIR 滤波器旧版eegfilt特点兼容十几年前的老流程、老脚本关于跳出界面的扩展不想看的直接跳过就行Lower edge of the frequency pass band (Hz)通带的下边界也就是高通滤波的截止频率做低通 / 陷波时留空。Higher edge of the frequency pass band (Hz)通带的上边界也就是低通滤波的截止频率做高通时留空。FIR Filter order滤波器阶数要求是偶数默认自动计算新手不用手动填自动生成的阶数兼顾效果和速度足够用。Notch filter the data instead of pass band勾选后切换为陷波带阻滤波器专门用来滤除 50Hz 工频干扰默认不勾是带通模式。Use minimum-phase converted causal filter最小相位因果滤波器绝对不要勾。它是非线性相位会扭曲脑电波形的时间信息直接破坏 ICA 分解和 ERP 潜伏期的准确性。Plot frequency response勾选后会自动画出滤波器的频率响应曲线直观看到滤波的通带、阻带效果建议保持勾选。Channel type(s) / channel labels只对指定通道做滤波默认全通道处理不用填。Use frequency domain filtering频域滤波滤波器阶数特别高2000时速度更快常规参数下不用勾。具体操作分三项1高通滤波在Lower edge of the frequency pass bandHz这一栏填写0.5其余不变点击ok即可。会跳出如下界面这个曲线图是正常的不用担心为此次操作取名为 Data_CRnoASR_Re_1点击OK2低通滤波再次调出刚才的界面在Higher edge of the frequency pass bandHz这一栏填写40其余不变点击ok即可。⚠️新手注意低通滤波截止频率通常设为40Hz或30Hz用于去除高频噪声。千万不要填成0.5Hz否则几乎所有脑电信号都会被错误滤除会跳出如下界面这个曲线图是正常的不用担心为此次操作取名为 Data_CRnoASR_Re_2点击OK3陷波滤波再次调出刚才的界面在Lower edge of the frequency pass bandHz这一栏填写48在Higher edge of the frequency pass bandHz这一栏填写52勾选Notch filter the data instead of pass band点击ok即可。会跳出如下界面这个图是正常的不用担心。为此次操作取名为 Data_CRnoASR_Re_3点击OK即可第五步ICA点击Tools 》 Decompose data by ICA跳出如下界面界面详细解释不想看跳过即可ICA algorithm to useICA 算法选择EEGLAB 提供了 3 种主流 ICA 算法默认选中的就是效果最稳、最通用的Extended Infomax (runica.m; default) 扩展信息最大化算法EEGLAB 的经典原生算法也是脑电领域用得最多的标准算法。开启扩展模式后能同时适配超高斯如尖峰状的眨眼伪迹和亚高斯分布的信号对眼电、肌电、心电等各类伪迹的分离效果最稳定。Robust Extended Infomax鲁棒增强版抗噪能力更强适合数据质量差、伪迹特别多的场景速度比标准版慢。SOBI基于时间结构的二阶盲辨识算法更适合提取有固定节律的信号常规伪迹去除不用它。Commandline options算法运行参数当前显示 extended, 1意思就是开启扩展 Infomax 模式。extended1 就是适配亚高斯 超高斯两种分布。Reorder components by variance按方差排序成分保持勾选勾选后ICA 分解出来的独立成分会按照 “解释信号方差的大小” 从大到小排序。一般眼电、肌电这类大伪迹方差最大会排在最前面脑电成分方差偏小排在后面。这样后续识别伪迹的时候直接从前几个开始看就行非常方便建议保持勾选。Use only channel type (s) or indices指定参与 ICA 的通道用来限定只让一部分通道参与 ICA 分解。适用场景数据里有眼电 (EOG)、心电 (ECG) 这类非脑电辅助电极不想让它们干扰分解就把它们排除出去。具体操作用的是同数据且一步一步跟下来的话直接点击ok即可如果不是建议看看详细说明在做进一步处理。ok后可能会跳出如下界面详细说明不想看跳过即可为什么会弹出这个窗口根源是之前做了全脑平均参考30 个通道的数据做完平均参考后所有通道的信号之和恒等于 0数据存在一层线性约束因此数据矩阵的有效独立维度秩会从 30 降为 29。ICA 最多只能分解出和数据秩相等数量的独立成分无法强行分解出 30 个因此 EEGLAB 自动检测到了这个情况给出了降维建议。具体操作这是正常提示不是报错什么都不用改直接点 OK 即可这是做平均参考后的标准现象。之后弹出这个界面详细解释不想看可以跳过告诉你ICA正在运行点击按钮会打断ICA的运行具体操作啥也不做等待ICA结束即此窗口突然消失即可结束后检查是否ICA成功检查ICA weights这一栏是否为Yes是的话就已经成功了点击 Plot 》 Channel Datascroll得到ICA后的波形图看看我的一不一样最后把跑完的ICA数据保存起来点击File 》 Save current dataset as跳出如下界面保持统一我们取名为Data_CRnoASR_Re_3_ICA然后点击保存即可。ICA 后续识别并去除伪迹成分ICLabel拿不准可以看我后续教程这里只写一小部分做完 ICA 之后最重要也最容易被新手忽略的一步用ICLabel自动标记每个独立成分的类型然后去除伪迹成分。操作步骤点击Tools → Classify components using ICLabel → Label componentsICLabel 会将每个成分自动分类为以下类别类别含义操作Brain脑电信号✅ 保留Eye眼电伪迹眨眼/眼动❌ 去除Muscle肌电伪迹❌ 去除Heart心电伪迹❌ 去除Line Noise工频噪声❌ 去除Channel Noise通道噪声❌ 去除Other其他⚠️ 视情况决定标记完成后点击Tools → Remove components from data选择要删除的成分通常选择标签为 Eye / Muscle / Heart / Line Noise / Channel Noise 且概率 80% 的成分确认移除。⚠️关键提示光跑 ICA 不去除伪迹等于白做这一步才是整个预处理流程的核心目的。总结核心流程必须记住导入 → 校验 → 删除坏通道 → 重参考 → 滤波 → ICA → ICLabel去伪迹 → 保存关键注意事项低通截止频率不要填错脑电通常用 40Hz千万不要填成 0.5Hz高通才用 0.5Hz。陷波滤波记得勾选 Notch filter否则填 48-52 会变成带通而非陷波。最小相位滤波器绝对不要勾会破坏 ICA 和 ERP 分析。做完平均参考后 ICA 会提示降维这是正常现象直接点 OK。ICA 之后一定要做 ICLabel光跑 ICA 不去除伪迹等于白做。这一步详情可以看后续每一步改个名字方便做错了回退不要覆盖原始数据。至于后续的时频分析、ERP 分析、统计分析等笔者还在学习中学会了再来更新 本教程基于 EEGLAB 官方示例数据编写适用于 EEGLAB 2026 。如有问题欢迎在评论区交流