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 latter 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 axissamplerate (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 iss(f) = 1/(2*pi*f)
Need to be ordered high to low for adaptive=Trueorder_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) – Whether to perform fractional adaptive SLT or multiplicative 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:
Notes