试次间相干(ITPC)
ERP 平均的是电位,ITPC 平均的是相位。最后一课补上"相位锁定"这块拼图, 然后把 28 课的地图摊开,聊聊接下来往哪里走。
🎯 本节学习目标
- 说清 ITPC 的含义:同一时间-频率点上试次间相位的一致程度
- 区分 ITPC、ERP 幅值与 ERD/ERS 各自在衡量什么
- 能用复 Morlet 小波卷积独立实现单频率的 ITPC 曲线
- 理解试次数偏倚,会用 Rayleigh 检验与平衡试次数的组间比较
- 带着完整的 28 课知识地图,规划自己的下一步方向
一、ITPC 是什么:试次间的"相位一致度"
想两条公交线路:一条每天 8:00 整点发车(相位锁定),一条忽早忽晚(相位随机)。 ITPC(inter-trial phase clustering,试次间相干 / 试次间相位聚集)量的就是"班车准点率"—— 它不关心车开多快(幅值),只关心是否准点(相位一致)。
在同一个时间-频率点上,把每个试次的瞬时相位表示成单位向量后求平均,平均向量的长度就是 ITPC:0 = 相位完全散乱,1 = 所有试次同相位。
注意与模块 6 的 PLV 区分:PLV 衡量通道之间(或两个信号之间)的相位锁定, ITPC 衡量试次之间的相位锁定——一个是"空间上谁和谁同步", 一个是"时间上每次是否同一时刻出发"。计算骨架几乎一样,所以学起来格外快。
二、ITPC、ERP 与 ERD/ERS:三兄弟的分工
| 指标 | 对什么做平均 | 衡量什么 | 典型问题 |
|---|---|---|---|
| ERP 幅值 | 试次电位直接平均 | 锁时锁相成分的净贡献 | "平均之后有多大" |
| ITPC | 试次的单位相位向量 | 相位锁定程度 | "各试次是否同一时刻同相位出发" |
| ERD / ERS | 试次的幅值(功率) | 能量的增减 | "能量变多还是变少" |
三者的关系值得细品:ERP 幅值主要来自相位锁定成分—— 非锁相的活动在平均中互相抵消。所以一个增大的 ERP 可能来自"更多试次锁相了"(ITPC 升高), 也可能来自"每个锁相试次更强了"(幅值升高),还可能两者兼有。 ITPC 是把 ERP 背后的机制单独拿出来量的更细的显微镜: ITPC 高 + 幅值增 = 真增加;ITPC 不变 + 幅值增 = 非锁相的诱导性活动。 与 ERD/ERS(模块 4)合在一起,幅值与相位两条证据链就齐了。
三、计算直觉:单位向量与圆上的平均
每个试次在每个时间点都有一个相位角。把它画成单位圆上的一个箭头, 然后把所有试次的箭头画在同一个圆上:聚成一束 → ITPC 接近 1; 均匀撒开 → 接近 0。平均向量的长度是 ITPC, 方向是平均相位。
一个关键细节:先把复数单位化再平均。 直接平均复系数会让幅值大的试次主导结果——那量的是功率不是相位。 除以自身的模,每个试次只投"方向"一票。
四、Matlab 实现:复小波卷积完整代码
% ---- 复 Morlet 小波卷积:逐试次求相位,再算 ITPC ----
% epoch: 通道 x 时间点 x 试次(模块 2 分好的段)
fs = 500; f0 = 8; nCyc = 6;
s = nCyc / (2*pi*f0); % 小波时宽(秒):决定时频权衡
tw = -4*s : 1/fs : 4*s;
wav = exp(2i*pi*f0*tw) .* exp(-tw.^2 / (2*s^2)); % 复小波 = 复指数 x 高斯包络
wav = wav / sqrt(sum(abs(wav).^2)); % 能量归一化:不同频率间可比
[nCh, nT, nTr] = size(epoch);
zSum = zeros(nT, 1); % 单位相位向量的累加器
for tr = 1:nTr
c = conv(squeeze(epoch(1, :, tr)), wav, 'same'); % 'same':输出与信号等长对齐
zSum = zSum + c ./ max(abs(c), eps); % 单位化:只留相位,去掉幅值权重
end
zMean = zSum / nTr;
itpc = abs(zMean); % 平均向量长度 ∈ [0,1]
mPh = angle(zMean); % 平均相位(锁定时才有意义)
figure; plot(times, itpc, 'LineWidth', 1.5); ylim([0 1.05]);
xlabel('时间 (ms)'); ylabel('ITPC');
title(sprintf('%g Hz 试次间相干(%d 试次)', f0, nTr));
卷积在 epoch 两端不可靠,与模块 4 时频分析同理:分段时窗口前后多留一点(比如前后各多 500ms),画图与统计时只报告感兴趣的时间窗。想画整张时间-频率 ITPC 图,把 f0 换成频率列表、外面再套一层循环即可——骨架完全不变。
五、统计:偏倚、Rayleigh 检验与组间比较
试次数越少,ITPC 被抬得越高——即使相位完全随机,20 个试次的 ITPC 期望值也有约 0.2。比较两组前必须先让试次数相等,否则"组间差异"可能只是偏倚差异。
% ---- 统计:先直面偏倚,再谈组间比较 ----
% 偏倚:全随机相位时 ITPC 的期望值约 sqrt(pi / (4n))
fprintf('%d 试次时随机期望 ITPC ≈ %.3f\n', nTr, sqrt(pi/(4*nTr)));
% n=20 时约 0.198 —— 这个"地板"绝不可忽略
% Rayleigh 检验:H0 = 该时刻相位在试次间均匀分布(无锁定)
% 大样本近似(正式分析建议用 Circular Statistics Toolbox 的 circ_rtest)
Z = nTr * itpc .^ 2;
pRay = exp(-Z); % 近似 p 值
% 组间比较的两个前提:
% 1) 两组试次数必须相同 → 随机下采样到共同最小值,重复多次取平均
% 2) ITPC 有界 [0,1] → 统计前做 Fisher z 变换
itpcZ = atanh(itpc); % 拉伸到实数轴,接近正态
% 之后即可做 t 检验或置换检验;多重比较沿用模块 5 的 cluster / FDR 框架
六、报告规范
- 试次数:每名被试、每个条件的试次数,两组是否平衡(如何平衡);
- 小波参数:类型(复 Morlet)、周期数(如 6 个周期)、频率列表、时间窗;
- 统计:Rayleigh / 置换的具体做法、多重比较校正方法;
- 呈现:ITPC 曲线或时间-频率图建议与 ERP / 功率结果并排展示,让读者看到相位与幅值两条证据链。
七、收官:28 课的脉络与你的下一步
这是本课程的最后一课。把 28 课时摊开成一张地图,你已经走过:
- 模块 1 · 脑电基本原理——信号从哪来、经典成分长什么样;
- 模块 2 · Matlab 与 EEGLAB 预处理——从一行代码到批量流水线;
- 模块 3 · ERP 时域分析——平均、地形图、测量与统计;
- 模块 4 · 时频分析——功率谱、时频图、ERD/ERS;
- 模块 5 · FieldTrip 与统计——cfg 驱动的全流程与 cluster 置换;
- 模块 6 · 功能连接——PLV 家族、容积导体的坑与网络分析;
- 模块 7 · 源定位——正逆问题、偶极子与 sLORETA;
- 模块 8 · 前沿专题——微状态、CFC、PCA、非线性、ITPC。
这条路线的内在逻辑是:先把信号洗干净(预处理),再从时域、频域、时频三个尺度描述它,然后问"哪里产生(溯源)、谁和谁对话(连接)、整体处于什么状态(微状态)、各尺度如何嵌套(CFC)、系统有多复杂(非线性)、相位如何组织(ITPC)"。每一课都是一个可独立调用的工具,也是通往文献的钥匙。
四条建议:① 选一个方向做深——挑一篇与你课题相关的论文,把它的全部图表复现一遍,比再看十门课都有用;② 用公开数据集练手——课程数据集页里的数据足够支撑从预处理到前沿专题的完整练习;③ 把流水线脚本化——版本管理、参数记录、一键复现,这是从"会分析"到"能发表"的分水岭;④ 回到方法学文献——Cohen 的《Analyzing Neural Time Series Data》、EEGLAB 与 FieldTrip 的官方教程和 workshop,都是这门课的天然续集。28 课的地图已经摊开,接下来的路,按你的研究方向走。
📌 本节小结
- ITPC = 同一时间-频率点上试次间相位的一致程度:0 散乱,1 完全锁定
- ERP 幅值主要来自相位锁定成分;ITPC 是拆解 ERP 机制的更细显微镜
- 计算骨架:逐试次复小波卷积 → 复系数单位化 → 平均向量长度即 ITPC
- 试次数偏倚不可忽视(随机期望约 sqrt(pi/4n));组间比较必须平衡试次数并做 Fisher z
- 幅值(ERD/ERS)与相位(ITPC)两条证据链并排报告,是最有说服力的呈现方式
✏️ 课后练习
- 对一份 ERP 数据分别计算 6Hz 与 40Hz 的 ITPC 曲线,比较两个频段锁相的时间窗差异。
- 人为删减试次数(保留 80% / 50% / 30%),画 ITPC 随试次数的变化,直观体会偏倚。
- 把两条件的 ITPC 做 Fisher z 变换后用置换检验比较(提示:模块 5 的置换框架可直接复用)。