Reply by Ron N. December 16, 20072007-12-16
On Dec 16, 5:06 am, Rune Allnor <all...@tele.ntnu.no> wrote:
> On 14 Des, 12:34, "rich_158" <eecod...@hotmail.com> wrote: > > > hi > > i am working on the group delay of speech signals and find that the signal > > is very noisy when there are too many zeros of the z transform signal > > around the unit circle resulting in too many phase jumps in the resulting > > phase function. Why do zeros on the unit circle affect the unwrapped > > phase so? > > Because the phase can jump an unspecified amount near a zero. > Look up "singularities" and "Riemann sheets" in any text on > complex numbers and analytic hunctions. If you get a branch > cut in your function, you are basicaly done for.
I wonder if this has something to do with why a minimum phase transfer function has all its zeros inside the unit circle. Then there will be no cuts on the unit circle. The phase will always restore going past a nearby zero inside the circle, and thus remain bounded if the zeros inside exactly cancel out all the phase contributed by an equal number of poles inside the unit circle. And a bounded phase seems required for the phase to be related to either the cepstrum or Hilbert transform of the magnitude frequency response. Also, a zero near and inside the unit circle will cause the phase to rapidly rise near a local minima in the magnitude response, thus making the slope of the phase related to the 2nd derivative of the nearby magnitude response. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
Reply by Rune Allnor December 16, 20072007-12-16
On 14 Des, 12:34, "rich_158" <eecod...@hotmail.com> wrote:
> hi > i am working on the group delay of speech signals and find that the signal > is very noisy when there are too many zeros of the z transform signal > around the unit circle resulting in too many phase jumps in the resulting > phase function. Why do zeros on the unit circle affect the unwrapped > phase so?
Because the phase can jump an unspecified amount near a zero. Look up "singularities" and "Riemann sheets" in any text on complex numbers and analytic hunctions. If you get a branch cut in your function, you are basicaly done for.
> I am not sure why this is but find an explanation that: > The degree (no of 2 pi's) of wrapping in between two adjacent freq. points > around a zero depends on the closeness of the zero to the unit circle
Not really. There is now way you caan tell. Which has the same practical impact, though. You might want to look up Tribolet's paper on phase unwrapping, published some time in the mid '70s. Phase unwrapping was necssary to get the complex cepstrum to work. The present amount of practical DSP techniques that are based on the complex cepstrum is a clear testment to the success of achieving an unambiguous phase unwrapping technique. Rune
Reply by Ron N. December 15, 20072007-12-15
On Dec 14, 1:32 pm, "Ron N." <rhnlo...@yahoo.com> wrote:
> On Dec 14, 3:34 am, "rich_158" <eecod...@hotmail.com> wrote: > > > hi > > i am working on the group delay of speech signals and find that the signal > > is very noisy when there are too many zeros of the z transform signal > > around the unit circle resulting in too many phase jumps in the resulting > > phase function. Why do zeros on the unit circle affect the unwrapped > > phase so? > > > I am not sure why this is but find an explanation that: > > The degree (no of 2 pi's) of wrapping in between two adjacent freq. points > > around a zero depends on the closeness of the zero to the unit circle > > > can anyone clear this up for me? > > cheers > > Something sounds strange about the last statement. A zero > near the unit circle should cause a phase shift of around > pi radians as the frequency point on the unit circle goes > past that zero by an amount much greater than the distance > to that zero. For increasing frequency, the phase should > increase for a nearby zero slightly inside the unit circle, > and decrease for a nearby zero slightly outside the unit > circle. The nearness of the zero to the unit circle should > mostly affect the peak rate or slope of the phase change, > much less so the total amount of phase change.
Another item that might be useful to keep the phase continuous is to use a few modified versions of the atan() function, so that the angle/phase result remains continuous over the domain being examined. For instance, for poles or zeros outside the unit circle and in the upper half of the complex plane, one would use an atan() that ranges from -3*pi/2 to pi/2, so that the angle to it will never wrap as one traverses the unit circle, since the unit circle will never be above that pole or zero. For positive frequencies, two different versions of atan() might be required: one for poles/zeros outside and upper, and one for those inside the unit circle or in the lower half of the complex plane. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M http://www.nicholson.com/rhn/dsp.html
Reply by Ron N. December 14, 20072007-12-14
On Dec 14, 3:34 am, "rich_158" <eecod...@hotmail.com> wrote:
> hi > i am working on the group delay of speech signals and find that the signal > is very noisy when there are too many zeros of the z transform signal > around the unit circle resulting in too many phase jumps in the resulting > phase function. Why do zeros on the unit circle affect the unwrapped > phase so? > > I am not sure why this is but find an explanation that: > The degree (no of 2 pi's) of wrapping in between two adjacent freq. points > around a zero depends on the closeness of the zero to the unit circle > > can anyone clear this up for me? > cheers
Something sounds strange about the last statement. A zero near the unit circle should cause a phase shift of around pi radians as the frequency point on the unit circle goes past that zero by an amount much greater than the distance to that zero. For increasing frequency, the phase should increase for a nearby zero slightly inside the unit circle, and decrease for a nearby zero slightly outside the unit circle. The nearness of the zero to the unit circle should mostly affect the peak rate or slope of the phase change, much less so the total amount of phase change. If you are seeing multiples of 2 * pi in phase change, perhaps your adjacent frequency points bracket a segment of the unit circle passing multiple nearby zeros? Perhaps even multiple coincident zeros? IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
Reply by robert bristow-johnson December 14, 20072007-12-14
On Dec 14, 12:57 pm, Jerry Avins <j...@ieee.org> wrote:
> robert bristow-johnson wrote: > > ... this means that while the magnitude > > function is real, it is not necessarily non-negative which is slightly > > different than the common practice. > > Just like the "envelope" of a two-tone beat!
yup, or extracting the modulation signal for DSB-SC ("double sideband, suppressed carrier" rather than AM with a DC biased modulation signal). but in this case (phase un-wrapping) we're doing it to frequency- domain data. r b-j
Reply by Jerry Avins December 14, 20072007-12-14
robert bristow-johnson wrote:


> ... this means that while the magnitude > function is real, it is not necessarily non-negative which is slightly > different than the common practice.
Just like the "envelope" of a two-tone beat! Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Reply by robert bristow-johnson December 14, 20072007-12-14
On Dec 14, 6:34 am, "rich_158" <eecod...@hotmail.com> wrote:
> > i am working on the group delay of speech signals and find that the signal > is very noisy when there are too many zeros of the z transform signal > around the unit circle resulting in too many phase jumps in the resulting > phase function. Why do zeros on the unit circle affect the unwrapped > phase so?
...
> can anyone clear this up for me?
my stab at clearing it up: consider, for example, an FIR filter that is a moving sum or a moving average of length N+1 (with N even). you will have a (simple) zero on the unit circle at normalized frequencies spaced apart by 2*pi/(N+1). there happens to be N/2 poles at the origin. q_n = e^(j*2*pi*n/(N+1)) 1 <= n <= N/2 p_n = 0 1 <= n <= N/2 H(z) = (some gain)*(z-q_1)*(z-q_2)..(z-q_(N/2))/z^(N/2) if you plug e^(jw) in for z, you will get some sorta sinc-like dirichlet function for frequency magnitude response and there is a constant delay of N/2 samples for the whole thing (it's phase linear). it's where the sinc-like function crosses zero (linear gain) that you are crossing the zeros on your unit circle if z=e^(jw). now, you know with the sinc() (as it is with *any* simple zero on the unit circle), that you just got a polarity reversal on the transfer function if you continue to model the delay as a constant N/2 samples. that polatity reversal will show up as a jump discontinuity of pi radians in your phase response. this is something that i advocate and have done for audio signal analysis: when i unwrap phase, i detect jump discontinuities of larger than pi and if the jump discontinuity is greater than an even multiple of pi but less than an odd multiple of pi, i remove those discontinuities by subtracting a constant amount of that even multiple of pi (which is a multiple of 2*pi) and do nothing else. that is normal phase unwrapping. but in the case where the jump discontinuity is bigger than an odd multiple of pi, yet less than an even multiple of pi (most commonly a jump discontinuity of just over pi in magnitude), i remove that by subtracting the odd multiple of pi, but then to be honest with my bookeeping, i must reverse the polarity of the "magnitude" component of the frequency response. that way, my sinc()-like function looks lik a sinc(), not |sinc()|. this means that while the magnitude function is real, it is not necessarily non-negative which is slightly different than the common practice. so try that and see what you get. r b-j
Reply by mnentwig December 14, 20072007-12-14
Intuitively, because if there is no energy at a given frequency, the phase
is meaningless.

I posted some code here
http://www.dsprelated.com/showarticle/26.php
that circumvents the problem by weighting the phase with the power
density, and then performing a least-squares fit.

The result from above program can be interpreted as an average group
delay, weighted with your test signal power density at each frequency.
In other words: if there is no test signal power at a given frequency, the
actual group delay at that frequency has no impact at all on the estimated
delay.


Reply by rich_158 December 14, 20072007-12-14
hi
i am working on the group delay of speech signals and find that the signal
is very noisy when there are too many zeros of the z transform signal
around the unit circle resulting in too many phase jumps in the resulting
phase function.  Why do zeros on the unit circle affect the unwrapped
phase so?

I am not sure why this is but find an explanation that:     
The degree (no of 2 pi's) of wrapping in between two adjacent freq. points
around a zero depends on the closeness of the zero to the unit circle 

can anyone clear this up for me?
cheers