LR Rabiner and RW Schafer, June 3
LR Rabiner and RW Schafer, June 3
LR Rabiner and RW Schafer, June 3
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
DRAFT: L. R. <strong>Rabiner</strong> <strong>and</strong> R. W. <strong>Schafer</strong>, <strong>June</strong> 3, 2009<br />
8.4. COMPUTING THE SHORT-TIME CEPSTRUM AND COMPLEX CEPSTRUM OF SPEECH455<br />
discrete-time Fourier transform of the complex logarithm of the Fourier transform<br />
of the input.<br />
As we have already observed, there are questions of uniqueness of this set of<br />
equations. In order to clearly define the complex cepstrum with Eqs. (8.56a)-<br />
(8.56c), we must provide a unique definition of the complex logarithm of the<br />
Fourier transform. To do this, it is helpful to impose the constraint that the<br />
complex cepstrum of a real input sequence be also a real sequence. Recall that<br />
for a real sequence the real part of the Fourier transform is an even function<br />
<strong>and</strong> the imaginary part is odd. Therefore, if the complex cepstrum is to be a<br />
real sequence, we must define the log magnitude function to be an even function<br />
of ω <strong>and</strong> the phase must be defined to be an odd function of ω. As we have<br />
already asserted, a further sufficient condition for the complex logarithm to<br />
be unique is that the phase be computed so that it is a continuous periodic<br />
function of ω with period of 2π [13, 20]. Algorithms for the computation of<br />
an appropriate phase function typically start with the principal value phase<br />
sampled at the DFT frequencies as a basis for search for discontinuities of size<br />
2π. Due to the sampling, care must be taken to locate the frequencies at which<br />
the discontinuities occur. A simple approach, that generally works well if the<br />
phase is densely sampled, is to search for jumps (either positive or negative)<br />
of size greater than some prescribed tolerance. 9 Once the frequencies where<br />
the principal value “wraps around” are found, the appropriate multiples of 2π<br />
radians can be added or subtracted to produce the “unwrapped phase” [20, 27].<br />
Another method of computing the phase is discussed in Section 8.4.2.<br />
Although Eqs. (8.56a)-(8.56c) can be useful for theoretical analysis,the are<br />
not in a form that is useful for computation, since Eq. (8.56c) requires the evaluation<br />
of an integral. However, we can approximate Eq. (8.56c) by using the<br />
discrete Fourier transform. The discrete Fourier transform (DFT) of a finite<br />
length sequence is identical to a sampled version of the discrete-time Fourier<br />
transform (DTFT) of that same sequence [15]; i.e., X[k] = X(e j2πk/N ). Furthermore,<br />
the discrete Fourier transform can be efficiently computed by a fast<br />
Fourier transform algorithm [15]. Thus, the approach that is suggested for computing<br />
the complex cepstrum is to replace all of the DTFT operations in Figure<br />
8.4 by corresponding DFT operations. The resulting implementation of the<br />
characteristic system is depicted in Figure 8.21 <strong>and</strong> defined by the equations<br />
D ∗{<br />
}<br />
~<br />
x[ n] X [k]<br />
Complex X ˆ [ k]<br />
DFT<br />
Log<br />
IDFT<br />
~<br />
xˆ<br />
[ n]<br />
Figure 8.21: Computation of the complex cepstrum using the DFT (implementation<br />
of the approximate inverse system for convolution ˜ D∗{·}).<br />
9 The unwrap( ) function in Matlab uses a default tolerance of π, which is reasonable,<br />
since jumps of close to π radians can occur because of zeros that are very close to the unit<br />
circle.