Skip to contents

Separates a convolved signal \(x = h * e\) into a minimum-phase impulse-response component \(h\) and an excitation \(e\) by low-time liftering of the complex cepstrum.

Usage

hdecon(x, cutoff, n_fft = NULL)

Arguments

x

Numeric vector (assumed convolution \(h * e\)).

cutoff

Liftering cutoff (quefrency index). Coefficients above are zeroed to isolate the slow-varying component.

n_fft

FFT length (default: next power of 2 \(\geq\) length(x)).

Value

List with filtered (minimum-phase component \(h\)), name, fs, n_samples, and extra (excitation, cutoff, n_fft).

Details

Reference: Oppenheim & Schafer (2009), Discrete-Time Signal Processing, 3rd ed., on homomorphic systems for convolution.

Examples

# \donttest{
set.seed(1)
x <- sin(2 * pi * 5 * seq(0, 1, length.out = 512))
res <- hdecon(x, cutoff = 20)
length(res$filtered)
#> [1] 512
# }