18.07.2013 Views

LR Rabiner and RW Schafer, June 3

LR Rabiner and RW Schafer, June 3

LR Rabiner and RW Schafer, June 3

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!