在前两篇关于 ICA 的文章下面,有不少朋友留言:
“能不能出一个完整教程?”
“到底什么样的预处理流程,才算是规范又不过度?”
这篇文章,就是对这些问题的集中回应。
需要先说明的是:
这不是一套“最复杂”的流程,也不是“顶刊模板”。
它的目标只有一个:
给你一套你能跑、能解释、能在组会上讲清楚的 EEG 预处理流程。
一、整体流程总览(先看全局)
本文采用一个非常克制、但足够严谨的四步流程:
- 初始数据质量检查(QC-1):判断“值不值得继续分析”
- 预处理后质量检查(QC-2):验证“清洗是否真的有益”
如果你现在对 EEG 预处理感到混乱,先把这四步跑通,比调任何参数都重要。

二、Step 1:数据统一为 BIDS-EEG(为什么这一步非常重要)
1️⃣ 为什么一定要做 BIDS?
很多初学者一上来就问:
- “能不能直接用原始 .set / .edf 跑?”
技术上可以,但科研上不推荐。
BIDS 的价值不在于格式,而在于三点:
- 后续无论 Python / MATLAB 都能无缝衔接
如果你未来打算投稿、共享数据、或者长期维护项目,BIDS 几乎是不可跳过的一步。
2️⃣ Python 示例:原始 EEG → BIDS
from mne_bids import BIDSPath, write_raw_bids
import mne
raw = mne.io.read_raw_eeglab("sub01_raw.set", preload=True)
bids_path = BIDSPath(
subject="01",
task="rest",
root="bids_dataset",
datatype="eeg"
)
write_raw_bids(raw, bids_path, overwrite=True)
关键参数解释:
- subject / task:后续统计分析直接按任务分组
- preload=True:后面 QC 与 ICA 都依赖内存操作
- overwrite=True:避免调试阶段重复报错
3️⃣ MATLAB 示例:EEGLAB → BIDS
EEG = pop_loadset('filename','sub01_raw.set');
pop_exportbids(EEG, 'bids_dataset', ...
'subject','01', ...
'task','rest');
三、Step 2:初始数据质量检查(QC-1)
这一步只做一件事:
判断:这份数据是否“值得”继续分析。
1️⃣ 必做的 3 项基础 QC
(1)原始时域波形
raw.plot(n_channels=32, duration=10)
你要看的不是“干不干净”,而是:
(2)功率谱密度(PSD)
raw.plot_psd(fmax=50)
关注点:
(3)坏导联初筛
raw.info['bads'] = []
raw.plot()
坏导不是“越多越好”,而是:
明确、可解释、数量克制。

四、Step 3:最小可用的预处理流程(核心)
下面这套流程,我非常建议新手从这里开始。
1️⃣ 基础滤波(不过度)
raw.filter(l_freq=0.1, h_freq=45)
参数解释:
滤波不是“越窄越好”,而是为分析服务。
2️⃣ 重参考(在坏导处理之后)
raw.set_eeg_reference('average')
重参考之前,请确保:
3️⃣ ICA(在数据条件允许时)
ica = mne.preprocessing.ICA(
n_components=0.99,
method='fastica',
random_state=42
)
ica.fit(raw)
参数解释:
n_components=0.99:按方差解释率,而非固定数量random_state:保证可复现ICA 不是必须步骤,而是“有条件的工具”。
4️⃣ ICA 成分识别(不盲删)
ica.plot_components()
ica.plot_properties(raw)
判断依据必须来自:
“这个看起来像噪声。”
五、Step 4:预处理后的质量检查(QC-2)
这一部分比预处理本身更重要。
1️⃣ 对比前后 PSD
raw_clean.plot_psd(fmax=50)
你要看到的是:
2️⃣ 对比时域形态
raw_clean.plot(n_channels=32, duration=10)
如果你觉得:
“怎么没之前那么好看了?” 那恭喜你,你可能做对了。
3️⃣ 检查结论稳定性
尝试轻微改动参数:
这套预处理是“够用且稳健的”。
六、总结:什么时候可以停下来?
如果你满足:
这份 EEG 预处理,已经可以进入分析阶段了。
七、留给你的问题(欢迎留言)

- 你更希望我下一篇写:ICA 成分判读实战,还是 QC 自动化脚本?
欢迎在评论区继续讨论。