4
$\begingroup$

How would you compare the SNR gain from a longer FFT (more samples) to overlapping FFTs? Given the choice, which one would you pick and why?

Update: Suppose you have 2048 samples of a signal. Assuming the sampling rate divided by the fundamental frequency is an integer, compare/constrast the SNR gain/noise variance reduction of the following:

  1. A single 2048 point FFT.
  2. 16, 128 point FFTs added coherently.
  3. 16, 128 point FFTs added incoherently.
  4. 24, 128 point FFTs (50% overlap), added incoherently.
$\endgroup$
3
  • $\begingroup$ Don't the answers to this question answer your question? $\endgroup$ – Matt L. Sep 12 '14 at 10:25
  • $\begingroup$ No, my question is comparing the processing gain to overlap and add. $\endgroup$ – random_dsp_guy Sep 12 '14 at 15:39
  • $\begingroup$ 'overlap and add' refers to fast convolution. Do you mean Welch's method for power spectrum estimation? $\endgroup$ – Matt L. Sep 12 '14 at 15:41
2
$\begingroup$

That depends on your application, signal and noise.
Increasing the FFT length means better frequency resolution.
It can be shown that the FFT of a zero-mean white noise is also white noise. Now, given that observation, this is the motivation to performing multiple shorter FFTs since the noise averages and its variance decreases by a factor of the number of FFTs.
For a stationary signal, e.g. a sine wave, the FFT should not (theoretically) change over time. Thus, averaging would have no effect. So in this case, since the noise decreases, you should expect a gain in SNR by a factor of the number of FFTs.

However, one should also take into account the scalloping loss (or spectral leakage) which can reduce the SNR significantly, and choose the FFT length correctly, according to the application.

Personally I always use overlapping if possible.

$\endgroup$
2
$\begingroup$

It's not clear what you are interested in measuring. It could be a) power: a real number corresponding to the magnitude squared of the DFT output at your signal bin or b) DFT output: a complex number corresponding to the DFT output at your signal bin.

Before getting started, the DFT convention I use is $$ X[k] = \sum_{n=0}^{N-1} x[n] e^{-j 2 \pi k / N} $$ (so I put the $1/N$ in the inverse transform).

Based on your concerns about gain, I might assume it's b). You are trying to detect a quiet signal in noise. The DFT acts like a filter bank, so you want to design an optimum filter that has maximum noise rejection. However, based on the fact that you're interested in possible incoherently summing FFTs (I assume this means sum the PSDs of each FFT), it is also very possible you're interested in a).

With respect to b), if your signal is truly coherent and your noise is uncorrelated from sample to sample, you get the most SNR gain from the longest DFT. In this case, the coherent gain (in db) is $10 \log N$, where $N$ is your DFT length. If the signal power is $\sigma_{s}^{2}$, then the power at the appropriate DFT bin will be $\sigma_{s}^{2} N^{2}$. If the noise power is $\sigma_{n}^{2}$, then the power at any DFT bin will be $\sigma_{n}^{2} N$. Summing DFTs incoherently will only give you power, so this is irrelevant for b). Summing DFTs coherently isn't very intelligent, since each DFT output will have a phase related to the source phase at the beginning of the DFT interval. Thus, you will be summing frequency domain samples with essentially a random phase at each output, and you will lose gain that way. If you happen to know the source frequency precisely, you can remove the source phase offset from the beginning of each interval and sum them coherently. This is no different from performing one long FFT.

With respect to a), let's also assume the signal is truly coherent and your noise is zero-mean, white, and Gaussian (so it's uncorrelated from sample to sample, and each sample in time has a Gaussian distribution with zero mean and variance $\sigma_{n}^{2}$. As stated above, if your signal is coherent, has power $\sigma_{s}^{2}$, and matches with one of the bins, then the expected power output at the right bin due to your signal will be $ \sigma_{s}^{2} N^{2}$ where $N$ is the DFT length. The power output due to the noise is $\sigma_{n}^{2} N$. This expected power output in the signal bin is then $\sigma_{s}^{2}N^{2} + \sigma_{n}^{2} N$. That is, the power output in the signal bin is a random variable with mean equal to $\sigma_{s}^{2}N^{2} + \sigma_{n}^{2} N$, and a variance, $\sigma_{?}^{2}$ that I'm too lazy to calculate.

If you sum $L$ such outputs, you get yet another random variable, with mean equal to $L \times (\sigma_{s}^{2} N^{2} + \sigma_{n}^{2}N) $, and a variance $\sigma_{?}^{2} / \sqrt{L}$. By summing outputs, we see that the variance of our power estimate is reduced, i.e. it more tightly clusters around the 'right' value of $L \times (\sigma_{s}^{2} N^{2} + \sigma_{n}^{2}N)$. I wouldn't call this ''gain'', I would just say that I am reducing the variance of an estimator by performing an ensemble average. I'm not getting rid of any noise, just making its effect more predictable. The expected value of the ratio of power in signal bin over a neighboring noise bin is $$ r_{incoh} = 1 + \sigma_{s}^{2} / \sigma_{n}^{2} N.$$

Now, if we perform a single long FFT of length $L\times N$, the expected value of the power output is $\sigma_{s}^{2}L^{2}N^{2} + \sigma_{n}^{2} LN$. The power in neighboring bins will be purely from noise, and will have an expected value of $\sigma_{n}^{2}LN$. The expected value of the ratio of the power in the signal bin over a neighboring noise bin is $$ r_{coh} = 1 + \sigma_{s}^{2} / \sigma_{n}^{2} LN .$$

So we see that the longer coherent FFT results in a bigger peak at the signal bin. This could be considered gain in the sense that there exists a signal that I can't detect by incoherently averaging, but can detect by performing a long, coherent FFT.

Basically, the FFT length chosen for an application should represent assumptions about the underlying signal bandwidth (or, equivalently, signal coherence). If the signal coherence time is shorter than the number of samples you have, then you should incoherently sum (because you only get coherent gain while the signal is actually coherent).

I didn't address the overlap question because I don't have a good answer for that.

$\endgroup$

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.