FerroWave · guides

Transforms

The transforms and wavelet families ferro-wave provides, and when to reach for each.

Twelve transforms across two categories — six classical wavelet transforms and six adaptive decomposition methods — plus the Hilbert-Huang downstream, over five wavelet families and a Wavelet trait for custom filters.

Classical wavelet transforms

Batch entry points are free functions in ferro_wave::transform, each paired with its inverse where the transform is invertible.

TransformDescription
dwt / idwtDiscrete wavelet transform; multilevel via dwt_multilevel. PyWavelets-canonical output lengths.
modwt / imodwtMaximal-overlap DWT — shift-invariant, no downsampling, length-preserving per level.
swt / iswtStationary (undecimated) wavelet transform.
wpt / iwptWavelet packet transform with best-basis selection.
cwt / cwt_fft / icwtContinuous wavelet transform; cwt_fft is the FFT-accelerated path, ~15–20× over direct convolution.
complex / dual-tree CWTComplex wavelets and the dual-tree CWT for approximate shift-invariance with phase.

Wavelet families

ferro-wave provides five wavelet families plus a Wavelet trait for custom filters:

  • Haar.
  • Daubechies Db2, Db4, Db6, Db8, Db10.
  • Symlets Sym2 through Sym10.
  • Coiflets Coif1 through Coif5.
  • Biorthogonal CDF 5/3 and CDF 9/7.
  • Custom discrete filters via the Wavelet trait.
use ferro_wave::wavelets::{Daubechies, DaubechiesType, Symlet, Coiflet};
 
let db4   = Daubechies::new(DaubechiesType::Db4);
let sym8  = Symlet::new(8);
let coif3 = Coiflet::new(3);

Adaptive decomposition family

Where a wavelet transform projects onto a fixed basis, the adaptive family lets the data pick the basis. Every method returns the same IMF result type, so downstream code (Hilbert spectrum, ridge extraction, instantaneous-frequency tracking) works unchanged across the family. A short rubric for choosing:

  • EMD — greedy sifting on a single channel. Fast, no parameters; struggles with mode mixing on noisy or closely-spaced components.
  • EEMD / CEEMDAN — noise-assisted ensembles that stabilize mode count and reduce mode-mixing. CEEMDAN (default Improved/ICEEMDAN) gives exact reconstruction; pair with a fixed seed for deterministic IMFs.
  • MEMD — multivariate EMD for correlated channels; IMF index k is the same intrinsic scale on every channel by construction.
  • VMD — variational mode decomposition via ADMM, when K is known a priori (or swept with vmd_select_k). Modes are band-limited by construction.
  • EWT — EMD-style adaptivity with exact reconstruction and per-band Parseval energy via a Fourier-adaptive Meyer filter bank.
  • SST / SSWT — synchrosqueezed transform for a sharp time-frequency representation with provable AM-FM convergence (Daubechies-Lu-Wu 2011), plus ridge-based component inversion.
  • Hilbert Spectrum / HHT — the productized end-to-end EMD → Hilbert pipeline with stationarity diagnostics.

Use it

See the sanitized API reference for the full function signatures.