Skip to main content

fft_deconvolve

Function fft_deconvolve 

Source
pub fn fft_deconvolve<T: Sample>(
    numerator: &NonEmptySlice<T>,
    denominator: &NonEmptySlice<T>,
    regularization: f64,
) -> SpectrogramResult<NonEmptyVec<T>>
Expand description

Regularised spectral-division deconvolution of two real signals.

Computes Y(f) = N(f)·conj(D(f)) / (|D(f)|² + ε) where ε = regularization · max|D(f)|², then inverse-transforms. With regularization = 0.0 this is a pure inverse filter; small positive values stabilise division near spectral nulls of the denominator. Output length is numerator.len() - denominator.len() + 1 (clamped to at least 1). The numerator is expected to be the full linear-convolution output of the original signal and the denominator; passing a shorter numerator may introduce circular-aliasing artifacts.

§Errors

Propagates any FFT/IFFT failure from the underlying plan.