ar2_network#

syncopy.synthdata.ar2_network(AdjMat=None, nSamples=1000, alphas=(0.55, -0.8), seed=None, nTrials=100)[source]#

Simulation of a network of coupled AR(2) processes

With the default parameters the individual processes (as in Dhamala 2008) have a spectral peak at 40Hz with a sampling frequency of 200Hz.

NOTE: There is no check for stability: setting the

alphas ad libitum and/or defining large and dense (many connections) systems will almost surely lead to an unstable system

NOTE: One can set the number of channels via the shape

of the supplied AdjMat. Defaults to 2.

Parameters:
  • AdjMat (np.ndarray or None) – nChannel x nChannel adjacency matrix where entry (i,j) is the coupling strength from channel i -> j. If left at None, the default 2 Channel system with unidirectional 2 -> 1 coupling is generated. See also mk_RandomAdjMat.

  • nSamples (int, optional) – Number of samples in time

  • alphas (2-element sequence, optional) – The AR(2) parameters for lag1 and lag2

  • seed (None or int.) – Random seed to init random number generator, passed on to np.random.default_rng function. When using this function with an nTrials argument (@collect_trials wrapper), and you do want the data of all trials to be identical (and reproducible), pass a single scalar seed and set ‘seed_per_trial=False’.

  • nTrials (int or None) – Number of trials for the returned AnalogData object. When set to None a single-trial ndarray is returned.

Returns:

signal – The nSamples x nChannel solution of the network dynamics

Return type:

numpy.ndarray