FerroWave

Streaming CWT

Maintain a rolling continuous-wavelet view of incoming samples.

Streaming transforms keep the window, update strategy, and coefficient refresh policy explicit. Use them when a live pipeline needs incremental wavelet state instead of batch recomputation.

use ferro_wave::streaming::cwt::StreamingCWT;
use ferro_wave::streaming::context::{StreamingContext, WindowConfig};
use ferro_wave::transform::cwt::Morlet;
 
let context = StreamingContext::new(WindowConfig::fixed(512));
let wavelet = Morlet::default();
let scales = vec![2.0, 4.0, 8.0, 16.0, 32.0];
 
let mut cwt = StreamingCWT::new(context, wavelet, scales)?;
 
for sample in samples {
    if let Some(result) = cwt.push(sample)? {
        publish_scalogram(result.coefficients);
    }
}
# Ok::<(), ferro_wave::WaveletError>(())

Use the streaming API for the current DWT, MODWT, SWT, CWT, adaptive, and denoising contracts.