脑电数据时频频域分析
一、预处理
二、ERP时域分析
看数据的思路一(沿时间):
确定某个通道,看波形图,找到在某个时间窗的成分;确定某个时间窗,看地形图,找到这个成分在哪个电极点上最明显。
选定一个通道,沿着时间看波形图
mean_data = squeeze(mean(ERPdata(:, chan_No, :), 1));
看数据的思路二(沿空间):
- 确定某个时间窗(50-100 ms为佳),沿着通道看地形图,找到这个成分在哪个电极点上最明显。
为什么要选择时间窗?
因为认为平均波幅更有说服力,单点的峰值可能会受到噪声的影响。
P2 amplitude = squeeze(mean(ERPdata(:, :, P2_interval), 3));
- 选定peak点,从组水平的波形图上选取。
- topoplot画地形图
看数据的思路三(空间随时间的变化):
两张图结合来看,可以看出来随着时间的推移,先到达极负值点,后到达极正值点。
提取分段(不同的实验条件)
再画上差异波:
脑地形图的绘制
空间随时间的变化(先定义好时间范围,然后选定通道):
- time interval
- EEG在该段时间范围内的平均波幅
总结
- 确定某个电极点,沿着时间观察数据————波形图,固定空间去看时间,沿着时间去比较不同条件(组别),寻找差异的时间窗
- 确定某个时间窗,沿着通道观察数据————地形图,固定时间去看空间,沿着空间去比较不同条件(组别),寻找差异的电极点
常用统计分析方法
1. t检验 (t-test)
用于比较两组数据是否存在显著差异
例如:
| 组别 | P300振幅(μV) |
|---|---|
| Target | 8.2 |
| Non-target | 4.5 |
想知道两组P300振幅是否真的不同。
采用:配对t检验(Paired t-test),因为同一个被试都会经历两种条件。
例如:
- Target vs Non-target
- Active vs Passive
- 左手运动 vs 右手运动
独立样本t检验
比较两组不同被试。
例如:
- 患者组
- 健康组
比较:
P300振幅,Alpha功率,结果报告
例如:P300 amplitude was significantly larger in the target condition than the non-target condition (t(19)=4.62, p<0.001).
意思:t值=4.62,自由度=19,p<0.001,差异显著。
2. p值 (P-value)
所有统计检验最终都会给一个p值。
表示:如果实际上没有差异,观察到当前结果的概率是多少。
常见标准:
| p值 | 解释 |
|---|---|
| p<0.05 | 显著 |
| p<0.01 | 非常显著 |
| p<0.001 | 极显著 |
EEG论文最常见:
*p < 0.05
**p < 0.01
***p < 0.001
3. F检验 (F-test)
F值本质上是:组间差异 / 组内差异
统计量:F=MS_between/MS_within
其中:MS_between:组间方差;MS_within:组内方差
EEG中经常出现:F(2,38)=8.75,p=0.001
表示:条件间存在显著差异
但是:不知道是哪两组不同。
因此:F检验后通常还要做Post-hoc分析。
ANOVA(Analysis of Variance,方差分析)
EEG中最常用的方法之一。
用于:三组及以上条件比较
- 一元ANOVA
例如:刺激频率:1Hz,5Hz,10Hz;比较P300振幅。
One-way ANOVA
- 二元ANOVA
EEG最常见。
例如:
因素1:Target,Non-target
因素2:Fz,Cz,Pz
形成:2×3 ANOVA
分析:
条件主效应
电极主效应
交互作用
- 主效应(Main Effect)
例如:
Target平均振幅:8 μV
Non-target平均振幅:4 μV
得到:
Condition main effect:F(1,19)=15.3,p<0.001
说明:Target和Non-target存在总体差异。
- 交互作用(Interaction)
EEG论文特别喜欢分析。
例如:
| 电极 | Target | Non-target |
|---|---|---|
| Fz | 6 | 5 |
| Pz | 10 | 4 |
可以发现:差异主要出现在Pz。
此时:Condition × Electrode interaction显著。
5. 重复测量ANOVA(Repeated Measures ANOVA)
ERP研究最常见。
因为:同一个被试经历所有条件。
例如:20名被试
比较:Fz,Cz,Pz三个脑区
又比较:主动运动/被动运动
形成:2 × 3 Repeated Measures ANOVA
因素:Movement Type/Electrode
很多ERP论文:A two-way repeated-measures ANOVA was conducted. 基本就是这个。
6. 事后检验(Post-hoc Test)
ANOVA只能告诉你:至少有一组不同
不知道:A和B不同?A和C不同?B和C不同?
因此需要:Bonferroni最常见。Tukey较常见。
三、脑电频域分析
ERP:只能分析锁时锁相的信息
例如:P300在固定时间产生,并且固定为正相(对于锁时不锁相的杂乱的波会在叠加平均时候抵消掉)
还需要分析的主要内容:脑电的基本节律,各个频段的能量值,频域分析
- 什么是时域:信号沿着时间变化
- 什么是频域:信号沿着频率变化,根据周期、振幅和相位能够确定唯一的正弦波
将脑电信号转到频域信号:傅里叶变换(Fourier Transform)
傅里叶变换:任何连续的周期信号,都可以转化成若干正弦函数的叠加。
脑电信号:
**非连续:**能够分解的频段,由采样定理决定(最高频段是采样率的一半)
非周期信号: 看作一个周期无限大的信号
脑电信号是可以转换到频域,并且由若干个正弦波叠加而成,而且正弦波的范围取决于采样率。
data = 0.5 * sin(2pi10t) + 0.3 * sin(2pi20t) + 0.1 * sin(2pi30*t)
30,20,10 指的是频率,所以30频率最高。
P.S.脑电实验中采样率(Sampling Rate)的设置
最核心的理论依据是奈奎斯特采样定理(Nyquist Theorem),即采样率必须至少是信号中最高频率的两倍,以避免混叠现象(aliasing)。因此,如果我们想分析的脑电信号最高频率为100 Hz,那么采样率至少应该设置为200 Hz。
核心考虑因素:
(1)目标脑电成分的频率(实验目的)
常规脑电波: 如 Delta ($\delta$, 1-4 Hz)、Theta ($\theta$, 4-8 Hz)、Alpha ($\alpha$, 8-13 Hz)、Beta ($\beta$, 13-30 Hz)。
高频成分/事件相关电位(ERP): 如 Gamma 波(>30 Hz)、或者是像 P300、N400 这样的 ERP 成分。
超高频成分: 如体感诱发电位(SEP)中的高频振荡(HFOs,可达数百赫兹)。
工程实际经验: 在实际应用中,为了能够完美重构波形并留出滤波的过渡带,采样率通常会设置为目标最高频率的 4 到 5 倍,甚至更高。
(2)硬件的抗混叠滤波器(Anti-aliasing Filter)
在信号被数字化之前,脑电放大器内部会有一个模拟低通滤波器,用来滤除高于奈奎斯特频率的信号。
如果放大器的硬件低通硬件滤器固定在100Hz,那么采样率至少要设为250Hz或500Hz。
注意: 采样率的选择必须与放大器的硬件滤波器切断频率相匹配。
(3)伪迹(Artifacts)的频率
除了大脑内部的信号,**肌电伪迹(EMG,可达 200 Hz以上)和工频干扰(50 Hz 或 60 Hz)**也会混入。如果你的采样率太低(例如 100 Hz),高频的肌电伪迹就会混叠到低频段,导致你无法通过后期滤波将其剔除。
(4)数据量与计算资源
采样率越高,产生的数据量就呈线性增长。
高采样率: 占用更多内存和存储空间,导出的数据大(尤其是多通道 EEG),后期跑算法(如 ICA 独立成分分析)时计算耗时更长。
便携式/无线 EEG: 如果是蓝牙或 Wi-Fi 传输的便携式设备,高采样率可能导致数据丢包或耗电过快。
常见脑电采样率设置
| 实验类型 / 研究对象 | 推荐采样率 | 常见硬件低通滤波 | 备注说明 |
|---|---|---|---|
| 常规 ERP 研究(如 P300, N400, LPP) | 500 Hz 或 1000 Hz | ~100 Hz 或 ~250 Hz | 最稳妥配置,对大多数认知任务完全足够 |
| 常规频域分析(Alpha, Beta 功率谱) | 250 Hz 或 500 Hz | ~70 Hz 或 ~100 Hz | 节约存储空间,足以覆盖 50 Hz 以下常规脑电频段 |
| 高频振荡 / 听觉诱发电位(如 ABR 听觉脑干反应) | 2000 Hz 至 5000 Hz | ~1000 Hz | 目标信号频率极高(数百赫兹),且潜伏期极短,需要极高的微秒级时间分辨率 |
| 临床常规脑电图 (EEG) | 250 Hz | ~70 Hz | 满足临床医生肉眼判读和癫痫波识别即可 |
| 便携式 / 商业脑机接口(如睡眠监测、游戏) | 128 Hz 或 256 Hz | ~50 Hz | 受限于电池寿命和无线带宽,优先考虑低功耗 |
频域分析
设定频域分析相关信息,再做变换:
- 采样率 Fs=1000Hz
- 数据长度 L=1000个采样点(1秒)
- 采样的时间间隔 T=1/Fs=0.001秒
- 时间点 t=(0:L-1)*T
- 把L转换成2的幂次方,便于FFT计算
linspace函数:生成等差数列
例如:linspace(0, 1, 5)生成0到1之间的5个等差数:0, 0.25, 0.5, 0.75, 1
脑电频域特征:
- 一般存在低频能量高,高频能量低的现象。
- 在α频段(8-13Hz)有一个明显的峰值,称为α峰(一般在枕叶区域)。
- 50Hz处因为滤掉了工频干扰,所以有一个明显的能量谷。
关于静息态的统计:
- 不同被试,同种条件
- 同组被试,不同条件,治疗前后
- 频段上的差异:确定某个脑区,看这个脑区在各个频段上有什么不同
- 脑区上的差异:确定这个频段,沿着地形图,看哪些脑区在这个频段上,有差异
- 频域分析的活用:FFA,左右脑不对称性
关于频域的指标:
- 幅值(FFT变换后求abs生成的最原始的值),用的非常少
- power(幅值的平方),用的非常多
- 对power求导,用的非常多,功率谱(power spectrum)或者功率谱密度(power spectral density,PSD)
- power求导之后再求log对数,功率谱密度(PSD),只是单位变成了分贝(dB),用的非常多
逐通道做t检验:
- 同组被试,不同条件:配对t检验
- 不同组被试,同种条件:独立t检验
四、基于短时傅里叶变换的时频分析
分析时域:看时间的变化,损失频域上的变化信息(任务态)
分析频域:看频率的变化,损失时域上的变化信息(静息态)
给脑电信号在时间上的变化曲线加窗,对每段时间窗内的信号做傅里叶变换,得到每段时间窗内的频域信息。
然后形成一个二维的时频图,横轴是时间,纵轴是频率,颜色表示功率大小。
- 选择窗宽跟想看的频率范围有关,比如想看1Hz的变化,就需要选择大于1秒的窗宽;想看10Hz的变化,就需要选择大于0.1秒的窗宽。
一般推荐的窗宽是0.3或0.4秒。
加窗的算法就是短时傅里叶变换(Short-Time Fourier Transform,STFT)。
- 如果需要做时频分析,刺激前需要留下至少0.5秒的基线时间,刺激后需要留下至少1秒的时间。
对每个被试,每个条件,每个通道,每个分段计算时频矩阵。并对分段维度进行平均
- 关注低频,可以用减基线的操作(低频变化幅度大);关注高频,可以用除基线的操作(高频变化幅度小)。