I have a bandpass signal centered at 2 MHz and bandwidth of 50 kHz (the signal frequency varies from 2 MHz - 25 kHz to 2 MHz + 25 kHz). This signal is being sampled at 10 MHz. I want a frequency resolution of 100 Hz in FFT.

I want to know:

  1. How many samples of the signal should I take to achieve this frequency resolution.

  2. What should be the number of points in FFT for this frequency resolution.

My thoughts:

Minimum frequency in the bandpass signal = 1.975 MHz.

To complete one period of the minimum frequency = 5.0633e-07 seconds.

No of samples in 5.0633e-07 seconds = 5.0633 ~ 6 samples.

So at least 6 samples should be taken to complete one cycle of min frequency.

Now the frequency resolution is 100 Hz.

Since the sampling frequency is 10 MHz, Maximum frequency can be detected is 5 MHz.

So 5MHz/100Hz = 50000 points will be there in first half of FFT.

Second half of the FFT is redundant (complex conjugation of the first half).

So I should take 2*50000 = 1,00,000 point FFT (2^17 = 131072 point FFT) for the above specifications.

Will this work?

  1. The resolution in the DFT is given by: $ \frac{{F}_{s}}{N} $.
    Hence you need 10e6 / 100 = 100,000 samples to get the resolution you want.
  2. You may bring the signal to the baseband (demodulation) and then you'll need a lower frequency of sampling to achieve what you want.
    Since the effective bandwidth of the signal is (Two Sided) 50 [KHz], it can be sampled at $ {F}_{S} = 50 [KHz] $ and only 500 samples would be required for the asked resolution.
  • $\begingroup$ Can you verify the number of samples required. The number of samples depend on the number of samples required to complete one cycle of the lowest frequency involved. $\endgroup$ – Vinod Aug 1 '14 at 7:58
  • $\begingroup$ I didn't understand your question. If you means the sampling rate, well it has a bandwidth of 50 [KHz]. So if you bring it to the baseband, sample it at 50 [Khz] you'll need much less number of samples to get what you want. $\endgroup$ – Royi Aug 1 '14 at 8:21
  • $\begingroup$ I am not demodulating my signal. As it is I am processing it. It is for a reason. Can you consider it as a lowpass sampled signal. The sampling frequency is fixed at 10 MHz. No change to it. $\endgroup$ – Vinod Aug 1 '14 at 8:30
  • 1
    $\begingroup$ You asked for 100 [Hz[ DFT resolution. I gave you the calculation and suggested another way. If it suits you, great, otherwise, it might be insightful for others. No harm. $\endgroup$ – Royi Aug 1 '14 at 8:32
  • $\begingroup$ Would you like to modify your answer as per the sampling frequency mentioned and considering the input signal as a lowpass signal. $\endgroup$ – Vinod Aug 1 '14 at 8:35

The frequency resolution $f_\Delta$ is $$ f_\Delta = \frac{f_\mathrm{s}}{N}, $$ where $f_\mathrm{s}$ is the sampling frequency and $N$ is the FFT size. So $$ N = \frac{f_\mathrm{s}}{f_\Delta} = \frac{10^7}{100} = 10^5. $$ This means your calculation is correct. Assuming that you don't zero-pad the FFT input vector, $N$ is the number of samples you should acquire and then feed into the FFT.

If you use $M$ samples, with $M<N$ you can append $N-M$ zeros to the FFT input which will result in an interpolation of the "missing" frequency bins.

  • $\begingroup$ Can you comment on the number of time samples required. $\endgroup$ – Vinod Aug 1 '14 at 7:58
  • $\begingroup$ @Vinod I have updated my answer. $\endgroup$ – Deve Aug 1 '14 at 8:31

Given that the result of an FFT can be interpolated (possibly very accurately using Sinc interpolation), the number of FFT points required to estimate the frequency depends on the signal-to-noise ratio of the data containing your signal, and the type of resolution you require (peak separation, or peak estimation).

In the extreme case of zero noise or other interference, only 3 or 4 non-aliased points are required to exactly reconstruct a pure sinusoid and thus estimate its frequency.

At another extreme, with equal levels of closely neighboring interference, over 2 FFT bin results of separation from the noise may be required, possibly requiring over 200000 samples in your case, to resolve a distinct peak clearly separated from adjacent noise by at least 100 Hz and at least 3dB above the local noise floor.

Very rarely is the noise level exactly such that one has a noise-added resolution error of around Fs/N. At often typical lower noise levels, you can interpolate an estimated frequency peak between FFT result bins to some fraction of the bin spacing, and thus use an FFT some fraction shorter than N = Fs/dF.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.