DSPRelated.com
Forums

How can i get more resolution in phase?

Started by Salvadorr November 6, 2006
Hello!!!!!!

I would like to know how can i get more resolution in phase without
increase the samples or the number of points in FFT, I've work with fft
matlab function and it is very well without so many points but in my fft
program i cant get better resolution.

Thanks!!!!!!! 
"Salvadorr" <salvaxiu@yahoo.com> wrote in message 
news:PI2dnWP39OmA6NLYnZ2dnUVZ_v-dnZ2d@giganews.com...
> > Hello!!!!!! > > I would like to know how can i get more resolution in phase without > increase the samples or the number of points in FFT, I've work with fft > matlab function and it is very well without so many points but in my fft > program i cant get better resolution. > > Thanks!!!!!!!
I can't tell what your problem is. If matlab works then your own fft program should work. You want more points (i.e. resolution) but you don't want more points???? You can't get better resolution without more points. Resolution in frequency is the same thing as resolution in phase. Now, I suppose one might interpolate the fft values but one would need to watch out for phase wrap. Interpolating in frequency is the same thing as convolving with a filter in frequency. That is the same as multiplying in time on a larger sequence - which is probably going to look much like adding zero-valued samples to the time array. And *that* is what you said you don't want to do.... Fred
Salvadorr wrote:
> I would like to know how can i get more resolution in phase without > increase the samples or the number of points in FFT, I've work with fft > matlab function and it is very well without so many points but in my fft > program i cant get better resolution.
Noise and quantization error can also affect phase resolution, even if the number of samples is fixed. Also, if a sinusoid is between DFT/FFT bins in frequency, one has to be careful handling the shift of the input samples versus the zero-phase reference point of the DFT results, when interpolating the phase. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
May be i'm wrong, but i try to dont use more points because i'm working
with DSP 2812. My problem is this please check


Phase
|
|  x     x     x       180
|  
|    
|--------------------K
|
|
|     x     x     x   -180
|

0  1  2  3  4  5  6  

My harmonic fall between 2 bins (in this case between 1-2) and my phase
information is between 2 bis too, i know that the correct value is in 1
because i check in matlab, but i should not use it. In matlab i can get
some like this

Phase
|
|  x  x  x  x          180
|  
|    
|--------------------K
|
|
|              x  x   -180
|

0  1  2  3  4  5  6  

and i know very easy what value is correct, How can i get some like this?

Salvadorr wrote:
> May be i'm wrong, but i try to dont use more points because i'm working > with DSP 2812. My problem is this please check > > > Phase > | > | x x x 180 > | > | > |--------------------K > | > | > | x x x -180 > | > > 0 1 2 3 4 5 6 > > My harmonic fall between 2 bins (in this case between 1-2) and my phase > information is between 2 bis too, i know that the correct value is in 1 > because i check in matlab, but i should not use it. In matlab i can get > some like this > > Phase > | > | x x x x 180 > | > | > |--------------------K > | > | > | x x -180 > | > > 0 1 2 3 4 5 6 > > and i know very easy what value is correct, How can i get some like this?
By referencing the phase to the center of the DFT/FFT aperture, instead of one end or the other. Note that this difference is equivalent to a rotation in phase of all odd bins by 180 degrees (maybe -180 degrees for the negative frequencies, I'm not sure...), or to a rotation of the input samples by n/2. The ends of the DFT aperture have a phase discontinuity in the representation of all continuous non-bin frequency components, so that's not the best place to put the phase zero reference if you want to interpolate the phase of a continuous sinusoidal component. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
Salvadorr wrote:

> > Phase > | > | x x x 180 > | > | > |--------------------K > | > | > | x x x -180 > | > > 0 1 2 3 4 5 6 > > My harmonic fall between 2 bins (in this case between 1-2) and my phase > information is between 2 bis too, i know that the correct value is in 1 > because i check in matlab, but i should not use it. In matlab i can get > some like this > > Phase > | > | x x x x 180 > | > | > |--------------------K > | > | > | x x -180 > | > > 0 1 2 3 4 5 6 > > and i know very easy what value is correct, How can i get some like this?
judging from appearances, i am not sure you should be interpolating this phase at all. these are the phase angles of real and negative numbers. or are you saying that the phase angle is *approximately* +/- 180 degrees? i think if this was unwrapped ( unwrap() function ), your phase data would look like a horizontal line. r b-j