阶段一 · 打好地基 · 模块 2 · 第 3 课 / 共 28 课

EEGLAB 入门与数据导入(预处理·上)

把一份数据从硬盘上的 .edf 文件,变成 EEGLAB 里结构清晰、电极定位正确、参考明确的 EEG 结构体。这一步不"洗数据",但做错了后面全错。

🕐 60 分钟🎯 难度:入门✅ 前置:2.1 Matlab 基础

🎯 本节学习目标

  • 独立完成 EEGLAB 的下载、安装与启动排错
  • 掌握 EEGLAB 主界面的菜单逻辑与 EEG 结构体的关键字段
  • 会导入 .edf / .bdf / .set 格式数据,并核对采样率、通道数、时长
  • 会用滚动图(scroll plot)初查数据质量
  • 理解"参考"的概念,能根据研究选择平均参考或乳突参考,并完成电极定位

一、EEGLAB 是什么

EEGLAB 是加州大学圣地亚哥分校(UCSD)Makeig 实验室开发的开源 Matlab 工具包, 是世界上使用最广的脑电分析软件。它最大的优点是图形界面(GUI)和脚本两种模式并存: 新手可以点菜单入门,熟练后所有菜单操作都有对应的命令(菜单操作的记录可以用 eegh 查看), 为模块 2.4 的批处理铺路。

二、安装 EEGLAB

  1. 从官网 sccn.ucsd.edu/eeglab 下载压缩包(建议下 stable 稳定版);
  2. 解压到一个纯英文、无空格的路径,例如 D:\eeglab
  3. 在 Matlab 中 cd D:\eeglab,然后输入 eeglab 回车;
  4. 看到主窗口弹出,即安装成功。也可以 addpath(genpath('D:\eeglab'))savepath,以后随时可用。
常见报错原因解决办法
Undefined function or variable 'eeglab'没进入 eeglab 目录 / 没加路径cd 到解压目录,或 addpath(genpath(...))
界面弹出但乱码或字体异常Matlab 版本过老建议 Matlab R2018b 及以上
导入数据时 unrecognized file format路径含中文/空格,或文件损坏移动文件到英文路径,检查文件能否在原软件打开
提示缺少某个 .m 文件解压不完整 / 杀毒软件删了文件重新解压,将解压目录加入杀毒白名单

三、界面与数据结构

EEGLAB 的功能都在顶部菜单:File(导入导出)、Edit(通道与参考)、 Plot(画图)、Tools(滤波、ICA、分段、统计等核心功能都在这)。 导入数据后,可以在 Matlab 命令行查看 EEG 结构体:

Matlab
EEG            % 打印结构体概览,重点看下面几个字段
EEG.data       % 通道 x 时间点 的数据矩阵(就是你 2.1 学的那个矩阵!)
EEG.nbchan     % 通道数
EEG.pnts       % 每段数据的时间点数
EEG.srate      % 采样率 (Hz)
EEG.times      % 时间轴 (ms)
EEG.chanlocs   % 每个电极的位置和名称
EEG.event      % 事件标记(刺激、反应等)
EEG.setname    % 当前数据集名称

四、导入第一份数据

以最常见的欧洲数据格式 .edf / .bdf 为例:

  1. File > Import data > Using EEGLAB functions and plugins > From BIOsemi (.bdf) / EDF (.edf) files(不同版本菜单略有差异);
  2. 选择数据文件,一路确定;
  3. 导入后主窗口会显示通道数、采样率、时间长度——先核对这三项与采集记录一致
  4. File > Save current dataset 保存为 .set / .fdt(EEGLAB 原生格式,后续读写都方便)。
💡 没有自己的数据?

用我们的公开数据集下载一份练习数据(推荐从带 .set 格式的入手),本模块所有操作都能照做。

五、滚动图:数据质量初查

Plot > Channel data (scroll) 打开滚动图。建议先把时间窗设为 5–10 秒,快速浏览整段数据,重点看三件事:

  • 有没有整通道的坏道:持续平线、剧烈毛刺、与其他通道明显不一样的通道;
  • 伪迹的严重程度:眨眼多不多(前额大幅慢波)、被试有没有咬牙(全脑高频毛刺);
  • 整体漂移:慢速上下漂移提示需要高通滤波(2.3 节)。

六、电极定位

Edit > Channel locations。如果采集时导出过电极坐标文件就选择读入; 没有的话点 No, call file editor,用标准 10-20 系统模板 (Look up locs 按钮可按电极名自动匹配)。

⚠️ 电极名必须规范

自动定位依赖标准电极名(Fp1、Cz、O2……)。如果采集软件导出的是 EEG 001 这类编号,需要先改名为标准名,否则后面画地形图、溯源全部没法做。

七、重参考:电位是相对的

📖 概念:参考电极

电位没有绝对值,只有"相对于某个点"的差。采集时放大器以某个电极为参考(如头顶 CZ 或单侧乳突), 这个"相对关系"会影响所有后续结果。分析前统一参考,就是为了让不同被试、不同设备的数据可比。

参考方式怎么做适用场景注意
平均参考每个时间点减去所有通道的均值最常用的事实标准;溯源分析的前提坏通道会污染均值,先处理坏道(2.3)
乳突参考以左右乳突(M1/M2)平均为参考传统 ERP 研究沿用惯例(便于与老文献对比)颞叶附近通道的电活动会被"吃掉"一部分
鼻尖/前额参考记录时单设参考电极特定范式惯例鼻尖电极阻抗难维持,噪声偏大

操作:Edit > Re-reference the data,选平均参考时勾选 Compute average reference;需要乳突参考时在通道列表里选 M1、M2。

八、选通道与降采样

  • 选通道Edit > Select data,去掉 EOG、ECG 等非脑电通道(记下它们的编号,ICA 阶段可以先用);
  • 降采样Tools > Change sampling rate,例如 1000Hz 降到 250Hz,文件缩小 4 倍、计算快 4 倍。代价是高频信息被丢弃——研究 gamma(>30Hz)时按奈奎斯特定理至少保留目标频率的 2 倍以上,建议 2.5 倍。
📌 本节交付物

到这一节结束,你应该得到一个.set 文件:电极定位正确、参考统一、采样率合理、通道干净。它是 2.3 节所有清洗步骤的输入。

📌 本节小结

  • EEGLAB 安装三要素:英文路径、addpath、Matlab R2018b+
  • EEG.data 是通道×时间矩阵——GUI 操作的本质就是操作这个矩阵
  • 导入数据后先核对:通道数、采样率、时长;用滚动图初查坏道与伪迹
  • 电极定位依赖标准电极名;这是地形图和溯源的前置条件
  • 参考决定可比性:默认用平均参考;与老文献对比时可用乳突参考

✏️ 课后练习

  1. 下载一份公开数据集,完成"导入 → 核对信息 → 滚动图浏览 → 电极定位 → 平均参考 → 降采样到 250Hz",保存为 lesson22.set。
  2. 在命令行输入 EEG,抄下 nbchan、srate、pnts 三个字段的值,并手算这份数据大约多长(分钟)。
  3. 用滚动图找出 3 个疑似坏通道和 2 段明显伪迹,记录时间点,2.3 节会用到。