Crate ferro_wave

Crate ferro_wave 

Expand description

High-performance wavelet transforms for signal processing

FerroWave provides wavelet transforms, analysis primitives, sparse decomposition, and streaming utilities for signal-processing workflows.

§Quick Start

use ferro_wave::{Signal, Haar, dwt, idwt, BoundaryMode};

let signal = Signal::from_slice(&[1.0, 2.0, 3.0, 4.0]);
let haar = Haar::new();

// Forward transform
let coeffs = dwt(&signal, &haar, BoundaryMode::Periodic)?;

// Perfect reconstruction
let reconstructed = idwt(&coeffs.approximation, &coeffs.detail,
                        &haar, BoundaryMode::Periodic, coeffs.original_length)?;

§Transform Types

  • DWT/IDWT: Fast discrete wavelet transform with perfect reconstruction
  • MODWT/IMODWT: Shift-invariant transform ideal for time series analysis
  • SWT/ISWT: Redundant transform using à trous algorithm
  • WPT/IWPT: Wavelet packet transform with best-basis utilities
  • CWT/CWT-FFT/ICWT: Continuous wavelet transform for time-frequency analysis
  • EMD/EEMD: Empirical mode decomposition for non-stationary signals
  • CEEMDAN/MEMD: Noise-assisted and multivariate EMD variants with exact reconstruction
  • Hilbert spectrum / HHT: Time-frequency-energy density from EMD-family IMFs
  • EWT/iEWT: Empirical wavelet transform — Fourier-adaptive Meyer filter bank

§Supported Wavelets

  • Haar: Jump detection, signal discontinuities
  • Daubechies (Db2, Db4, Db6, Db8, Db10): General purpose analysis
  • Symlets (Sym2-Sym10): Minimal phase distortion for trend analysis
  • Coiflets (Coif1-Coif5): Near-symmetric for polynomial trends
  • Biorthogonal (CDF 5/3, CDF 9/7): Fast lifting scheme implementation

§More Documentation

See the repository docs for transform trade-offs, streaming support, benchmark targets, and advanced analysis guidance.

Re-exports§

pub use error::Result;
pub use error::WaveletError;
pub use io::SignalReader;
pub use io::SignalWriter;
pub use memory::AlignedBuffer;
pub use signal::Signal;
pub use signal::SignalType;
pub use transform::BoundaryMode;
pub use transform::DWTResult;
pub use transform::MultilevelDWTResult;
pub use transform::TransformConfig;
pub use transform::dwt;
pub use transform::dwt;
pub use transform::dwt_multilevel;
pub use transform::idwt;
pub use transform::idwt_multilevel;
pub use wavelets::Biorthogonal;
pub use wavelets::BiorthogonalType;
pub use wavelets::Coiflet;
pub use wavelets::Daubechies;
pub use wavelets::DaubechiesType;
pub use wavelets::Haar;
pub use wavelets::Symlet;
pub use wavelets::Wavelet;

Modules§

analysis
Signal Analysis Module
decomposition
Signal Decomposition Module
error
io
memory
signal
streaming
Streaming wavelet transform for real-time signal processing
transform
Wavelet transform implementations
wavelets
Wavelet families