I am working over estimation of fundamental frequency and spectral shift estimation, using autocorrelations and cepstral analysis. The Cepstral analysis is an homomorphic system, is possible to calculate as: X(w) = FFT[ x(n) ] c(n) = IFFT[ log |X(w)| ] The autocorrelation function is possible to calculate as: X(w) = FFT[ x(n) ] r(n) = IFFT[ |X(w)|^2 ] Note that different is only log |X(w)| by |X(w)|^2 Is autocorrelation homomorphic too?

# Is autocorrelation of real sequences an homomorphic system?

Started by ●July 10, 2006

Reply by ●July 11, 20062006-07-11

edujoseg@gmail.com wrote:> I am working over estimation of fundamental frequency and spectral > shift estimation, using autocorrelations and cepstral analysis. > The Cepstral analysis is an homomorphic system, is possible to > calculate as: > > X(w) = FFT[ x(n) ] > c(n) = IFFT[ log |X(w)| ] > > The autocorrelation function is possible to calculate as: > > X(w) = FFT[ x(n) ] > r(n) = IFFT[ |X(w)|^2 ] > > Note that different is only log |X(w)| by |X(w)|^2 > > Is autocorrelation homomorphic too?No, I don't think so. It's been a while since I browsed the literature on homomorphic systems, but as far as I can remember, the key is that one mathematical operation in one domain is transformed into another, simpler, mathematical operation in another domain. With the usual DFT, convolution in time domain is transformed into multiplication in frequency domain. The DFT[Log(X(w))] transform is homomorphic because multiplication in frequency domain is transformed into addition in cepstrum domain. As you know, log(a*b) = log(a) + log(b) so the logarithm is essential for the cepstrum being homomorphic. No such changes take place for DFT[|X(w)|^2] so the autocorrelation is not homomorphic. Rune