EEG信号分析实战:从时域到频域,手把手教你用Python处理脑电数据
脑电信号(EEG)作为探索大脑活动的窗口,在神经科学研究和临床诊断中扮演着关键角色。想象一下,当你在思考、放松或专注时,大脑皮层中数百万神经元同步放电产生的微弱电信号,通过电极捕捉后形成那些起伏的波形曲线——这就是EEG数据的本质。不同于其他生物信号,EEG具有毫秒级的时间分辨率,能直接反映神经元的电活动变化,这使得它成为研究认知过程、情绪状态甚至意识活动的独特工具。
然而,原始EEG数据就像一本用特殊密码写成的日记,需要合适的解码技术才能读懂其中的信息。本文将带您使用Python这把"瑞士军刀",逐步拆解EEG分析的核心技术路线。无论您是刚开始接触脑电研究的心理学学生,还是需要快速实现原型验证的工程师,都能通过以下实战示例获得可直接复用的代码方案。我们将重点解决三个关键问题:如何从时域波形中提取事件相关电位?怎样通过频域分析发现不同认知状态下的脑波特征?以及何时需要结合时频分析来捕捉动态变化?
1. 环境准备与数据加载
工欲善其事,必先利其器。在开始EEG分析前,需要配置包含以下核心库的Python环境:
- MNE-Python:专为EEG/MEG分析设计的工具箱
- NumPy:数值计算基础库
- SciPy:科学计算与信号处理
- Matplotlib:数据可视化
- Pandas:数据整理与分析
pip install mne numpy scipy matplotlib pandas
典型的EEG数据通常以.edf、.bdf或.set等格式存储。以常用的EDF格式为例,加载数据只需几行代码:
import mne
# 加载示例数据集
sample_data_folder = mne.datasets.sample.data_path()
sample_data_raw_file = sample_data_folder / 'MEG' / 'sample' / 'sample_audvis_raw.fif'
raw = mne.io.read_raw_fif(sample_data_raw_file, preload=True)
# 查看通道信息
print(raw.info)
注意:实际应用中需根据采集系统调整参考电极设置,常见配置包括平均参考、乳突参考或特定电极参考。
EEG数据预处理是确保分析质量的关键步骤,典型流程包括:
-
滤波处理:
- 高通滤波(>0.5Hz)去除基线漂移
- 低通滤波(<40Hz)抑制高频噪声
raw.filter(0.5, 40, fir_design='firwin') -
坏道检测与插值:
raw.plot(block=True) # 交互式查看异常通道 raw.interpolate_bads() # 自动插值修复 -
伪迹去除:
- 眼电(EOG)去除<


2万+

被折叠的 条评论
为什么被折叠?



