EEGLAB 入门与数据导入(预处理·上)
把一份数据从硬盘上的 .edf 文件,变成 EEGLAB 里结构清晰、电极定位正确、参考明确的 EEG 结构体。这一步不"洗数据",但做错了后面全错。
🎯 本节学习目标
- 独立完成 EEGLAB 的下载、安装与启动排错
- 掌握 EEGLAB 主界面的菜单逻辑与
EEG结构体的关键字段 - 会导入 .edf / .bdf / .set 格式数据,并核对采样率、通道数、时长
- 会用滚动图(scroll plot)初查数据质量
- 理解"参考"的概念,能根据研究选择平均参考或乳突参考,并完成电极定位
一、EEGLAB 是什么
EEGLAB 是加州大学圣地亚哥分校(UCSD)Makeig 实验室开发的开源 Matlab 工具包,
是世界上使用最广的脑电分析软件。它最大的优点是图形界面(GUI)和脚本两种模式并存:
新手可以点菜单入门,熟练后所有菜单操作都有对应的命令(菜单操作的记录可以用 eegh 查看),
为模块 2.4 的批处理铺路。
二、安装 EEGLAB
- 从官网 sccn.ucsd.edu/eeglab 下载压缩包(建议下 stable 稳定版);
- 解压到一个纯英文、无空格的路径,例如
D:\eeglab; - 在 Matlab 中
cd D:\eeglab,然后输入eeglab回车; - 看到主窗口弹出,即安装成功。也可以
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 结构体:
EEG % 打印结构体概览,重点看下面几个字段
EEG.data % 通道 x 时间点 的数据矩阵(就是你 2.1 学的那个矩阵!)
EEG.nbchan % 通道数
EEG.pnts % 每段数据的时间点数
EEG.srate % 采样率 (Hz)
EEG.times % 时间轴 (ms)
EEG.chanlocs % 每个电极的位置和名称
EEG.event % 事件标记(刺激、反应等)
EEG.setname % 当前数据集名称
四、导入第一份数据
以最常见的欧洲数据格式 .edf / .bdf 为例:
File > Import data > Using EEGLAB functions and plugins > From BIOsemi (.bdf) / EDF (.edf) files(不同版本菜单略有差异);- 选择数据文件,一路确定;
- 导入后主窗口会显示通道数、采样率、时间长度——先核对这三项与采集记录一致;
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 操作的本质就是操作这个矩阵- 导入数据后先核对:通道数、采样率、时长;用滚动图初查坏道与伪迹
- 电极定位依赖标准电极名;这是地形图和溯源的前置条件
- 参考决定可比性:默认用平均参考;与老文献对比时可用乳突参考
✏️ 课后练习
- 下载一份公开数据集,完成"导入 → 核对信息 → 滚动图浏览 → 电极定位 → 平均参考 → 降采样到 250Hz",保存为 lesson22.set。
- 在命令行输入
EEG,抄下 nbchan、srate、pnts 三个字段的值,并手算这份数据大约多长(分钟)。 - 用滚动图找出 3 个疑似坏通道和 2 段明显伪迹,记录时间点,2.3 节会用到。