python实现跨频耦合:PLV、MV L、MI 您所在的位置:网站首页 耦合计算公式 python实现跨频耦合:PLV、MV L、MI

python实现跨频耦合:PLV、MV L、MI

2024-07-17 09:57| 来源: 网络整理| 查看: 265

目的:介绍跨频耦合的背景及常用的计算方法 1、背景 神经科学的核心问题之一是神经活动如何在不同的空间和时间尺度上协调。跨频率耦合(Cross-frequency coupling, CFC) 已被提出在时间和空间尺度上协调神经动力学。 时间尺度:神经振荡之间的相幅耦合。例如,低频振荡的相位可以影响高频振荡的振幅,从而调节神经活动的时序,实现信息处理和集成。空间尺度:神经振荡之间的空间耦合。例如,不同频率范围内的神经振荡可以在不同脑区之间相互调节,形成神经网络,实现信息的传递和整合。 EEG信号的CFC是指不同频率范围内的神经振荡之间存在相互调节和交互作用的现象。换句话说,CFC实际上是不同频带EEG的幅度/频率/相位之间的关系。常见的耦合关系如下:【慢震荡(Slow Oscillation,SO);快震荡( Fast Oscillation,FO )】 相位-幅度耦合(phase-amplitude coupling,PAC):SO的相位与FO幅度之间的耦合,也称为“嵌套”。目前研究比较多的是θ - γ和α - γ之间的PAC。相位-频率耦合(phase- frequency coupling,PFC):SO的相位和FO的频率之间的耦合。相位-相位耦合(phase-phase coupling,PPC):SO和FO相位之间的耦合。 2、CFC在神经疾病中的应用

跨频耦合作为一种神经机制,在多种神经疾病中都得到了广泛研究:

癫痫:研究表明[1], 跨频频率耦合是定位癫痫组织的有用生物标志物。帕金森病:研究表明[2],theta-gamma跨频耦合可以作为帕金森疾病的生物标志,并有助于对帕金森疾病的早期诊断和治疗进行监测。精神分裂症:研究表明[3], theta-gamma跨频耦合减弱与认知障碍症状的严重程度有关。抑郁症:研究表明[4],抑郁症患者与健康对照组相比,前额叶皮层的theta-gamma跨频耦合存在显著差异。 3、CFC常用计算方法 [5] 锁相值(phase-locking value,PLV)平均向量长度(mean vector length,MVL)调制指数(modulation index,MI) 3.1 锁相值(phase-locking value,PLV)

定义:PLV通过比较两个信号的相位差来评估它们之间的同步性。如果两个信号存在相位-幅度耦合,那么高频时间序列的振幅将在低频振荡。

计算步骤 pCyH5fs.png

计算公式 P L V = ∣ ∑ t = 1 n e i ( θ l t − θ u t ) n ∣ PLV=|\frac{ {\sum_{t=1}^{n}{e^{i(\theta _{lt}-\theta _{ut})} } } }{n}| PLV=∣n∑t=1n​ei(θlt​−θut​)​∣ 其中 n:数据点总数 t:时间数据点 θlt:t时刻的低频相位角 θut:希尔伯特变换后的高频振幅时间序列在t时刻的相位角

优点和缺点: 优点:受噪声影响小。 缺点:希尔伯特转换后的振幅时间序列不一定是窄带振荡。

python代码实现:

# 利用PLV计算相幅耦合 def PLV_CFC_WSH(phase, amp): # phase:低频信号的相位 # amp:高频信号的振幅 amp_phi = np.angle(hilbert(amp)) # 高频信号振幅的相位 observed_plv = np.abs(np.sum(np.exp(1j*(phase - amp_phi)))/len(phase)) return observed_plv 3.2 平均向量长度(mean vector length,MVL) 定义:MVL是一个向量集合中各个向量长度的平均值,它提供了对向量集合整体大小或幅度的一种度量。在CFC的计算中,将对应时刻的低频信号的相位角作为向量的方向,高频信号的振幅作为向量的幅度。计算步骤: pCyHopn.png计算公式: M V L = ∣ ∑ t = 1 n a t e i θ t n ∣ MVL=\left | \frac{ {\textstyle \sum_{t=1}^{n}{a_{t} e^{i\theta _{t}} } } }{n}\right | MVL= ​n∑t=1n​at​eiθt​​ ​

其中: n:数据点总数 t:时间数据点 at:高频振幅时间序列在t时刻的幅值 θt:低频相位时间序列在t时刻的相位角

优点和缺点: 优点:对于长数据段,高采样率,高信噪比的信号,建议使用MVL。 缺点: MVL的计算受到频率振幅的整体幅度影响。如果某个频率的振幅较大,那么它将在计算MVL时有更大的权重。这可能会导致对整个向量集合大小或幅度的评估存在一定的偏差。振幅异常值可能会强烈影响平均向量长度。不同向量之间的相位角差异可能会影响平均向量长度的计算结果。 python代码实现: # 利用MVL计算相幅耦合 def MVL_CFC_WSH(phase, amp): # phase:低频信号的相位 # amp:高频信号的振幅 amp_nor = (amp - np.min(amp)) / (np.max(amp) - np.min(amp)) # 振幅归一化 observed_mvl = np.abs(np.mean(amp_nor * np.exp(1j*phase))) return observed_mvl 3.3 调制指数(modulation index,MI)

定义:MI通过计算幅度和相位的熵来估计幅度调制指数。

计算步骤: pCyH760.png

计算公式:

p ( j ) = a ˉ ∑ k = 1 N a ˉ k \begin{aligned}p(j)=\frac{\bar{a} }{ {\textstyle \sum_{k=1}^{N}} \bar{a} _{k}} \end{aligned} p(j)=∑k=1N​aˉk​aˉ​​

ā为单个bin的平均振幅,k为bins的运行指数,N为bins的总数;p是一个有N个值的向量;H§为香农熵。 H ( p ) = − ∑ j = 1 N p ( j ) l o g p ( j ) K L ( U , X ) = l o g N − H ( p ) M I = K L ( U , X ) l o g N \begin{aligned} H(p)=- {\textstyle \sum_{j=1}^{N}p(j)logp(j)}\\ KL(U,X)=logN-H(p)\\ MI=\frac{KL(U,X)}{logN} \end{aligned} H(p)=−∑j=1N​p(j)logp(j)KL(U,X)=logN−H(p)MI=logNKL(U,X)​​

U为均匀分布,X为数据分布。 KL(U, K): KL散度描述了用均匀分布U来估计数据的真实分布X的编码损失。

优点和缺点: 优点:

归一化熵是一种常用的信号复杂性度量,可以反映信号的不确定性和信息丰富度。对于更短的数据,更低的采样率,更高噪声的数据,建议使用MI。MI是使用最多的CFC方法。

缺点: 4. 依赖于特定的熵测量方法; 5. 对数据预处理的要求较高;

python代码实现:

# 利用MI计算相幅耦合 def MI_CFC_WSH(phase, amp, nbins): # phase:低频信号的相位 # amp:高频信号的振幅 # nbins:划分的箱子数 bins = np.linspace(-np.pi, np.pi, nbins+1) # 计算每个相位区间内的振幅均值 meanAmp = np.zeros(nbins) for i in range(nbins): indices = np.logical_and(phase >= bins[i], phase


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有