DSPRelated.com
Forums

Correcting the effect of spectral leakage on Phase

Started by lancef June 7, 2006
Is it possible to correct the error in the phase of an fft due to the
effects of spectral leakage?

The data that i am processing does not contain integer multiples of the
frequency i am investigating. Thus spectal leakage is occuring. The phase
at the frequency is also affected and gives the wrong result. Can this be
corrected without the use of windows?

Lance Frater


"lancef" <lance.frater@gmail.com> wrote in message 
news:0ZydndzEUM5RUBvZnZ2dnUVZ_rGdnZ2d@giganews.com...
> Is it possible to correct the error in the phase of an fft due to the > effects of spectral leakage? > > The data that i am processing does not contain integer multiples of the > frequency i am investigating. Thus spectal leakage is occuring. The phase > at the frequency is also affected and gives the wrong result. Can this be > corrected without the use of windows? >
Lance, Probably yes. First, when you say: "the phase at *the* frequency is affected" and "does not contain integer multiples of the frequency" - these seem contradictory because you don't have the phase at "the frequency" yet. Unless the phase is wrapping (jumping from +pi to -pi or vice versa) then you may get adequate results by interpolating phase to the exact frequency you want. That's because phase is generally a smooth function of frequency. It can be straight line interpolation using the two adjacent phase values or some higher order method using more phase data points. Here is a discussion of phase interpolation: http://sigpromu.org/reports/EE99106.pdf Search comp.dsp on Google Groups for "phase interpolation". You'll find a lot of good stuff. Fred
Fred Marshall wrote:

