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.
�����������������������������������������������������������������������
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