Homomorphic Deconvolution & Cepstral Analysis¶
Part of Statistical Methods — MORIE’s statistical-methods reference.
Cepstral analysis transforms convolution into addition via the log domain, enabling separation of mixed signals (e.g., excitation from impulse response in PCG recordings).
Real Cepstrum¶
The real cepstrum is defined as:
where \(X(k) = \text{FFT}(x[n])\).
from morie.signal import cepst
result = cepst(signal) # CepstrumResult with .cepstrum array
Complex Cepstrum¶
The complex cepstrum preserves phase information:
This is invertible: inverse_complex_cepstrum(complex_cepstrum(x)) = x.
from morie.signal import hcepst
result = hcepst(signal) # CepstrumResult
Liftering and Deconvolution¶
Given a signal \(y = h * e\) (convolution of impulse response and excitation), the complex cepstrum satisfies:
A low-time lifter (zeroing high-quefrency bins) isolates the slowly varying minimum-phase component from the rapidly varying excitation.
from morie.signal import hdecon
result = hdecon(pcg_signal, cutoff_quefrency=64)
min_phase = result.extra["min_phase"]
residual = result.extra["residual"]
Application: PCG S1/S2 Decomposition¶
In phonocardiogram analysis, homomorphic deconvolution separates valve closure transients (minimum-phase) from chest wall resonance. Combined with Shannon-energy envelope analysis and Higuchi fractal dimension, this enables murmur detection in cardiotoxicity studies.
from morie.signal import pcgflt, hdecon, pcgmur
filtered = pcgflt(pcg, fs=2000)
decomposed = hdecon(filtered.filtered, cutoff_quefrency=128)
score = pcgmur(pcg, fs=2000)
References¶
Oppenheim, A.V. & Schafer, R.W. (2009). Discrete-Time Signal Processing. Prentice Hall, Ch. 13.
Rangayyan, R.M. (2015). Biomedical Signal Analysis. IEEE Press, p. 338.