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;