syncopy.specest.superlet.superlet

syncopy.specest.superlet.superlet(data_arr, samplerate, scales, order_max, order_min=1, c_1=3, adaptive=False)[source]

Performs Superlet Transform (SLT) according to Moca et al. 1 Both multiplicative SLT and fractional adaptive SLT are available. The former is recommended for a narrow frequency band of interest, whereas the is better suited for the analysis of a broad range of frequencies.

A superlet (SL) is a set of Morlet wavelets with increasing number of cycles within the Gaussian envelope. Hence the bandwith is constrained more and more with more cycles yielding a sharper frequency resolution. Complementary the low cycle numbers will give a high time resolution. The SLT then is the geometric mean of the set of individual wavelet transforms, combining both wide and narrow-bandwidth wavelets into a super-resolution estimate.

Parameters
  • data_arr (nD numpy.ndarray) – Uniformly sampled time-series data The 1st dimension is interpreted as the time axis

  • samplerate (float) – Samplerate of the time-series in Hz

  • scales (1D numpy.ndarray) – Set of scales to use in wavelet transform. Note that for the SL Morlet the relationship between scale and frequency simply is s(f) = 1/(2*pi*f) Need to be ordered high to low for adaptive=True

  • order_max (int) – Maximal order of the superlet set. Controls the maximum number of cycles within a SL together with the c_1 parameter: c_max = c_1 * order_max

  • order_min (int) – Minimal order of the superlet set. Controls the minimal number of cycles within a SL together with the c_1 parameter: c_min = c_1 * order_min Note that for admissability reasons c_min should be at least 3!

  • c_1 (int) – Number of cycles of the base Morlet wavelet. If set to lower than 3 increase order_min as to never have less than 3 cycles in a wavelet!

  • adaptive (bool) – Wether to perform multiplicative SLT or fractional adaptive SLT. If set to True, the order of the wavelet set will increase linearly with the frequencies of interest from order_min to order_max. If set to False the same SL will be used for all frequencies.

Returns

gmean_spec – Complex time-frequency representation of the input data. Shape is (len(scales),) + data_arr.shape

Return type

numpy.ndarray

Notes

1

Moca, Vasile V., et al. “Time-frequency super-resolution with superlets.” Nature communications 12.1 (2021): 1-18.