Operation reference#
Every step in a pipeline names one of these operations. Parameters go in the step’s params table; anything not listed is rejected, and missing parameters take the defaults shown. modewise ops --json gives the same information as JSON Schema, for tools and agents.
ceemdan#
CEEMDAN, improved form: noise-assisted EMD whose modes sum to the signal (docs/emd.md).
Inputs:
signal(series)Outputs:
modes(decomposition)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
integer |
— |
s_number: consecutive siftings with extrema and zero crossings within one (2 by default). |
|
number |
|
ceemdan only: noise scale ε. |
|
integer |
— |
Stop after this many IMFs (the rest is the residual); all by default, at most ⌊log₂ n⌋ − 1 for eemd. |
|
number |
|
rilling: the envelope mean relative to the mode amplitude must stay below this on all but a fraction tol of samples. |
|
number |
|
rilling: the same ratio must stay below this everywhere (0.5; memd 0.75). |
|
integer |
|
eemd and ceemdan: noise seed. |
|
integer |
— |
fixed: siftings per IMF (10 by default). |
|
|
|
When sifting stops: |
|
number |
|
rilling: the fraction of samples allowed above sd (0.05; memd 0.075). |
|
integer |
|
eemd and ceemdan: noise realisations. |
cwt#
Morlet continuous wavelet transform power on log-spaced frequencies, with a cone of influence (docs/time-frequency.md).
Inputs:
signal(series)Outputs:
power(time_frequency)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
number |
required |
Highest frequency in Hz, at most Nyquist. |
|
number |
required |
Lowest frequency in Hz, above 0. The transform analyses the geometric centres of log-spaced bins. |
|
integer |
required |
Number of log-spaced frequencies. |
|
number |
|
Morlet wavenumber (Torrence and Compo use 6). |
|
boolean |
|
Divide power by scale to remove the bias towards low frequencies (Liu et al. 2007). |
eemd#
Ensemble EMD: the mean of EMDs of the signal plus seeded white noise (docs/emd.md).
Inputs:
signal(series)Outputs:
modes(decomposition)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
integer |
— |
s_number: consecutive siftings with extrema and zero crossings within one (2 by default). |
|
integer |
— |
Stop after this many IMFs (the rest is the residual); all by default, at most ⌊log₂ n⌋ − 1 for eemd. |
|
number |
|
eemd only: noise SD relative to the signal’s. |
|
number |
— |
rilling: the envelope mean relative to the mode amplitude must stay below this on all but a fraction tol of samples. |
|
number |
— |
rilling: the same ratio must stay below this everywhere (0.5; memd 0.75). |
|
integer |
|
eemd and ceemdan: noise seed. |
|
integer |
|
fixed: siftings per IMF (10 by default). |
|
|
|
When sifting stops: |
|
number |
— |
rilling: the fraction of samples allowed above sd (0.05; memd 0.075). |
|
integer |
|
eemd and ceemdan: noise realisations. |
emd#
Empirical mode decomposition of each channel on its own (docs/emd.md).
Inputs:
signal(series)Outputs:
modes(decomposition)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
integer |
— |
s_number: consecutive siftings with extrema and zero crossings within one (2 by default). |
|
integer |
— |
Stop after this many IMFs (the rest is the residual); all by default, at most ⌊log₂ n⌋ − 1 for eemd. |
|
number |
|
rilling: the envelope mean relative to the mode amplitude must stay below this on all but a fraction tol of samples. |
|
number |
|
rilling: the same ratio must stay below this everywhere (0.5; memd 0.75). |
|
integer |
— |
fixed: siftings per IMF (10 by default). |
|
|
|
When sifting stops: |
|
number |
|
rilling: the fraction of samples allowed above sd (0.05; memd 0.075). |
epoch#
Cuts windows around events out of a full-run series, decomposition, instantaneous attributes or time–frequency map, with an explicit haemodynamic lag (docs/epochs.md).
Inputs:
data(series or decomposition or instantaneous or time_frequency),events(events)Outputs:
epochs(epochs)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
number |
required |
Required: shift added to event times (haemodynamic delay in fMRI; 0 for EEG). |
|
list of string |
— |
Keep only these event labels; all by default. |
|
number |
— |
Merge consecutive same-label events (trials) into blocks when gaps are at most this long. |
|
number |
|
A mode or frequency is resolvable in an epoch when frequency × epoch length ≥ this, and, for maps with a cone of influence, the whole epoch is outside it (docs/epochs.md). |
|
|
|
|
functional_connectivity#
Functional connectivity per component (and per epoch): Pearson correlation or phase locking value (docs/connectivity.md).
Inputs:
data(series or decomposition or epochs)Outputs:
matrices(functional_connectivity)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
|
required |
|
|
boolean |
|
Return atanh(r) (pearson only); the diagonal becomes NaN. |
hilbert#
Instantaneous amplitude and frequency of every mode from its analytic signal (docs/time-frequency.md).
Inputs:
modes(decomposition)Outputs:
attributes(instantaneous)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
|
|
Extend the signal before the FFT ( |
hilbert_spectrum#
Hilbert spectrum: instantaneous amplitude or power of the modes binned on a frequency grid over time (docs/time-frequency.md).
Inputs:
attributes(instantaneous)Outputs:
power(time_frequency)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
number |
required |
Highest edge of the frequency grid in Hz. |
|
number |
required |
Lowest edge of the frequency grid in Hz (above 0 for a log grid). |
|
integer |
required |
Number of bins, each [low, high). |
|
|
|
|
|
|
|
|
memd#
Multivariate EMD: the same IMFs in every channel, from projections on many directions (docs/emd.md).
Inputs:
signal(series)Outputs:
modes(decomposition)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
integer |
— |
s_number: consecutive siftings with extrema and zero crossings within one (2 by default). |
|
integer |
— |
Stop after this many IMFs (the rest is the residual); all by default, at most ⌊log₂ n⌋ − 1 for eemd. |
|
integer |
|
memd only: projection directions; use at least twice the channels. |
|
number |
|
rilling: the envelope mean relative to the mode amplitude must stay below this on all but a fraction tol of samples. |
|
number |
|
rilling: the same ratio must stay below this everywhere (0.5; memd 0.75). |
|
integer |
— |
fixed: siftings per IMF (10 by default). |
|
|
|
When sifting stops: |
|
number |
|
rilling: the fraction of samples allowed above sd (0.05; memd 0.075). |
modwt_mra#
MODWT multiresolution analysis: octave-band details and a smooth that sum to each channel (docs/wavelets.md).
Inputs:
signal(series)Outputs:
modes(decomposition)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
|
|
|
|
integer |
— |
Deepest level; by default the deepest whose filter fits the series. |
|
string |
|
sym4 is MATLAB’s default and Percival and Walden’s LA(8). |
mvmd#
Multivariate variational mode decomposition: K modes shared by all channels (Rehman and Aftab 2019).
Inputs:
signal(series)Outputs:
modes(decomposition)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
number |
required |
Bandwidth penalty; larger means narrower modes. |
|
integer |
required |
Number of modes K. |
|
|
|
Starting centre frequencies: |
|
integer |
|
Iteration cap. |
|
number |
|
Dual ascent step; 0 lets noise stay out of the modes. |
|
number |
|
Stop when the mean squared update falls below this. |
na_mvmd#
Noise-assisted MVMD: MVMD with white-noise channels appended, less sensitive to K (Zisou et al. 2021).
Inputs:
signal(series)Outputs:
modes(decomposition)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
number |
required |
Bandwidth penalty; larger means narrower modes. |
|
integer |
required |
Number of modes K. |
|
|
|
Starting centre frequencies: |
|
integer |
|
Iteration cap. |
|
integer |
|
na_mvmd only: white-noise channels appended before decomposing. |
|
number |
|
na_mvmd only: noise SD relative to the unit-SD signal channels. |
|
integer |
|
na_mvmd only: seed for the noise. |
|
number |
|
Dual ascent step; 0 lets noise stay out of the modes. |
|
number |
|
Stop when the mean squared update falls below this. |
reconstruct#
Sums chosen modes of a decomposition back into a series, for example to keep one band.
Inputs:
modes(decomposition)Outputs:
signal(series)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
list of integer |
required |
Mode indices to sum, counted from the lowest frequency. |
region_average#
Averages channels by region, hemisphere or tag (functional connectivity in Fisher z) (docs/regions.md).
Inputs:
data(series or decomposition or time_frequency or epochs or functional_connectivity),channels(channels)Outputs:
averaged(series or decomposition or time_frequency or epochs or functional_connectivity)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
|
required |
Group channels by |
|
boolean |
|
Keep left and right apart: |
|
string |
— |
Tag key to group by when |
select#
Keeps the channels whose name, region, hemisphere or tags match the rules (docs/regions.md).
Inputs:
data(series or decomposition or instantaneous or time_frequency or epochs or functional_connectivity or loadings or channels),channels(channels)Outputs:
selected(series or decomposition or instantaneous or time_frequency or epochs or functional_connectivity or loadings or channels)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
list of table ( |
required |
Channels matching any rule are kept. A rule has any of |
spectrum#
Power spectral density per channel as one frame: a periodogram, or Welch’s method with segments (as scipy.signal).
Inputs:
signal(series)Outputs:
power(time_frequency)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
|
|
Per segment: |
|
number |
— |
Overlap between segments in seconds; half a segment when absent. |
|
number |
— |
Welch segment length in seconds; the whole run when absent. |
|
|
|
|
stft#
Short-time Fourier transform power with a periodic Hann window.
Inputs:
signal(series)Outputs:
power(time_frequency)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
integer |
required |
Step between frames in samples. |
|
integer |
required |
Window length in samples (periodic Hann). |
vlmd#
Variational latent mode decomposition: modes of a few latent signals and sparse channel loadings (docs/vlmd.md).
Inputs:
signal(series)Outputs:
modes(decomposition),latent_modes(decomposition),loadings(loadings)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
integer |
required |
Number of modes K. |
|
number |
|
Bandwidth penalty; larger means narrower modes. |
|
integer |
|
Iteration cap. |
|
integer |
— |
Number of latent components L, at most the number of channels; one per channel by default. |
|
number |
|
Sparsity of the loadings, on the reference code’s scale. |
|
number |
|
ADMM penalty. |
|
number |
|
Dual step, in [0, 1]. |
|
number |
|
Stop when the summed squared relative change of the centre frequencies falls to this. |
vmd#
Variational mode decomposition of each channel on its own (Dragomiretskiy and Zosso 2014).
Inputs:
signal(series)Outputs:
modes(decomposition)
Parameter |
Type |
Default |
Meaning |
|---|---|---|---|
|
number |
required |
Bandwidth penalty; larger means narrower modes. |
|
integer |
required |
Number of modes K. |
|
|
|
Starting centre frequencies: |
|
integer |
|
Iteration cap. |
|
number |
|
Dual ascent step; 0 lets noise stay out of the modes. |
|
number |
|
Stop when the mean squared update falls below this. |