Skip to main content

PhaseLockingValue

Namespace: CONNECTIVITYLIB  ·  Library: Connectivity Library

Python equivalent

mne_connectivity.spectral_connectivity_epochs (method='plv') in MNE-Python.

#include <connectivity/phaselockingvalue.h>

class CONNECTIVITYLIB::PhaseLockingValue

Computes the Phase Locking Value of Lachaux et al.

(HBM 1999).

Each cross-spectral sample is divided by its magnitude (yielding a unit complex number that encodes only the instantaneous phase difference) and averaged across trials; PLV is the magnitude of that average. Per- trial normalised cross-spectra are accumulated in ConnectivitySettings::IntermediateSumData and the resulting edge weights are averaged over the frequency window defined on AbstractMetric.

Phase Locking Value estimator (Lachaux et al. 1999); amplitude-independent phase coupling, sensitive to zero-lag.

src/examples/ex_connectivity_metrics/main.cpp
Network plv = PhaseLockingValue::calculate(settings);
plv.setFrequencyRange(8.0f, 12.0f);

Inheritance​


Public Methods​

PhaseLockingValue()​

Constructs a PhaseLockingValue object.


Static Methods​

calculate(connectivitySettings)​

Calculates the phase locking value between the rows of the data matrix.

Parameters:

Returns:

  • Network — The connectivity information in form of a network structure.

Example​

Used in examples​

ex_connectivity_metrics​

Connectivity metrics on synthetic data with a known coupling.

src/examples/ex_connectivity_metrics/main.cpp, line 219
dswpli.setFrequencyRange(8.0f, 12.0f);
Network plv = PhaseLockingValue::calculate(settings);
plv.setFrequencyRange(8.0f, 12.0f);
for (const Network* network : {&pli, &wpli, &uspli, &dswpli, &plv}) {
const double w01 = edgeWeight(*network, 0, 1);
const double w02 = edgeWeight(*network, 0, 2);
ok &= expect(w01 > w02 + 0.3,
QString("%1 0-1 %2 > 0-2 %3 + 0.3").arg(network->getConnectivityMethod()).arg(w01).arg(w02));
}

Authors of this file​