计算脑电信号相位锁定值 Phase Locking Value

本文介绍了计算脑电信号相位锁定值(Phase Locking Value, PLV)的方法,涉及希尔伯特变换、相位差计算及指数平均。PLV值在0-1之间,0表示相位无同步。提供了Matlab函数的链接及使用示例,展示如何处理16通道x840数据点x80次试验的脑电信号,滤波范围为8-12Hz,并绘制了特定通道的PLV结果。" 132312011,7337247,Kafka在大数据处理中的应用与实践,"['大数据处理', '实时计算', '消息队列', 'Kafka', '复杂事件处理']
摘要由CSDN通过智能技术生成

PLV:相位同步信息在时域的计算值

分别计算两个通道数据的希尔伯特变换,然后计算数据的瞬时相位差值,然后根据所有点的相位差计算自然常数为底的指数,将指数的绝对值求和平均,得到PLV的值

值的区间是0-1,0说明相位完全没同步

Matlab函数:文末有附
https://www.mathworks.com/matlabcentral/fileexchange/31600-phase-locking-value

用法:
脑电数据格式是16个通道x840个数据点x80个trial
采样率1200Hz
滤波区间8-12Hz
绘制3通道和4通道的PLV值

  eegData=samples(:,:,find(labels==0));
  srate = 1200; %Hz
  filtSpec.order = 50;
  filtSpec.range = [8 12]; %Hz
  [plv] = pn_eegPLV(eegData, srate, filtSpec);
  figure;
  plot(squeeze(plv(:,3,4)));
  xlabel('Time (s)'); 
  ylabel('Plase Locking Value');

结果:
在这里插入图片描述
函数:

function [plv] = pn_eegPLV(eegData, srate, filtSpec, dataSelectArr)
% Computes the Phase Locking Value (PLV) for an EEG dataset.
%
% Input parameters:
%   eegData is a 3D matrix numChannels x numTimePoints x numTrials
%   srate is the sampling rate of the EEG data
%   filtSpec is the filter specification to filter the EEG signal in the
%     desired frequency band of interest. It is a structure with two
%     fields, order and range. 
%       Range specifies the limits of the frequency
%     band, for example, put filtSpec.range = [35 45] for gamma band.
%       Specify the order of the FIR filter in filtSpec.order. A useful
%     rule of thumb can be to include about 4 to 5 cycles of the desired
%     signal. For example, filtSpec.order = 50 for eeg data sampled at
%     500 Hz corresponds to 100 ms and contains ~4 cycles of gamma band
%     (40 Hz).
%   dataSelectArr (OPTIONAL) is a logical 2D matrix of size 
好的,关于MNE-Python中使用锁相制(PLV)对电信号进行分析,我可以告诉你以下几点: 1. 在MNE-Python中,可以使用mne.connectivity.spectral_connectivity函数来计算PLV矩阵,其中可以指定频带、时间窗口和传感器选择等参数。 2. 首先需要导入相关的库和数据,例如: import numpy as np import mne from mne.connectivity import spectral_connectivity # Load data raw = mne.io.read_raw_edf('sample.edf') events = mne.find_events(raw) 3. 然后需要对数据进行预处理和滤波操作,例如: # Set up EEG montage montage = mne.channels.make_standard_montage('standard_1005') raw.set_montage(montage) # Filter data raw.filter(0.5, 30.0, fir_design='firwin') # Define epochs tmin, tmax = -1., 4. event_id = {'auditory/left': 1, 'auditory/right': 2} baseline = (None, 0) epochs = mne.Epochs(raw, events, event_id, tmin, tmax, baseline=baseline, reject=dict(eeg=80e-6, eog=150e-6), preload=True) 4. 最后使用spectral_connectivity函数计算PLV矩阵,例如: # Compute PLV fmin, fmax = 8., 13. sfreq = raw.info['sfreq'] plv, freqs, times, n_epochs, n_tapers = spectral_connectivity( epochs, method='plv', mode='fourier', sfreq=sfreq, fmin=fmin, fmax=fmax, faverage=True, tmin=None, tmax=None, mt_bandwidth=None, mt_adaptive=True, n_jobs=1) # Plot PLV matrix mne.viz.plot_connectivity_circle(plv, montages=None, n_lines=None, node_angles=None, node_colors=None, title='PLV', facecolor='white') 希望以上内容对你有所帮助。如果你还有其他问题,可以随时问我。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

油泼西红柿

Wish U Thrive

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值