FerroWave

Denoise a signal

Use MODWT denoising to reduce micro-noise while preserving jumps.

Use MODWT denoising when the output must stay aligned with the input and jumps or regime shifts should remain sharp.

use ferro_wave::{Daubechies, DaubechiesType, Signal};
use ferro_wave::analysis::denoising::{
    denoise_modwt, DenoiseConfig, ThresholdMethod, ThresholdRule,
};
 
let signal = Signal::from_slice(&tick_returns);
let wavelet = Daubechies::new(DaubechiesType::Db4);
 
let config = DenoiseConfig {
    method: ThresholdMethod::Soft,
    rule: ThresholdRule::Universal,
    levels: 4,
    ..DenoiseConfig::default()
};
 
let clean = denoise_modwt(&signal, &wavelet, config)?;
assert_eq!(clean.len(), signal.len());
# Ok::<(), ferro_wave::WaveletError>(())

Use the analysis API for diagnostic variants and threshold configuration.