neurodsp.spectral.compute_scv_rs(sig, fs, window='hann', nperseg=None, noverlap=0, method='bootstrap', rs_params=None)[source]

Compute a resampled version of the spectral coefficient of variation (SCV).

sig1d array

Time series of measurement values.


Sampling rate, in Hz.

windowstr or tuple or array_like, optional, default: ‘hann’

Desired window to use. See scipy.signal.get_window for a list of available windows. If array_like, the array will be used as the window and its length must be nperseg.

npersegint, optional

Length of each segment, in number of samples. If None, and window is str or tuple, is set to 1 second of data. If None, and window is array_like, is set to the length of the window.

noverlapint, optional, default: 0

Number of points to overlap between segments.

method{‘bootstrap’, ‘rolling’}, optional

Method of resampling:

  • ‘bootstrap’ randomly samples a subset of the spectrogram repeatedly.

  • ‘rolling’ takes the rolling window scv.

rs_paramstuple, (int, int), optional

Parameters for resampling algorithm, depending on the method used:

  • If ‘bootstrap’, rs_params = (n_slices, n_draws), defaults to (10% of slices, 100 draws).

  • If ‘rolling’, rs_params = (n_slices, n_steps), defaults to (10, 5).


  • n_slices is the number of slices per draw

  • n_draws is the number of random draws

  • n_steps is the number of slices to step forward.

freqs1d array

Frequencies at which the measure was calculated.

t_inds1d array or None

Time indices at which the measure was calculated. This is only returned for ‘rolling’ resampling. If ‘bootstrap’, t_inds = None.

scv_rs2d array

Resampled spectral coefficient of variation.


In the resampled version, instead of a single estimate of mean and standard deviation, the spectrogram is resampled.

Resampling can be done either randomly (method=’bootstrap’) or in a time-stepped manner (method=’rolling’).


Compute the resampled spectral coefficient of variation, using the bootstrap method:

>>> from neurodsp.sim import sim_combined
>>> sig = sim_combined(n_seconds=10, fs=500,
...                    components={'sim_powerlaw': {}, 'sim_oscillation' : {'freq': 10}})
>>> freqs, t_inds, scv_rs = compute_scv_rs(sig, fs=500, method='bootstrap')

Examples using neurodsp.spectral.compute_scv_rs