Rune:
I didn't completely understand it while in DSP at MIT, but I got the gist
that Cepstrum analysis is the core of homomorphic deconvolution, which has
many real-world benefits such as recovering original data from scratched
LPs, etc. Thus, though I have never used it in my work as an EE, I think it
*may* be an important part of signal processing that ought not lightly be
dismissed as "a curiostity". Others could comment much better than I--my
career is a hardware designer and DSP coder, not a DSP theorist
(unfortunately).
Jim
"Rune Allnor" <allnor@tele.ntnu.no> wrote in message
news:f56893ae.0403190133.6b99bebb@posting.google.com...
> "Michael Numminen" <michael.numminen@comhem.se> wrote in message
news:<ZTs6c.86740$dP1.248790@newsc.telia.net>...
> > Hi Ron!
> >
> > To your question, see below.
> >
> > "Ronald H. Nicholson Jr." <rhn@mauve.rahul.net> skrev i meddelandet
> > news:c3ahbu$5cp$1@blue.rahul.net...
> > > I've run across a few web pages describing how to convert an arbitrary
> > > FIR filter to a minimum phase variant by the use of cepstral methods:
> > > e.g.
> > > > wn = [ones(1,m); 2*ones((n+odd)/2-1,m) ; ones(1-rem(n,2),m);
> > > > zeros((n+od d)/2-1,m)];
> > > > y = real(ifft(exp(fft(wn.*real(ifft(log(abs(fft(x)))))))));
> > > etc.
> > >
> > > I've tried this algorithm on a few windowed-sinc filters and it seems
> > > to work... much more straight-forward than trying to find the zeros
> > > of a z-transform and move them inside.
> > >
> > > Why does this technique work? How does a cepstrum help generate a
> > > minimum phase filter?
> > >
> > I don't remember exactly becous it was so long time ago now. But the
reason
> > why it works depends on that the cepstrum is a logarithmic function.
And, if
> > I remember correctly the cepstrum has a properity of minimum phase.
>
> I read some stuff not long ago about the cepstrum. Most of it was based
> on chapter 7 in Oppenheim and Schafer (the 1975 book), but also some
> of the journal literature (search for J. Tribolet on IEEExplore).
> Some of the articles I read are listed at the end of this post.
>
> The problem with the cepstrum is that the complex logarithm is ambiguous.
> Write a complex number z on polar form as
>
> z = r*exp(i*phi+ n*2pi), r=|z|, n=...,-2,-1,0,1,2,...
>
> and define the complex logaritm as
>
> Log (z) = log(r)+ i(phi + n*2pi).
>
> Computing the cepstrum involves computing Log(X(w)), and there are
> two problems with that:
>
> - How does one unwrap the phase of X(w)?
> - How does one deal with stop-bands in X(w) where |X(w)| -> 0?
>
> The answer of these questions are not obvious, and it appears that
> considerable effort has gone into resolving them.
>
> Some references I have seen impose assumptions on the cepstrum,
> the sequence to be produced by this computation. If one requires the
> cepstrum to be real-valued, it follows that log|X(w)| and
> phase(X(w)) are a Hilbert transform pair. That, in turn, requires
> Log(X(w)) to be an analytic function in z domain.
>
> This requirement does, if I have understood things correctly, wreck
> all sorts of havoc woth the signal. To get an analytic Log(X(w)),
> the phase of (X(w)) continuous, which means it must be periodic
> around the unit circle in Z domain. This is a self-imposed restriction
> that is caised by us wanting a real-valued cepstrum. But the consequence
> is that any time sequence that is re-generated from the cepstrum
> is noncausal. For my intended applicaytion, pulse deconvolution,
> this meant that the reflection serquence which is represented as
> a set of time-shifted delta pulses, can not be represented accurately,
> and the method does not appear to be worth the considerable effort
> needed to get the cepstrum processing to work.
>
> [DISCLAIMER: I never tested the cepstrum processing with my application.
> I only got as far as reckognizing all the issues listed here, and decided
> that there was too much uncertainty and too much work involved, and thus
> decided to leave the cepstrum as a curiosity and little more than that.]
>
> >You have
> > to search in the theory
> > of Analytical Functions or Theory of Complex Functions, here you can
find
> > correct answear.
>
> That's right. I lost interest in these things when I had to look up
> "Poisson's Kernel", which seems to be intimately related to the
> Hilbert transform, and found that it was just barely mentioned
> on the latest pages of the standard book on complex function theory by
> Churchil and Brown.
>
> For what it's worth,
>
> Rune
>
> [1] Oppenheim, Kopec and Tribolet: "Signal Analysis by Homomorphic
> Prediction". IEEE Trans. Acoust. Sp. Sig. Proc., Vol ASSP-24(4)
> August 1976, p 327.
>
> [2] Tribolet: "A New Phase Unwrapping Algorithm".
> IEEE Trans. Acoust. Sp. Sig. Proc., Vol ASSP-25(2)
> April 1977, p 170.
>
> [3] Bonzanigo: "An Improvement to Tribolet's Phase Unwrapping Algorithm".
> IEEE Trans. Acoust. Sp. Sig. Proc., Vol ASSP-26(1)
> February 1978, p 104.
>
> [4] Tribolet: "Applications of Short-Time Homomorphic Signal Analysis
> to Seismic Wavelet Estimation". IEEE Trans. Acoust. Sp. Sig. Proc.,
> Vol ASSP-26(4) August 1978, p 343.
>
> [5] Schroeder: "Direct (Nonrecursive) Relations Between Cepstrum and
> Predictor Coefficients". IEEE Trans. Acoust. Sp. Sig. Proc.,
> Vol ASSP-29(2) April 1981, p 297.
>
> [6] Bednar and Watt: "Calculating the Complex Cepstrum Without
> Phase Unwrapping or Integration". IEEE Trans. Acoust. Sp. Sig. Proc.,
> Vol ASSP-33(4) August 1985, p 1014.