DSPRelated.com
Forums

Phase response from poles & zeros

Started by Chris Warwick February 18, 2007
Hi, i've been teaching myself dsp and currently im trying to get a good 
understanding of pole zero filter design. I understand how to get the 
magnitude response but i have some problem with the phase response. I'm 
working thru an online book and im up to here

http://ccrma.stanford.edu/~jos/filters/Graphical_Phase_Response_Calculation.html

So it says the phase response is evaluated from all the angles from the 
frequency to each pole and zero. The thing i dont understand (yeah it always 
takes me fookin ages to get to the point), is that some of the angles are 
anticlockwise and some are clockwise from 0, so some are negative some 
positive. Which implies positive and negative phase delay? But that's not 
posible is it?

Should the angles be -PI..PI or should they be 0..2PI ? Or what exactly?

thanks,

cw 


On 18 Feb, 17:11, "Chris Warwick" <s...@m.me.not> wrote:
> Hi, i've been teaching myself dsp and currently im trying to get a good > understanding of pole zero filter design. I understand how to get the > magnitude response but i have some problem with the phase response. I'm > working thru an online book and im up to here > > http://ccrma.stanford.edu/~jos/filters/Graphical_Phase_Response_Calcu... > > So it says the phase response is evaluated from all the angles from the > frequency to each pole and zero. The thing i dont understand (yeah it always > takes me fookin ages to get to the point), is that some of the angles are > anticlockwise and some are clockwise from 0, so some are negative some > positive. Which implies positive and negative phase delay? But that's not > posible is it?
The one thing that is missing from figure 8.4 on that page is a zero outside the unit circle. All the zeros are inside the unit circle. To see the signficance, add a zero at z'=1 + j. Then draw a vector starting at z' and ends at z" = 1. Then let the point of the vector trace the unit circle in the anticlockwise direction. The vector starting in z' will rotate in the clockwise direction around z'. If you do the same excercise with the zeros inside the unit circle, the vectors rotate in the anticlockwise direction around the zeros as the points trce the unit cicle in the anticlockwise direction.
> Should the angles be -PI..PI or should they be 0..2PI ?
That doesn't matter, as long as the vetors trace the unit circle exactly on revolution in the anticlockwise direction. Rune
On Feb 18, 8:11 am, "Chris Warwick" <s...@m.me.not> wrote:
> Hi, i've been teaching myself dsp and currently im trying to get a good > understanding of pole zero filter design. I understand how to get the > magnitude response but i have some problem with the phase response. I'm > working thru an online book and im up to here > > http://ccrma.stanford.edu/~jos/filters/Graphical_Phase_Response_Calcu... > > So it says the phase response is evaluated from all the angles from the > frequency to each pole and zero. The thing i dont understand (yeah it always > takes me fookin ages to get to the point), is that some of the angles are > anticlockwise and some are clockwise from 0, so some are negative some > positive. Which implies positive and negative phase delay? But that's not > posible is it?
It is possible for an individual pole or zero to contribute negative delay. But you really have to count all the poles and zeros including the ones at the origin and at infinity to get the complete delay (integer tap + fractional phase), which will end up being positive for a realizable filter. (e.g. -20 degrees + 1 tap is really +340 degrees) IMHO. YMMV. -- Ron N. http://www.nicholson.com/rhn/dsp.html
Chris Warwick wrote:
> Hi, i've been teaching myself dsp and currently im trying to get a good > understanding of pole zero filter design. I understand how to get the > magnitude response but i have some problem with the phase response. I'm > working thru an online book and im up to here > > http://ccrma.stanford.edu/~jos/filters/Graphical_Phase_Response_Calculation.html > > So it says the phase response is evaluated from all the angles from the > frequency to each pole and zero. The thing i dont understand (yeah it always > takes me fookin ages to get to the point), is that some of the angles are > anticlockwise and some are clockwise from 0, so some are negative some > positive. Which implies positive and negative phase delay? But that's not > posible is it? >
You can get phase lead at the lower frequencies with a stable zero. It's real, but it comes at the cost of rising gain as the frequency increases. Your system is still causal, but the wave shape will be distorted. You can't get phase lead with no amplitude distortion in a causal system. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Posting from Google? See http://cfaj.freeshell.org/google/ "Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html
"Chris Warwick" <sp@m.me.not> wrote in message 
news:1171815100.3211.0@demeter.uk.clara.net...

Thanks everyone.

One more question. I plot the phase response by calculating the angle to 
each pole/zero with arcTan, then add up the zero angles, then subtract the 
pole angles. This means i get sudden jumps in the plot where the angle 
returned by arcTan switches from +PI to -PI. That cant realy mean an 
instantanious 2PI step in the overall phase response can it? I just seems to 
me that it should be a contiuous plot like the frequency response. Those 
steps are just an artifact of the way I've calculated it? If so is there a 
way to calculate it without those steps? Is there an easier way to get the 
phase response that calculating each angle seperately, can it be done with 
vector math and then grab the angle at the end?

thanks,

chris




-- 
Posted via a free Usenet account from http://www.teranews.com

