0
$\begingroup$

Let's say I'm designing a spectrum analyzer. While doing this I take the FFT of the real time data with the FFT size of 2048.

Is there a way to increase the resolution in the frequency domain after taking the FFT? Do you think applying Sinc Interpolation on FFT output would work? If you say it works, would you please enlighten me on how to do it?

$\endgroup$
4
  • $\begingroup$ why use sinc interpolation? why not something else? like fitting a polynomial? $\endgroup$ Dec 22, 2021 at 10:27
  • $\begingroup$ There is nothing stopping me from this actually, I am totally open to your guidance. sinc interpolation was the only thing that came to my mind, I'm not very experienced. $\endgroup$ Dec 22, 2021 at 11:07
  • 1
    $\begingroup$ Well, the smoothing you're doing is for appearance. You won't be able to increase the true resolution with the same 2048 time-domain samples. You could zero-pad them and run a 4096-sample FFT or even an 8192-point FFT. That smooths things out, too, and that is equivalent to sinc interpolation. $\endgroup$ Dec 22, 2021 at 15:32
  • 1
    $\begingroup$ perhaps look into 3rd-order Hermite polynomials. $\endgroup$ Dec 22, 2021 at 15:33

3 Answers 3

3
$\begingroup$

The word “resolution” is used in two different ways in DSP. And this causes confusion. Some people use the word resolution to refer to the FFT’s bin spacing (measured in Hz). I don’t like that use of the word resolution. More correctly, other people use the word resolution to refer to the ability to “resolve” (identify) two different independent spectral components or signals. Now Max is correct. The ability to “resolve” (identify) two different independent spectral components is always proportional to the length of your time-domain signal. If you want to resolve two closely-spaced (in frequency) spectral components you must increase the length of your time-domain signal.

Keep in mind, zero-padding will reduce your FFT bin spacing but will NOT improve your ability to resolve two different independent spectral components.

$\endgroup$
1
$\begingroup$

No, interpolating is by no means increasing the frequency resolution. Interpolation is creating data out of thin air and is an educated guess at best. The only way to increase frequency resolution is to increase the FFT size.

If you do not want to accept the loss in time resolution in which this will result, you will have to change your method. Look into wavelet transform or multi resolution FFT.

$\endgroup$
1
$\begingroup$

Depends on how many "peaks" and/or your signal to noise ratio. For a single spectral peak in zero noise, well away from the DC or N/2 FFT result bin, zero padding does increase the equivalent resolution of the single peak frequency estimate. For lots of peaks or lots of noise, you need more data to separate (or "resolve") the frequency peaks from one another and/or from the noise floor.

$\endgroup$
3
  • $\begingroup$ Actually this link, your answer to an old question was one of my inspirations to do sinc interpolation. I often work on data having lots of peaks like triangle, clipped sine waveforms etc. I got very satisfying answers above, but I still feel like I have some very basic lack of knowledge about sinc interpolation, like How to do it? In which domain should I apply interpolation? $\endgroup$ Dec 23, 2021 at 9:14
  • $\begingroup$ Isn't interpolating FFT outputs(magnitude values) a valid way for increasing the ability to "resolve" in the frequency domain? $\endgroup$ Dec 23, 2021 at 14:06
  • $\begingroup$ Resolve? Depends on how many peaks how big how close and how far above the noise. If peaks are closer than approx. 2 bins you can't even really tell if there are one, two, or more inside a blurry hump. Or a small narrow one can hide inside a big or wideband one. Single, very narrow, isolated, very high S/N, not near DC or N/2, maybe OK. What are your priors??? $\endgroup$
    – hotpaw2
    Dec 23, 2021 at 16:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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