Supposse Fs=1000Hz
Then, with a FFT of N=10 i could measure spectral bins each 100Hz:
0 100 200 300 400 500 600 700 800 900 Hz
0 1 2 3 4 5 6 7 8 9 N
But....if i want measure this:
1 101 201 301 401 501 601 701 801 901 Hz
0 1 2 3 4 5 6 7 8 9 N
How i can do it?
I could do zero padding until N=1000, but i am sure could be other
solution more efficient.
About FFT bins
Started by ●September 2, 2009
Reply by ●September 2, 20092009-09-02
On Sep 2, 11:23�am, "JAlbertoDJ" <nietoro...@yahoo.es> wrote:> Supposse Fs=1000Hz > > Then, with a FFT of N=10 i could measure spectral bins each 100Hz: > > � � � 0 �100 200 300 400 500 600 700 800 900 Hz > � � � 0 � 1 � 2 � 3 � 4 � 5 � 6 � 7 � 8 � 9 �N > > But....if i want measure this: > > � � � 1 �101 201 301 401 501 601 701 801 901 Hz > � � � 0 � 1 � 2 � 3 � 4 � 5 � 6 � 7 � 8 � 9 �N > > How i can do it? � > > I could do zero padding until N=1000, but i am sure could be other > solution more efficient.Your bin's are pretty wide, your desired new bin offset offset is very small. Do you expect the difference between the two sets of bins to be significant to your application? Dirk Bell DSP Consultant
Reply by ●September 2, 20092009-09-02
> >Your bin's are pretty wide, your desired new bin offset offset is very >small. Do you expect the difference between the two sets of bins to >be significant to your application? > >Dirk Bell >DSP ConsultantIn that case, there is not different from 100Hz to 101Hz. It was only an example. So, I tell you the real case: Fs=8000Hz (sound card) I have 16FSK tones separated by 1/Ts = 15.625 Hz where Ts is the Symbol Time Ts=0.064 seg. and Ns=512 samples by symbol Tone0=1000Hz Tone1=1015.625 Tone2=1031.25Hz ......... Tone15=1250Hz I apply the FFT of 512 points and i read 16 K-values of FFT, one value for each frecuency (For example, K=64 would be 1000 Hz, K=65 would be 1015.625 Hz....etc). Then, with 15.625Hz of tone separations, i can tolerate an offset of 1 or 2 Hz, but an offset of 4 Hz, for example, will degrade my estimation too much. My question is if it is possible syncronize the frecuency only computing a FFT 512 points. The solution rough is zero padding and compute a FFT of 4096 points, but it is too much for my computer.
Reply by ●September 2, 20092009-09-02
On Sep 2, 12:55�pm, "JAlbertoDJ" <nietoro...@yahoo.es> wrote:> >Your bin's are pretty wide, your desired new bin offset offset is very > >small. �Do you expect the difference between the two sets of bins to > >be significant to your application? > > >Dirk Bell > >DSP Consultant > > In that case, there is not different from 100Hz to 101Hz. It was only an > example. > > So, I tell you the real case: > > Fs=8000Hz (sound card) > > I have 16FSK tones separated by 1/Ts = 15.625 Hz � > where Ts is the Symbol Time Ts=0.064 seg. and Ns=512 samples by symbol > > Tone0=1000Hz > Tone1=1015.625 > Tone2=1031.25Hz > ......... > Tone15=1250Hz > > I apply the FFT of 512 points and i read 16 K-values of FFT, one value for > each frecuency (For example, K=64 would be 1000 Hz, K=65 would be 1015.625 > Hz....etc). > > Then, with 15.625Hz of tone separations, i can tolerate an offset of 1 or > 2 Hz, but an offset of 4 Hz, for example, will degrade my estimation too > much. > > My question is if it is possible syncronize the frecuency only computing a > FFT 512 points. > > The solution rough is zero padding and compute a FFT of 4096 points, but > it is too much for my computer. �How do you handle the possibility of parts of 2 tones tone in an analysis window? Dirk Bell DSP Consultant
Reply by ●September 2, 20092009-09-02
On Sep 2, 12:55�pm, "JAlbertoDJ" <nietoro...@yahoo.es> wrote:> >Your bin's are pretty wide, your desired new bin offset offset is very > >small. �Do you expect the difference between the two sets of bins to > >be significant to your application? > > >Dirk Bell > >DSP Consultant > > In that case, there is not different from 100Hz to 101Hz. It was only an > example. > > So, I tell you the real case: > > Fs=8000Hz (sound card) > > I have 16FSK tones separated by 1/Ts = 15.625 Hz � > where Ts is the Symbol Time Ts=0.064 seg. and Ns=512 samples by symbol > > Tone0=1000Hz > Tone1=1015.625 > Tone2=1031.25Hz > ......... > Tone15=1250Hz > > I apply the FFT of 512 points and i read 16 K-values of FFT, one value for > each frecuency (For example, K=64 would be 1000 Hz, K=65 would be 1015.625 > Hz....etc). > > Then, with 15.625Hz of tone separations, i can tolerate an offset of 1 or > 2 Hz, but an offset of 4 Hz, for example, will degrade my estimation too > much. > > My question is if it is possible syncronize the frecuency only computing a > FFT 512 points. > > The solution rough is zero padding and compute a FFT of 4096 points, but > it is too much for my computer. �Do you have a single tone or mutiple tones present at the same time? (Assuming single tone present at any time) Is there any time between the tones? If not, how do you handle the possibility of parts of 2 tones in an analysis window? Do you know that the 8000 Hz sound card is really at 8000 Hz? It isn't always. Dirk Bell DSP Consultant
Reply by ●September 2, 20092009-09-02
>Do you have a single tone or mutiple tones present at the same time? > >(Assuming single tone present at any time) Is there any time between >the tones? If not, how do you handle the possibility of parts of 2 >tones in an >analysis window? > >Do you know that the 8000 Hz sound card is really at 8000 Hz? It isn't >always. > >Dirk Bell >DSP Consultant >I have a single tone in each symbol interval and there is not time between tones. A windows is displacement each 1/16 symbol duration while i compare 16 values of FFT, so i get metric for each tone for each window interval. When window is perfectly center the metric is maximal. In fact, i compute viterbi soft-decision for each window interval and i use metric after viterbi for symbol sincronization. So, for Es/N0 very poor differents are of 4dBs gain than sincronization before viterbi. But computer requeriments are biggest. With a good Es/N0 there is not differents. But now the question is the frecuency syncronization with only 512FFT points.
Reply by ●September 2, 20092009-09-02
On Sep 2, 12:55�pm, "JAlbertoDJ" <nietoro...@yahoo.es> wrote:> >Your bin's are pretty wide, your desired new bin offset offset is very > >small. �Do you expect the difference between the two sets of bins to > >be significant to your application? > > >Dirk Bell > >DSP Consultant > > In that case, there is not different from 100Hz to 101Hz. It was only an > example. > > So, I tell you the real case: > > Fs=8000Hz (sound card) > > I have 16FSK tones separated by 1/Ts = 15.625 Hz � > where Ts is the Symbol Time Ts=0.064 seg. and Ns=512 samples by symbol > > Tone0=1000Hz > Tone1=1015.625 > Tone2=1031.25Hz > ......... > Tone15=1250Hz > > I apply the FFT of 512 points and i read 16 K-values of FFT, one value for > each frecuency (For example, K=64 would be 1000 Hz, K=65 would be 1015.625 > Hz....etc). > > Then, with 15.625Hz of tone separations, i can tolerate an offset of 1 or > 2 Hz, but an offset of 4 Hz, for example, will degrade my estimation too > much. > > My question is if it is possible syncronize the frecuency only computing a > FFT 512 points. > > The solution rough is zero padding and compute a FFT of 4096 points, but > it is too much for my computer. �Just compute 16 DFT's at the exact frequency you want to estimate.
Reply by ●September 2, 20092009-09-02
>> >> The solution rough is zero padding and compute a FFT of 4096 points,but>> it is too much for my computer. =A0 > >Just compute 16 DFT's at the exact frequency you want to estimate. >Yes, but compute 16DFT's of 512 samples are 512x16 complex multiplications. And compute 512FFT required, in this case, only 508xSTEP complex multiplications, with STEP=intervals of window by symbol. In my case i use 8 intervals. Also, i put an example of 16FSK, but, it is possible i use in the future 64FSK in order of working with symbols of six bits and to apply them directly to a Reed Solomon Code. I think sysncronization is possible with FFT phase output. I am going to pass to OFDM section.
Reply by ●September 2, 20092009-09-02
On Sep 2, 1:43�pm, "JAlbertoDJ" <nietoro...@yahoo.es> wrote:> >Do you have a single tone or mutiple tones present at the same time? > > >(Assuming single tone present at any time) Is there any time between > >the tones? If not, how do you handle the possibility of parts of 2 > >tones in an > >analysis window? > > >Do you know that the 8000 Hz sound card is really at 8000 Hz? It isn't > >always. > > >Dirk Bell > >DSP Consultant > > I have a single tone in each symbol interval and there is not time between > tones. A windows is displacement each 1/16 symbol duration while i compare > 16 values of FFT, so i get metric for each tone for each window interval. > When window is perfectly center the metric is maximal. > > In fact, i compute viterbi soft-decision for each window interval and i > use metric after viterbi for symbol sincronization. So, for Es/N0 very poor > differents are of 4dBs gain than sincronization before viterbi. But > computer requeriments are biggest. With a good Es/N0 there is not > differents. > > But now the question is the frecuency syncronization with only 512FFT > points.Since your sample rate is much higher than the total signal bandwidth you could consider complex mixing to get 1000 Hz to 0 Hz (8-pt complex table, lots of 0's and 1's), or mix 1125 Hz to 0 Hz (you can do more decimation, discussed next), you can do the tradeoffs. Then use halfband filters to reduce the sample rate, Keep the aliasing out of the band of interest and you don't have to remove it unless it is large compared to your desired signals. You can use a smaller FFT the more you decimate. You should be able to cut down your computations this way. This still does not solve the problem of synchronizing your analysis window with data. Dirk Bell DSP Consultant
Reply by ●September 3, 20092009-09-03
>On Sep 2, 1:43=A0pm, "JAlbertoDJ" <nietoro...@yahoo.es> wrote: >> >Do you have a single tone or mutiple tones present at the same time? >> >> >(Assuming single tone present at any time) Is there any time between >> >the tones? If not, how do you handle the possibility of parts of 2 >> >tones in an >> >analysis window? >> >> >Do you know that the 8000 Hz sound card is really at 8000 Hz? Itisn't>> >always. >> >> >Dirk Bell >> >DSP Consultant >> >> I have a single tone in each symbol interval and there is not timebetwee=>n >> tones. A windows is displacement each 1/16 symbol duration while icompar=>e >> 16 values of FFT, so i get metric for each tone for each windowinterval.>> When window is perfectly center the metric is maximal. >> >> In fact, i compute viterbi soft-decision for each window interval andi>> use metric after viterbi for symbol sincronization. So, for Es/N0 verypo=>or >> differents are of 4dBs gain than sincronization before viterbi. But >> computer requeriments are biggest. With a good Es/N0 there is not >> differents. >> >> But now the question is the frecuency syncronization with only 512FFT >> points. > >Since your sample rate is much higher than the total signal bandwidth >you could consider complex mixing to get 1000 Hz to 0 Hz (8-pt complex >table, lots of 0's and 1's), or mix 1125 Hz to 0 Hz (you can do more >decimation, discussed next), you can do the tradeoffs. Then use >halfband filters to reduce the sample rate, Keep the aliasing out of >the band of interest and you don't have to remove it unless it is >large compared to your desired signals. You can use a smaller FFT the >more you decimate. You should be able to cut down your computations >this way. This still does not solve the problem of synchronizing your >analysis window with data. > >Dirk Bell >DSP Consultant >I think the solution could be a mixer to compensate slightly the frecuency desviation: deltaF So, before compute the 512FFT do: x(k)=x(k)*exp(j2*pi*k*deltaF/Fs) (1) For example, if i know that delatF = 2 Hz, after apply Equation(1) and after do FFT we have: k=64 => 1002 Hz instead of 1000 Hz k=65 => 1017.625 Hz instead of 1015.625 Hz k=66 => 1033.25 Hz instead of 1031.25 Hz k=67 => 1048.875 Hz instead of 1046.875 Hz Problem resolved. Now the problem is how i can estimate deltaF. I think i could use the phase of FFT (atan(Im/Re)) over several symbols because all 16 tones are continuous phase. Any suggerent?