On 19 Feb, 01:50, "Chris Warwick" <s...@m.me.not> wrote:
> "Chris Warwick" <s...@m.me.not> wrote in message > > news:1171815100.3211.0@demeter.uk.clara.net... > > Thanks everyone. > > One more question. I plot the phase response by calculating the angle to > each pole/zero with arcTan, then add up the zero angles, then subtract the > pole angles. This means i get sudden jumps in the plot where the angle > returned by arcTan switches from +PI to -PI. That cant realy mean an > instantanious 2PI step in the overall phase response can it?
If we agree that the "true" phase is PHI (with capital letters), the best you actually can compute is a phase phi (note the lowercase letters) such that PHI = phi + n*2*pi where n is some (unknown) integer and -pi <= phi <= pi.
> I just seems to > me that it should be a contiuous plot like the frequency response. Those > steps are just an artifact of the way I've calculated it? If so is there a > way to calculate it without those steps? Is there an easier way to get the > phase response that calculating each angle seperately, can it be done with > vector math and then grab the angle at the end?
No matter how you do things, you end up with the PHI <-> phi relation above. This is a fundamental property of complex numbers (check out "Riemann surfaces" in a book on complex maths) and is often the very reason for why "obvious" and "simple" signal processing schemes don't work in practice. Rune
"Rune Allnor" <allnor@tele.ntnu.no> wrote in message 
news:1171873663.929401.156980@t69g2000cwt.googlegroups.com...

>> I just seems to >> me that it should be a contiuous plot like the frequency response. Those >> steps are just an artifact of the way I've calculated it? If so is there >> a >> way to calculate it without those steps? Is there an easier way to get >> the >> phase response that calculating each angle seperately, can it be done >> with >> vector math and then grab the angle at the end? > > No matter how you do things, you end up with the PHI <-> phi > relation above. This is a fundamental property of complex numbers > (check out "Riemann surfaces" in a book on complex maths) and > is often the very reason for why "obvious" and "simple" signal > processing schemes don't work in practice.
ok thanks, :-) chris -- Posted via a free Usenet account from http://www.teranews.com
"Rune Allnor" <allnor@tele.ntnu.no> wrote in message 
news:1171873663.929401.156980@t69g2000cwt.googlegroups.com...
> On 19 Feb, 01:50, "Chris Warwick" <s...@m.me.not> wrote: >> "Chris Warwick" <s...@m.me.not> wrote in message
>> I just seems to >> me that it should be a contiuous plot like the frequency response. Those >> steps are just an artifact of the way I've calculated it? If so is there >> a >> way to calculate it without those steps? Is there an easier way to get >> the >> phase response that calculating each angle seperately, can it be done >> with >> vector math and then grab the angle at the end? > > No matter how you do things, you end up with the PHI <-> phi > relation above. This is a fundamental property of complex numbers > (check out "Riemann surfaces" in a book on complex maths) and > is often the very reason for why "obvious" and "simple" signal > processing schemes don't work in practice.
Ok, thanks, chris -- Posted via a free Usenet account from http://www.teranews.com
On Feb 19, 12:27 am, "Rune Allnor" <all...@tele.ntnu.no> wrote:
> On 19 Feb, 01:50, "Chris Warwick" <s...@m.me.not> wrote: > > > "Chris Warwick" <s...@m.me.not> wrote in message > > >news:1171815100.3211.0@demeter.uk.clara.net... > > > Thanks everyone. > > > One more question. I plot the phase response by calculating the angle to > > each pole/zero with arcTan, then add up the zero angles, then subtract the > > pole angles. This means i get sudden jumps in the plot where the angle > > returned by arcTan switches from +PI to -PI. That cant realy mean an > > instantanious 2PI step in the overall phase response can it? > > If we agree that the "true" phase is PHI (with capital letters), the > best you actually can compute is a phase phi (note the lowercase > letters) such that > > PHI = phi + n*2*pi > > where n is some (unknown) integer and -pi <= phi <= pi.
This would imply that you could not calculate the absolute delay of a LTI IIR or FIR filter, which seems false. The angle from any pole or zero shouldn't change by more than +-2*pi as the frequency response traverses the entire unit circle, so there will be a zero angle reference for each pole or zero which causes no phase jumps during a single orbit, and also equal a known delay at some frequency. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
On 19 Feb, 23:15, "Ron N." <rhnlo...@yahoo.com> wrote:
> On Feb 19, 12:27 am, "Rune Allnor" <all...@tele.ntnu.no> wrote: > > > > > > > On 19 Feb, 01:50, "Chris Warwick" <s...@m.me.not> wrote: > > > > "Chris Warwick" <s...@m.me.not> wrote in message > > > >news:1171815100.3211.0@demeter.uk.clara.net... > > > > Thanks everyone. > > > > One more question. I plot the phase response by calculating the angle to > > > each pole/zero with arcTan, then add up the zero angles, then subtract the > > > pole angles. This means i get sudden jumps in the plot where the angle > > > returned by arcTan switches from +PI to -PI. That cant realy mean an > > > instantanious 2PI step in the overall phase response can it? > > > If we agree that the "true" phase is PHI (with capital letters), the > > best you actually can compute is a phase phi (note the lowercase > > letters) such that > > > PHI = phi + n*2*pi > > > where n is some (unknown) integer and -pi <= phi <= pi. > > This would imply that you could not calculate the > absolute delay of a LTI IIR or FIR filter, which > seems false.
You can't. You can compute a RELATIVE delay from some suitably chosen reference. Rune