neurodsp.burst.detect_bursts_dual_threshold(sig, fs, dual_thresh, f_range=None, min_n_cycles=3, min_burst_duration=None, avg_type='median', magnitude_type='amplitude', **filter_kwargs)[source]

Detect bursts in a signal using the dual threshold algorithm.

sig1d array

Time series.


Sampling rate, in Hz.

dual_threshtuple of (float, float)

Low and high threshold values for burst detection. Units are normalized by the average signal magnitude.

f_rangetuple of (float, float), optional

Frequency range, to filter signal to, before running burst detection. If f_range is None, then no filtering is applied prior to running burst detection.

min_n_cyclesfloat, optional, default: 3

Minimum burst duration in to keep. Only used if f_range is defined, and is used as the number of cycles at f_range[0].

min_burst_durationfloat, optional, default: None

Minimum length of a burst, in seconds. Must be defined if not filtering. Only used if f_range is not defined, or if min_n_cycles is set to None.

avg_type{‘median’, ‘mean’}, optional

Averaging method to use to normalize the magnitude that is used for thresholding.

magnitude_type{‘amplitude’, ‘power’}, optional

Metric of magnitude used for thresholding.


Keyword parameters to pass to filter_signal.

is_burst1d array

Boolean indication of where bursts are present in the input signal. True indicates that a burst was detected at that sample, otherwise False.


Detect bursts using the dual threshold algorithm:

>>> from neurodsp.sim import sim_combined
>>> sig = sim_combined(n_seconds=10, fs=500,
...                    components={'sim_synaptic_current': {},
...                                'sim_bursty_oscillation' : {'freq': 10}},
...                    component_variances=[0.1, 0.9])
>>> is_burst = detect_bursts_dual_threshold(sig, fs=500, dual_thresh=(1, 2), f_range=(8, 12))

Examples using neurodsp.burst.detect_bursts_dual_threshold