From: weilai on 20 Jan 2010 07:27 I am new to FFT and have read some online notes and help on FFT. For a discrete time signal, I understand the FFT in Matlab will give conjugate-symmetric phase response. Basically, the phases in the positive and negative frequencies have phases of the same value but opposite signs. However, I read it online at several places that the phase shift between the positive and negative frequencies is 180 degrees. I also read it online that the negative frequency coefficient is the multiplication of the positive frequency information by (-1)^(n-1). Neither of these two cases correspond to what is happening in Matlab. I was wondering if there are different implementations of FFT out there. I am asking this because I have some experimental data which seem to suggest the phase angles from a DSP in an instrument were all shifted by 180 degrees.
From: Rune Allnor on 20 Jan 2010 07:39 On 20 Jan, 13:27, "weilai" <wei.wei...(a)gmail.com> wrote: > I am new to FFT and have read some online notes and help on FFT. For a > discrete time signal, I understand the FFT in Matlab will give > conjugate-symmetric phase response. Basically, the phases in the positive > and negative > frequencies have phases of the same value but opposite signs. This is true if the original signal is real-valued. The FFT can be used to transform complex-valued data (data that have non-zero imaginary parts), in which case the result is not conjugate symmetric. > However, > I read it online at several places that the phase shift between the > positive and negative frequencies is 180 degrees. I also read it > online that the negative frequency coefficient is the multiplication > of the positive frequency information by (-1)^(n-1). Seems like something that might happen if the transformed signal is real-valued and symmetric: x[-n] = x[n]. > Neither of these > two cases correspond to what is happening in Matlab. I was wondering > if there are different implementations of FFT out there. I am asking this > because I have some experimental data which seem to suggest the phase > angles from a DSP in an instrument were all shifted by 180 degrees. Whenever people state such properties, there is some sort of underlying assumption that may or may not be clearly stated. The trick is to 1) Realize that almost any result, theorem or statement is based on such assumptions 2) Try and dig out from somewhere exactky what those assumptions might be. Rune
From: weilai on 20 Jan 2010 08:30 >On 20 Jan, 13:27, "weilai" <wei.wei...(a)gmail.com> wrote: >> I am new to FFT and have read some online notes and help on FFT. For a >> discrete time signal, I understand the FFT in Matlab will give >> conjugate-symmetric phase response. Basically, the phases in the positive >> and negative >> frequencies have phases of the same value but opposite signs. > >This is true if the original signal is real-valued. The FFT >can be used to transform complex-valued data (data that have >non-zero imaginary parts), in which case the result is not >conjugate symmetric. > >> However, >> I read it online at several places that the phase shift between the >> positive and negative frequencies is 180 degrees. I also read it >> online that the negative frequency coefficient is the multiplication >> of the positive frequency information by (-1)^(n-1). > >Seems like something that might happen if the transformed signal >is real-valued and symmetric: x[-n] = x[n]. If the transformed signal is real-valued and symmetric: x[-n] = x[n], the phase difference should be 360 degrees? 180 degrees correspond to x[-n]=-x[n]? > >> Neither of these >> two cases correspond to what is happening in Matlab. I was wondering >> if there are different implementations of FFT out there. I am asking this >> because I have some experimental data which seem to suggest the phase >> angles from a DSP in an instrument were all shifted by 180 degrees. > >Whenever people state such properties, there is some sort >of underlying assumption that may or may not be clearly >stated. The trick is to > >1) Realize that almost any result, theorem or statement > is based on such assumptions >2) Try and dig out from somewhere exactky what those > assumptions might be. > >Rune >
From: Greg Berchin on 20 Jan 2010 10:29 On Wed, 20 Jan 2010 06:27:22 -0600, "weilai" <wei.weilai(a)gmail.com> wrote: >I have some experimental data which seem to suggest the phase >angles from a DSP in an instrument were all shifted by 180 degrees. Be aware that, in some disciplines, the forward DFT is defined using a negative exponent (exp[-j2PIkn/N]), while in others the forward DFT is defined using a positive exponent (exp[+j2PIkn/N]). In signal processing we generally use the negative exponent form. I believe that Matlab uses the positive exponent form. Greg
From: Greg Berchin on 20 Jan 2010 12:14
On Wed, 20 Jan 2010 10:29:37 -0500, Greg Berchin <gberchin(a)comicast.net.invalid> wrote: >I believe that Matlab uses the positive exponent form. I just checked, and currently Matlab does use the signal processing standard (negative exponent on the forward transform). Seems to me that this is a change from early Matlab versions, but I could be wrong. Greg |