步骤 03:通道类型标注
为 EOG/EMG/EEG 等通道设置正确类型
1. 目标
明确告知 MNE 哪些通道是 EEG、哪些是 EOG/ECG/EMG/STIM 等。通道类型决定后续平均参考、ICA、SSP 投影的行为——若 EOG 被误标为 EEG,会污染平均参考并破坏 ICA 分离。
2. 何时使用 / 何时跳过
- 必须使用:当
raw.get_channel_types()中 EOG/ECG 通道被默认为eeg时 - 可跳过:已通过专用读取函数(如
read_raw_edf(preload=True, eog=['EOG1', 'EOG2']))正确设置
3. 前置条件
- 已执行步骤 02:已确认通道名与通道类型分布
4. 核心代码
Python
import mne
# ====== 典型配置:脑电 + 双导眼电 + 心电 + 触发 ======
channel_type_mapping = {
# EEG 通道(不需要单独标,MNE 默认就是 eeg)
# 'Fp1': 'eeg',
# 'Fp2': 'eeg',
# 眼电通道
'EOG001': 'eog', # 水平眼电
'EOG002': 'eog', # 垂直眼电
# 心电通道
'ECG001': 'ecg',
# 肌电通道(可选)
'EMG001': 'emg',
# 刺激/触发通道
'STI001': 'stim',
}
raw.set_channel_types(channel_type_mapping)
# ====== 一次性应用 ======
# raw.set_channel_types({'HEOG': 'eog', 'VEOG': 'eog', 'ECG': 'ecg', 'Trigger': 'stim'})
# ====== 批量转换:把某些通道从 eeg 改为 eog ======
# raw.set_channel_types({'Fp1': 'eog'}) # 例如把 Fp1 当眼电参考
# ====== 反向操作:误标后还原 ======
# raw.set_channel_types({'EOG001': 'eeg', 'EOG002': 'eeg'})
5. 参数详解
| 参数 | 含义 | 取值范围 |
|---|---|---|
channel_type_mapping |
通道名 → 通道类型 的字典 | key 必须在 ch_names 中 |
| 可选 channel type | eeg / eog / ecg / emg / stim / misc / ref_meg 等 |
见 mne.io.constants |
6. 验证方法
Python
from collections import Counter
# 验证 1:打印通道类型分布
type_counter = Counter(raw.get_channel_types())
print(type_counter)
# 期望:{'eeg': 60, 'eog': 2, 'ecg': 1, 'stim': 1}
# 验证 2:断言关键类型存在
assert 'eeg' in raw.get_channel_types(), "没有 EEG 通道"
assert 'stim' in raw.get_channel_types(), "没有 STIM 通道(事件提取会失败)"
# 验证 3:可视化眼电通道(确认其振幅远大于 EEG,符合生理预期)
raw.plot(
picks=['eog', 'ecg'],
duration=10,
scalings=dict(eeg=20e-6, eog=50e-6, ecg=50e-6),
)
7. 常见错误
| 错误 | 原因 | 解决方案 |
|---|---|---|
ValueError: Channel ... not found |
字典 key 与实际通道名不一致 | 用 raw.ch_names 严格匹配(注意空格、大小写) |
| EOG 没被剔除出平均参考 | 步骤 13 未设 ref_channels='REST' 且未把 EOG 设成 eog |
重新执行本步骤 |
| ICA 拆出来的眼电成分不干净 | EOG 被标为 eeg 参与了 ICA 拟合 |
重设通道类型并从步骤 16 重跑 ICA |
后续 find_events 找不到事件 |
STIM 通道被误设为 misc |
确保存在 stim 类型通道 |
8. 官方来源
| 资源类型 | 链接 |
|---|---|
| API | https://mne.tools/stable/generated/mne.io.Raw.html#mne.io.Raw.set_channel_types |
| 通道类型常量 | https://mne.tools/stable/python_reference.html |
| 教程:通道类型 | https://mne.tools/stable/auto_tutorials/intro/plot_30_info.html |
9. 学术引用
无需单独引用。本步骤的正确性已被 MNE 官方教程默认流程包含。