modwt

Function modwt 

pub fn modwt<T: SignalType>(
    signal: &Signal<T>,
    wavelet: &dyn Wavelet,
) -> Result<MODWTResult<T>>
Expand description

Perform a single-level Maximal Overlap Discrete Wavelet Transform (MODWT)

MODWT is a shift-invariant transform that:

  • Does not downsample (retains all coefficients)
  • Uses circular convolution (periodic boundary)
  • Rescales wavelet filters by 1/√2 for exact energy preservation
  • Is ideal for financial time series analysis

Key difference from SWT:

  • Both MODWT and SWT use the same wavelet filters and provide shift-invariance
  • MODWT rescales filters by 1/√2, ensuring exact orthogonality and energy preservation
  • SWT uses original filter coefficients, which simplifies implementation but requires averaging

§Arguments

  • signal - Input signal
  • wavelet - Wavelet to use for decomposition. Must be orthogonal — biorthogonal wavelets are rejected (see Errors).

§Returns

  • MODWTResult containing wavelet and scaling coefficients

§Errors

Returns WaveletError::TransformError if wavelet.is_biorthogonal() is true. MODWT’s energy-partition identity requires orthogonal analysis filters, which biorthogonal wavelets (e.g. CDF 5/3, CDF 9/7) do not satisfy.