> "lancef" <lance.frater@gmail.com> wrote in message > news:0ZydndzEUM5RUBvZnZ2dnUVZ_rGdnZ2d@giganews.com... > >>Is it possible to correct the error in the phase of an fft due to the >>effects of spectral leakage? >> >>The data that i am processing does not contain integer multiples of the >>frequency i am investigating. Thus spectal leakage is occuring. The phase >>at the frequency is also affected and gives the wrong result. Can this be >>corrected without the use of windows? >> > > > Lance, > > Probably yes. > > First, when you say: "the phase at *the* frequency is affected" and "does > not contain integer multiples of the frequency" - these seem contradictory > because you don't have the phase at "the frequency" yet. > > Unless the phase is wrapping (jumping from +pi to -pi or vice versa) then > you may get adequate results by interpolating phase to the exact frequency > you want. That's because phase is generally a smooth function of frequency. > It can be straight line interpolation using the two adjacent phase values or > some higher order method using more phase data points. > > Here is a discussion of phase interpolation: > http://sigpromu.org/reports/EE99106.pdf > > Search comp.dsp on Google Groups for "phase interpolation". You'll find a > lot of good stuff. > > Fred
If one is interested *ONLY* in magnitude vs frequency of a signal at various "times" [ *QUOTES* significant! ] Could one use a *rectangular window* of width delta-T Perform FFT on those samples THEN massage that data to make valid comparisons to spectrum obtained at some later time of an identically sized window that would not be affected by "leakage"? [CAUTION: this question asked after 12 hours on AR and MO roads (note I said roads *NOT* highways ;) ]
lancef skrev:
> Is it possible to correct the error in the phase of an fft due to the > effects of spectral leakage? > > The data that i am processing does not contain integer multiples of the > frequency i am investigating. Thus spectal leakage is occuring. The phase > at the frequency is also affected and gives the wrong result. Can this be > corrected without the use of windows?
Let's establish some terminology: First, you have some "data" that basically is a set of discrete samples that represent some signal. Second, you have a "knowledge", or "a model", about what these data ought to look like. It seems you know that the data contains one sinusoidal and you want to extract the phase of that sinusoidal. The phase is one parameter (frequency and amplitude are the others) in a parametric model. Now, the Discrete Fourier Transform, DFT, works on a finite length discrete data set, *not* on a parametric model. The phases of the DFT coefficients are computed with the purpose of representing general data accurately, and have no way of incorporating any parametric models. In short, if the DFT happens to represent the phase of a sinusoidal in the data, it will be because of mere coincidence. Rune
> >"lancef" <lance.frater@gmail.com> wrote in message >news:0ZydndzEUM5RUBvZnZ2dnUVZ_rGdnZ2d@giganews.com... >> Is it possible to correct the error in the phase of an fft due to the >> effects of spectral leakage? >> >> The data that i am processing does not contain integer multiples of
the
>> frequency i am investigating. Thus spectal leakage is occuring. The
phase
>> at the frequency is also affected and gives the wrong result. Can this
be
>> corrected without the use of windows? >> > >Lance, > >Probably yes. > >First, when you say: "the phase at *the* frequency is affected" and "does
>not contain integer multiples of the frequency" - these seem
contradictory
>because you don't have the phase at "the frequency" yet. > >Unless the phase is wrapping (jumping from +pi to -pi or vice versa) then
>you may get adequate results by interpolating phase to the exact
frequency
>you want. That's because phase is generally a smooth function of
frequency.
>It can be straight line interpolation using the two adjacent phase values
or
>some higher order method using more phase data points. > >Here is a discussion of phase interpolation: >http://sigpromu.org/reports/EE99106.pdf > >Search comp.dsp on Google Groups for "phase interpolation". You'll find
a
>lot of good stuff. > >Fred > > > >
Hi Fred I have adjusted my sample window size such that the side bands of the spectral leakage have disappeared (however there is still going to be a small amount due to the real world signal). The result is a peak at the frequency I am investigating which is the frequency I take phase at. The phase is still erroneous at this point. I have been successful in using matlab to use phase interpolation on pure signals generated in software. However as soon as spectral leakage is introduced (by means of reducing the window size) the phase can not be determined. Lance
> >lancef skrev: >> Is it possible to correct the error in the phase of an fft due to the >> effects of spectral leakage? >> >> The data that i am processing does not contain integer multiples of
the
>> frequency i am investigating. Thus spectal leakage is occuring. The
phase
>> at the frequency is also affected and gives the wrong result. Can this
be
>> corrected without the use of windows? > >Let's establish some terminology: First, you have some "data" that >basically >is a set of discrete samples that represent some signal. Second, you >have >a "knowledge", or "a model", about what these data ought to look like. >It seems you know that the data contains one sinusoidal and you want >to extract the phase of that sinusoidal. The phase is one parameter >(frequency >and amplitude are the others) in a parametric model. > >Now, the Discrete Fourier Transform, DFT, works on a finite length >discrete >data set, *not* on a parametric model. The phases of the DFT >coefficients >are computed with the purpose of representing general data accurately, >and have no way of incorporating any parametric models. > >In short, if the DFT happens to represent the phase of a sinusoidal in >the >data, it will be because of mere coincidence. > >Rune > >
Hi Rune You define phase, magnitude and frequency as parameters in a parametric model. And then you go onto say that a DFT does not work on a parametric model. I ask you what you think the DFT is producing? Does it not produce the magnitude and phase at the frequency points from the data it was given. So why are these parameters (the ones produced) not forming a parametric model of the data processed by the fft. You also said that the phase of the dft is a mere coincidence if it represents the phase of the sin in the data. If it does not represent the phase of the sinusoid then what is it representing?? My understanding is that the phase of the sinusoid represents the phase relative to the windowed data set. Thus it will not be a mere coincidence if the phase represents the actual phase because it always is representing it relative to the data set Lance
> >lancef skrev: >> Is it possible to correct the error in the phase of an fft due to the >> effects of spectral leakage? >> >> The data that i am processing does not contain integer multiples of
the
>> frequency i am investigating. Thus spectal leakage is occuring. The
phase
>> at the frequency is also affected and gives the wrong result. Can this
be
>> corrected without the use of windows? > >Let's establish some terminology: First, you have some "data" that >basically >is a set of discrete samples that represent some signal. Second, you >have >a "knowledge", or "a model", about what these data ought to look like. >It seems you know that the data contains one sinusoidal and you want >to extract the phase of that sinusoidal. The phase is one parameter >(frequency >and amplitude are the others) in a parametric model. > >Now, the Discrete Fourier Transform, DFT, works on a finite length >discrete >data set, *not* on a parametric model. The phases of the DFT >coefficients >are computed with the purpose of representing general data accurately, >and have no way of incorporating any parametric models. > >In short, if the DFT happens to represent the phase of a sinusoidal in >the >data, it will be because of mere coincidence. > >Rune > >
Hi Rune You define phase, magnitude and frequency as parameters in a parametric model. And then you go onto say that a DFT does not work on a parametric model. I ask you what you think the DFT is producing? Does it not produce the magnitude and phase at the frequency points from the data it was given. So why are these parameters (the ones produced) not forming a parametric model of the data processed by the fft. You also said that the phase of the dft is a mere coincidence if it represents the phase of the sin in the data. If it does not represent the phase of the sinusoid then what is it representing?? My understanding is that the phase of the sinusoid represents the phase relative to the windowed data set. Thus it will not be a mere coincidence if the phase represents the actual phase because it always is representing it relative to the data set Lance
> >lancef skrev: >> Is it possible to correct the error in the phase of an fft due to the >> effects of spectral leakage? >> >> The data that i am processing does not contain integer multiples of
the
>> frequency i am investigating. Thus spectal leakage is occuring. The
phase
>> at the frequency is also affected and gives the wrong result. Can this
be
>> corrected without the use of windows? > >Let's establish some terminology: First, you have some "data" that >basically >is a set of discrete samples that represent some signal. Second, you >have >a "knowledge", or "a model", about what these data ought to look like. >It seems you know that the data contains one sinusoidal and you want >to extract the phase of that sinusoidal. The phase is one parameter >(frequency >and amplitude are the others) in a parametric model. > >Now, the Discrete Fourier Transform, DFT, works on a finite length >discrete >data set, *not* on a parametric model. The phases of the DFT >coefficients >are computed with the purpose of representing general data accurately, >and have no way of incorporating any parametric models. > >In short, if the DFT happens to represent the phase of a sinusoidal in >the >data, it will be because of mere coincidence. > >Rune > >
Hi Rune You define phase, magnitude and frequency as parameters in a parametric model. And then you go onto say that a DFT does not work on a parametric model. I ask you what you think the DFT is producing? Does it not produce the magnitude and phase at the frequency points from the data it was given. So why are these parameters (the ones produced) not forming a parametric model of the data processed by the fft. You also said that the phase of the dft is a mere coincidence if it represents the phase of the sin in the data. If it does not represent the phase of the sinusoid then what is it representing?? My understanding is that the phase of the sinusoid represents the phase relative to the windowed data set. Thus it will not be a mere coincidence if the phase represents the actual phase because it always is representing it relative to the data set Lance
> >lancef skrev: >> Is it possible to correct the error in the phase of an fft due to the >> effects of spectral leakage? >> >> The data that i am processing does not contain integer multiples of
the
>> frequency i am investigating. Thus spectal leakage is occuring. The
phase
>> at the frequency is also affected and gives the wrong result. Can this
be
>> corrected without the use of windows? > >Let's establish some terminology: First, you have some "data" that >basically >is a set of discrete samples that represent some signal. Second, you >have >a "knowledge", or "a model", about what these data ought to look like. >It seems you know that the data contains one sinusoidal and you want >to extract the phase of that sinusoidal. The phase is one parameter >(frequency >and amplitude are the others) in a parametric model. > >Now, the Discrete Fourier Transform, DFT, works on a finite length >discrete >data set, *not* on a parametric model. The phases of the DFT >coefficients >are computed with the purpose of representing general data accurately, >and have no way of incorporating any parametric models. > >In short, if the DFT happens to represent the phase of a sinusoidal in >the >data, it will be because of mere coincidence. > >Rune > >
Hi Rune You define phase, magnitude and frequency as parameters in a parametric model. And then you go onto say that a DFT does not work on a parametric model. I ask you what you think the DFT is producing? Does it not produce the magnitude and phase at the frequency points from the data it was given. So why are these parameters (the ones produced) not forming a parametric model of the data processed by the fft. You also said that the phase of the dft is a mere coincidence if it represents the phase of the sin in the data. If it does not represent the phase of the sinusoid then what is it representing?? My understanding is that the phase of the sinusoid represents the phase relative to the windowed data set. Thus it will not be a mere coincidence if the phase represents the actual phase because it always is representing it relative to the data set Lance
> >lancef skrev: >> Is it possible to correct the error in the phase of an fft due to the >> effects of spectral leakage? >> >> The data that i am processing does not contain integer multiples of
the
>> frequency i am investigating. Thus spectal leakage is occuring. The
phase
>> at the frequency is also affected and gives the wrong result. Can this
be
>> corrected without the use of windows? > >Let's establish some terminology: First, you have some "data" that >basically >is a set of discrete samples that represent some signal. Second, you >have >a "knowledge", or "a model", about what these data ought to look like. >It seems you know that the data contains one sinusoidal and you want >to extract the phase of that sinusoidal. The phase is one parameter >(frequency >and amplitude are the others) in a parametric model. > >Now, the Discrete Fourier Transform, DFT, works on a finite length >discrete >data set, *not* on a parametric model. The phases of the DFT >coefficients >are computed with the purpose of representing general data accurately, >and have no way of incorporating any parametric models. > >In short, if the DFT happens to represent the phase of a sinusoidal in >the >data, it will be because of mere coincidence. > >Rune > >
Hi Rune You define phase, magnitude and frequency as parameters in a parametric model. And then you go onto say that a DFT does not work on a parametric model. I ask you what you think the DFT is producing? Does it not produce the magnitude and phase at the frequency points from the data it was given. So why are these parameters (the ones produced) not forming a parametric model of the data processed by the fft. You also said that the phase of the dft is a mere coincidence if it represents the phase of the sin in the data. If it does not represent the phase of the sinusoid then what is it representing?? My understanding is that the phase of the sinusoid represents the phase relative to the windowed data set. Thus it will not be a mere coincidence if the phase represents the actual phase because it always is representing it relative to the data set Lance