DSPRelated.com
Forums

DFT Blind Spot?

Started by Unknown March 23, 2008
On Mar 24, 7:09&#4294967295;am, Rick Lyons <R.Lyons@_BOGUS_ieee.org> wrote:
> On Sun, 23 Mar 2008 20:55:36 -0700 (PDT), buleg...@columbus.rr.com > wrote: > > &#4294967295; &#4294967295;(Snipped by Lyons) > > >I understood that all the books claimed that it needs to be greater > >than twice the sampling period. &#4294967295;I am looking at how the DFT uses the > >basis functions to find cosine enrgy and sine energy at each discrete > >frequency. I see that it can find the cosine energy up to and > >including the frequency that is half the sampling frequency, but it > >totally misses energy that is sinusoidal at half the sampling > >frequency. &#4294967295;Of course, higher frequencies get folded back down. > > >Of course, a frequency component is rarely phased to be a perfect sine > >or cosine, so in practice you will be messed up if you don't sample at > >>2 times the highest frequency component. > > Hi, > &#4294967295; The DFT "misses" the sinewave at Fs/2 because the > time samples of that sinewave are all zero-valued > samples. &#4294967295;You're performing a DFT on a string of > zeros! &#4294967295;The DFT "catches" a cosine at Fs/2 because the > time samples of that cosine are alternating +1 & -1's. > (Non-zero-valued samples.) > > Add a little phase shift to your time-domain Fs/2 > sinewave by changing your sinewave definition from: > > &#4294967295; &#4294967295;Sig = sin(2*pi*(Fs/2)*Time) &#4294967295; > > &#4294967295; &#4294967295; &#4294967295; &#4294967295;= sin(2*pi*(Fs/2)/Fs) = sin(pi) = 0 > > to: > > &#4294967295; &#4294967295;Sig = sin(2*pi*(Fs/2)/Fs + pi/8). > > Now your DFT will not "miss" that sinewave. > > But as you probably know, in normal spectrum analysis > using the DFT we would be VERY* worried if our > time signal has appreciable signal energy in the > vicinity of Fs/2 Hz. &#4294967295;Such high-freq energy would > indicate that our Fs sample rate was too low relative > to the bandwidth of some sampled analog signal. > > Good Luck, > [-Rick-]
Hi Rick, If there is a phase shift as you suggest, there will usually be energy measured at Fs/2 (ie. if the shift doesn't make the thing a +-sine function) , but you still can't tell anything specific about the values of amplitude and phase from the samples alone. IIRC the phone company spec for anti-aliasing filtering is only a minimum of 14 dB attenuation (relative to passband) at 4000 Hz = Fs/2 for Fs=8000 Hz, which isn't all that far down. Dirk
On Mar 24, 3:54 am, buleg...@columbus.rr.com wrote:
> The half frequency basis function (sine componant) is all zeros as you > stated above.
Not only Fs/2, but at an infinite number of frequencies: any integer multiple of Fs/2, including Fs, (3/2)*Fs, etc. including 0*Fs/2.
> Whereas, I read a lot about frequencies folding above > fs/2 and that the DFT is good (theoretically) up to fs/2, then what is > happening at fs/2?
Below Fs/2, the representation is correct, above Fs/2 the default representation will be wrong (aliased), between slightly above and slightly below Fs/2, the answer will be in transition between right and wrong, or statistically half right (depending on the phase distribution). IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
On Mar 24, 4:58&#4294967295;pm, "Ron N." <rhnlo...@yahoo.com> wrote:
> On Mar 24, 3:54 am, buleg...@columbus.rr.com wrote: > > > The half frequency basis function (sine componant) is all zeros as you > > stated above. > > Not only Fs/2, but at an infinite number of frequencies: > any integer multiple of Fs/2, including Fs, (3/2)*Fs, etc. > including 0*Fs/2. > > > Whereas, I read a lot about frequencies folding above > > fs/2 and that the DFT is good (theoretically) up to fs/2, then what is > > happening at fs/2? > > Below Fs/2, the representation is correct, above Fs/2 > the default representation will be wrong (aliased), between > slightly above and slightly below Fs/2, the answer will be > in transition between right and wrong, or statistically half > right (depending on the phase distribution). > > IMHO. YMMV. > -- > rhn A.T nicholson d.0.t C-o-M
Thanks for your insight. It is very helpful.
On Mar 23, 10:52&#4294967295;pm, buleg...@columbus.rr.com wrote:
> I am trying to build up some flash programs to demonstrate the DFT and > I am pondering something. > > I am looking at a 16 point DFT and am focusing on the eigth (or ninth, > depending on how you look at it) basis function: &#4294967295;e^-j2pi*8*n/16. > This is also the basis function that is at the folding frequency of > the DFT (half the sample rate). > > what I am realizing is that the DFT will catch cosine energy at one > half the sampling frequency but that it entirely misses sine energy at > one half the sampling frequency. > > Any energy that is higher than one half the sampling frequency is > folded back down, and everything lower is correctly caught by the > DFT. &#4294967295;However, this sine energy that is exactly one half the sampling > frequency seems to be more like a blind spot. &#4294967295;It is not seen or > folded at all. > But cosine energy at exactly half the sampling frequency would get > properly caught by the DFT. > > Any comment? > > Thanks > > Brent
It certainly is a blind spot, as well as the multiples of fs/2 as others have indicated. There are other quirks near the boundaries of the DFT/FFT (DC, fs/2,fs, etc) too that will result in the wrong answer, bin 0 of an FFT will have a different gain then all the other "normal" bins, and the 1/f sampling period required to detect an f Hz signal (time bandwidth product) or even to detect a f Hz difference in two high frequency components (you need to sample for 1 second to distinguish between a 1000000hz signal and a 1000001hz signal). It all comes out in the math, but it's not really highlighted very well in any texts.
On Mon, 24 Mar 2008 08:24:45 -0700 (PDT), dbell <bellda2005@cox.net>
wrote:

  (Snipped by Lyons)
> >Hi Rick, > >If there is a phase shift as you suggest, there will usually be energy >measured at Fs/2 (ie. if the shift doesn't make the thing a +-sine >function) , but you still can't tell anything specific about the >values of amplitude and phase from the samples alone. > >IIRC the phone company spec for anti-aliasing filtering is only a >minimum of 14 dB attenuation (relative to passband) at 4000 Hz = Fs/2 >for Fs=8000 Hz, which isn't all that far down. > >Dirk
Hi Dirk, 14 dB of attenuation! Sheece, you're not kiddin' about that not being too far down considering that a healthy human ear has a dynamic range of (I'm guessing) 100 dB. See Ya', [-Rick-]
On Mar 24, 7:09&#4294967295;am, Rick Lyons <R.Lyons@_BOGUS_ieee.org> wrote:
> On Sun, 23 Mar 2008 20:55:36 -0700 (PDT), buleg...@columbus.rr.com > wrote: > > &#4294967295; &#4294967295;(Snipped by Lyons) > > >I understood that all the books claimed that it needs to be greater > >than twice the sampling period. &#4294967295;I am looking at how the DFT uses the > >basis functions to find cosine enrgy and sine energy at each discrete > >frequency. I see that it can find the cosine energy up to and > >including the frequency that is half the sampling frequency, but it > >totally misses energy that is sinusoidal at half the sampling > >frequency. &#4294967295;Of course, higher frequencies get folded back down. > > >Of course, a frequency component is rarely phased to be a perfect sine > >or cosine, so in practice you will be messed up if you don't sample at > >>2 times the highest frequency component. > > Hi, > &#4294967295; The DFT "misses" the sinewave at Fs/2 because the > time samples of that sinewave are all zero-valued > samples. &#4294967295;You're performing a DFT on a string of > zeros! &#4294967295;The DFT "catches" a cosine at Fs/2 because the > time samples of that cosine are alternating +1 & -1's. > (Non-zero-valued samples.) > > Add a little phase shift to your time-domain Fs/2 > sinewave by changing your sinewave definition from: > > &#4294967295; &#4294967295;Sig = sin(2*pi*(Fs/2)*Time) &#4294967295; > > &#4294967295; &#4294967295; &#4294967295; &#4294967295;= sin(2*pi*(Fs/2)/Fs) = sin(pi) = 0 > > to: > > &#4294967295; &#4294967295;Sig = sin(2*pi*(Fs/2)/Fs + pi/8). > > Now your DFT will not "miss" that sinewave. > > But as you probably know, in normal spectrum analysis > using the DFT we would be VERY* worried if our > time signal has appreciable signal energy in the > vicinity of Fs/2 Hz. &#4294967295;Such high-freq energy would > indicate that our Fs sample rate was too low relative > to the bandwidth of some sampled analog signal. > > Good Luck, > [-Rick-]
Actually, I think that it still would miss that sine wave. You have shifted the pahse and converted the sinusoidal wave from a pure sine wave to a combined sine/cosine - sinusoidal wave. It will still miss the sin componant of this new sinusoidal wave, but catch the cosine componant of the sinusoidal wave at fs/2.
steve wrote:
> On Mar 23, 10:52 pm, buleg...@columbus.rr.com wrote: >> I am trying to build up some flash programs to demonstrate the DFT and >> I am pondering something. >> >> I am looking at a 16 point DFT and am focusing on the eigth (or ninth, >> depending on how you look at it) basis function: e^-j2pi*8*n/16. >> This is also the basis function that is at the folding frequency of >> the DFT (half the sample rate). >> >> what I am realizing is that the DFT will catch cosine energy at one >> half the sampling frequency but that it entirely misses sine energy at >> one half the sampling frequency. >> >> Any energy that is higher than one half the sampling frequency is >> folded back down, and everything lower is correctly caught by the >> DFT. However, this sine energy that is exactly one half the sampling >> frequency seems to be more like a blind spot. It is not seen or >> folded at all. >> But cosine energy at exactly half the sampling frequency would get >> properly caught by the DFT. >> >> Any comment? >> >> Thanks >> >> Brent > > It certainly is a blind spot, as well as the multiples of fs/2 as > others have indicated. There are other quirks near the boundaries of > the DFT/FFT (DC, fs/2,fs, etc) too that will result in the wrong > answer, bin 0 of an FFT will have a different gain then all the other > "normal" bins, and the 1/f sampling period required to detect an f Hz > signal (time bandwidth product) or even to detect a f Hz difference in > two high frequency components (you need to sample for 1 second to > distinguish between a 1000000hz signal and a 1000001hz signal). It all > comes out in the math, but it's not really highlighted very well in > any texts.
Just as you need to sample for about a second to catch a 1Hz component, you need to sample the same length of time to resolve 1n Fs/2 - 1 Hz component. The high end can be worked around by sampling faster, but the low end isn't so amenable. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
On Mar 24, 11:35&#4294967295;pm, Jerry Avins <j...@ieee.org> wrote:
> steve wrote: > > On Mar 23, 10:52 pm, buleg...@columbus.rr.com wrote: > >> I am trying to build up some flash programs to demonstrate the DFT and > >> I am pondering something. > > >> I am looking at a 16 point DFT and am focusing on the eigth (or ninth, > >> depending on how you look at it) basis function: &#4294967295;e^-j2pi*8*n/16. > >> This is also the basis function that is at the folding frequency of > >> the DFT (half the sample rate). > > >> what I am realizing is that the DFT will catch cosine energy at one > >> half the sampling frequency but that it entirely misses sine energy at > >> one half the sampling frequency. > > >> Any energy that is higher than one half the sampling frequency is > >> folded back down, and everything lower is correctly caught by the > >> DFT. &#4294967295;However, this sine energy that is exactly one half the sampling > >> frequency seems to be more like a blind spot. &#4294967295;It is not seen or > >> folded at all. > >> But cosine energy at exactly half the sampling frequency would get > >> properly caught by the DFT. > > >> Any comment? > > >> Thanks > > >> Brent > > > It certainly is a blind spot, as well as the multiples of fs/2 as > > others have indicated. There are other quirks near the boundaries of > > the DFT/FFT (DC, fs/2,fs, etc) too that will result in the wrong > > answer, bin 0 of an FFT will have a different gain then all the other > > "normal" bins, and the 1/f sampling period required to detect an f Hz > > signal (time bandwidth product) or even to detect a f Hz difference in > > two high frequency components (you need to sample for 1 second to > > distinguish between a 1000000hz signal and a 1000001hz signal). It all > > comes out in the math, but it's not really highlighted very well in > > any texts. > > Just as you need to sample for about a second to catch a 1Hz component, > you need to sample the same length of time to resolve 1n Fs/2 - 1 Hz > component. The high end can be worked around by sampling faster, but the > low end isn't so amenable. > > Jerry > -- > Engineering is the art of making what you want from things you can get. > &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;- Hide quoted text - > > - Show quoted text -
I don't follow that, but I'll give it some thought
On Mon, 24 Mar 2008 19:51:50 -0700 (PDT), bulegoge@columbus.rr.com
wrote:

   (snipped by Lyons)
> >Actually, I think that it still would miss that sine wave. You have >shifted the pahse and converted the sinusoidal wave from a pure sine >wave to a combined sine/cosine - sinusoidal wave. It will still miss >the sin componant of this new sinusoidal wave, but catch the cosine >componant of the sinusoidal wave at fs/2.
Hi, Oh shoot. I totally misinterpretted what you meant by the word "miss". I thought that word pertained to time-domain samples. Now I'm beginning to believe that your phrase "misses energy that is sinusoidal" actually means something having to do with a DFT's frequency-domain samples. [-Rick-]