cceps
Comprehensive cepstral analysis.
| Library |
|
Arguments
Input arguments
# x — input signal
+
the real vector
Details
The input signal, specified as a real vector. The use of a linear phase term avoids a phase jump by glad. That is, if necessary, it is cyclically shifted (after being padded with zeros) by several samples in order to obtain the zero phase on glad.
# n is the length of the zero—padded signal
+
a positive real integer
Details
The length of the signal, padded with zeros, is set as a positive real integer.
Output arguments
# xhat1 is the second complex cap
+
vector
Details
The second complex cepstr, returned as a vector. Argument xhat1 It is calculated using an alternative factorization algorithm described in [1] and [2]. This method is applicable only to signals of finite duration. The Algorithms section provides a comparison of Fourier and factorization methods for calculating complex kepstra.
Examples
Using cceps to display the echo signal
Details
In this example cceps It is used to display the echo of the signal. Generate a sinusoidal signal with the frequency 45 Hz and sampling rate 100 Hz. Add an echo signal with half the amplitude and with a delay 0.2 c. Calculate the complex cepstr of the signal. Let’s pay attention to the delayed echo 0.2 with.
import EngeeDSP.Functions: cceps
Fs = 100
t = 0:1/Fs:1.27
s1 = sin.(2*pi*45*t)
s2 = s1 + 0.5*[zeros(20); s1[1:108]]
c1, nd, c2 = cceps(s2)
plot(t, c1, title="Complex cepstrum", legend=false)

Algorithms
Cepstral analysis is a method of nonlinear signal processing, most often used in speech processing and homomorphic filtering [1]. Function cceps — this is an implementation of algorithm 7.1 from [3].
The table lists the advantages and disadvantages of Fourier and factorization algorithms.
| Algorithm | Advantages | Disadvantages |
|---|---|---|
Fourier Transform |
It can be used for any signals. |
Phase deployment is required. The output signal is low-frequency. |
Factorization |
No phase deployment is required. There is no frequency overlap. |
It can only be used for short-term signals. The input signal must have a Z-transform with all zeros, without zeros on the unit circle. |
In general, the results of these two algorithms cannot be used for mutual verification. They can be used for mutual verification only if the first element of the input data is positive, the Z-transform of the data sequence contains only zeros, all these zeros are inside the unit circle, and the input data sequence is long (or padded with zeros).
Literature
-
Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. Upper Saddle River, NJ: Prentice Hall, 1999, pp. 788–789.
-
Steiglitz, K., and B. Dickinson. Computation of the Complex Cepstrum by Factorization of the Z-transform. Proceedings of the 1977 IEEE® International Conference on Acoustics, Speech and Signal Processing, pp. 723–726.
-
Digital Signal Processing Committee of the IEEE Acoustics, Speech, and Signal Processing Society, eds. Programs for Digital Signal Processing. New York: IEEE Press, 1979.