meegsim.coupling.ppc_von_mises#
- meegsim.coupling.ppc_von_mises(waveform, sfreq, phase_lag, kappa, fmin, fmax, envelope='random', m=1, n=1, random_state=None)[source]#
Generate a time series that is phase coupled to the input time series with a probabilistic phase lag based on the von Mises distribution.
This function can be used to set up both within-frequency (1:1, default) and cross-frequency (n:m) coupling.
Note
This function is using Hilbert transform for manipulating the phase of the time series, so the result might not be meaningful if applied to broadband data.
- Parameters:
- waveform
array The input signal to be processed. It can be a real or complex time series.
- sfreq
float Sampling frequency (in Hz).
- phase_lag
float Average phase lag to apply to the waveform in radians.
- kappa
float Concentration parameter of the von Mises distribution. With higher kappa, phase shifts between input and output waveforms are more concentrated around the mean value provided in
phase_lag. With lower kappa, phase shifts will vary substantially for different time points.- fmin: float
Lower cutoff frequency of the base frequency harmonic (in Hz).
- fmax: float
Upper cutoff frequency of the base frequency harmonic (in Hz).
- envelope
str, {“same”, “random”} Controls the amplitude envelope of the coupled waveform to be either randomly generated (default) or to be the same as the envelope of the input waveform.
- m
float, optional Multiplier for the base frequency of the output oscillation, default is 1.
- n
float, optional Multiplier for the base frequency of the input oscillation, default is 1.
- random_state
None(default) orint Seed for the random number generator. If None (default), results will vary between function calls. Use a fixed value for reproducibility.
- waveform
- Returns:
- out
array, shape (n_times,) The phase-coupled waveform with the same amplitude envelope as the input one.
- out
Examples using meegsim.coupling.ppc_von_mises#
Phase-phase coupling based on von Mises distribution