4
$\begingroup$

Suppose you have a signal $s(t)$, corrupted by Gaussian noise of $\eta(t)$ with zero mean and standard deviation $\sigma$. So that the measured signal is $f(t)=s(t)+\eta(t)$.

I now want to calculate the spectrum of the signal using FFT. For my particular case, I have found that for wavenumbers $q$ above a given cuttoff value $q_c$ (e.g. for short wavelengths), my spectrum of $s(t)$ will run into the noise floor of $\eta$. The noise floor due to the (ideal) Gaussian noise $\eta(t)$ in Fourier space is given by $\int \sigma^2 dt$ and thus depends on the length of sampling interval.

My question is:

  • Is it possible to modify the noise-floor of the frequency spectrum in Fourier space by reducing the length of the sampling interval in the time-domain and thus gain SNR for a certain $q$-range of interest? In other words, could I do something like high-pass filter the whole signal and then take the FFT of a short region to reduce the noise. Or perhaps do something similar.

  • If this is conceptually flawed, why?

  • If it is not flawed, how would I do this and what are the limits/tradeoffs to doing this (obviously there has to be a limit). Also, what are the implications/requirements for the stationarity vs. non-stationarity of signal $s(t)$ in order to justify this?

$\endgroup$
3
$\begingroup$

Yes, you're on the right track. The key thing that would help you would not involve decreasing your sampling interval, but increasing your observation duration. Here's a qualitative explanation:

Recall the filterbank interpretation of the DFT:

$$ X[k] = \sum_{n=0}^{N-1} x[n] e^{\frac{-j2\pi k n}{N}} $$

In this view of the transform, the DFT implements a uniformly-spaced bank $N$ of critically-sampled filters. The frequency response of each filter in normalized frequency $\omega$ has the shape of a Dirichlet kernel, whose width is inversely proportional to $N$. So, as you increase the observation duration, you implicitly increase $N$, meaning that each bandpass filter covers a smaller portion of the frequency band. That means that proportionally less noise power is passed by each bin's corresponding filter.

This can help you if you're analyzing a narrowband signal such as a sinusoidal tone. Again, think of that situation as placing a bunch of bandpass filters in the hope that one will catch your signal of interest. You will maximize the SNR in the resulting observations by making those bandpass filters as narrow as possible, i.e. by making your DFT as long as possible. Thus, you can increase your DFT length in order to "push down the noise floor." To those who are familiar with spectrum analyzers, this is analogous to decreasing the resolution bandwidth.

You can also make a theoretical argument for why this is the case. Assume the unitary definition of the DFT to avoid having scaling factors get in the way:

$$ X[k] = \frac{1}{\sqrt{N}}\sum_{n=0}^{N-1} x[n] e^{\frac{-j2\pi k n}{N}} $$

And recall Parseval's theorem for the DFT:

$$ \sum_{n=0}^{N-1} |x[n]|^2 = \sum_{k=0}^{N-1} |X[k]|^2 $$

Assume that $x[n]$ is a zero-mean white noise process with variance $\sigma^2$ and take the expectation of both sides:

$$ \sum_{n=0}^{N-1} \mathbb{E}\left(|x[n]|^2\right) = \sum_{k=0}^{N-1} \mathbb{E}\left(|X[k]|^2\right) $$ $$ N \sigma^2 = N \mathbb{E}\left(|X[k]|^2\right) $$ $$ \sigma^2 = \mathbb{E}\left(|X[k]|^2\right) $$

where I have made the assumption that $\mathbb{E}\left(|X[k]|^2\right)$ is a constant independent of $k$ (which is true, but I haven't shown it here; you can see a proof in this analysis of white noise in the frequency domain).

The takeaway from this is that as you increase the DFT size $N$, the expected value of the noise spectrum's squared magnitude doesn't change under the unitary definition of the transform. However, let's look at what happens to the same quantity for the case of $x[n]$ being a sinusoidal tone of interest. Assume without loss of generality that the tone is at zero frequency (i.e. it is a constant; I will assume $x[n] = 1$):

$$ X[k] = \frac{1}{\sqrt{N}}\sum_{n=0}^{N-1} x[n] e^{\frac{-j2\pi k n}{N}} $$ $$ X[k] = \frac{1}{\sqrt{N}}\sum_{n=0}^{N-1} e^{\frac{-j2\pi k n}{N}} $$ $$ X[k] = \frac{1}{\sqrt{N}} N \delta[k] $$ $$ X[k] = \sqrt{N} \delta[k] $$ $$ |X[k]|^2 = N \delta[k] $$

This illustrates the payoff:

As you increase the DFT size $N$, the expected squared magnitude of the noise process in the frequency domain stays constant. However, the expected frequency-domain squared magnitude for a narrowband signal is proportional to $N$. Therefore, you can effectively increase the frequency-domain SNR by increasing the transform length $N$.

A bonus illustration in MATLAB:

% tone at zero frequency plus noise
x = 1+randn(1e5,1);  
% calculate DFTs of various lengths
X1 = 1/sqrt(100)*fft(x(1:1e2));
X2 = 1/sqrt(1e3)*fft(x(1:1e3));
X3 = 1/sqrt(1e4)*fft(x(1:1e4));
X4 = 1/sqrt(1e5)*fft(x);
% plot them all
figure;
hold all;
plot(10*log10(abs(X1).^2));
plot(10*log10(abs(X2).^2));
plot(10*log10(abs(X3).^2));
plot(10*log10(abs(X4).^2));
% zoom in on the first part of the plot
a = axis;
a(1:2) = [1 10];
axis(a);
legend('N = 100', 'N = 1000', 'N = 10000', 'N = 100000');
grid on;

enter image description here

Note the logarithmic scaling on the Y axis, showing the proportionality to $N$.

A final note to address the other part of your question: there are of course limits to what you can accomplish here. One key one is the uncertainty principle; namely, when you increase the transform length in this way to gain resolution on the frequency axis, you lose a corresponding amount of time resolution. Secondly, your results may vary if your signal of interest or your background noise is not stationary over your observation interval; increasing the transform duration obviously increases the chances of this occurring.

$\endgroup$
  • $\begingroup$ Thank you so much for this extensive explanation! It much appreciated! Unfortunately in my case I am not able to increase the sampling interval. My signal is actually not of time, but of spatial angles (0:2pi) - a circular contour. I suspect that my signal may be non-stationary and that that may be the reasons I run into the noise-floor. I currently perform the FFT over the whole angle range, so that local/non-stationary fluctuations are "average" out over the whole frequency space and suspect that these contributions are too small in comparison to the noise (not sure that makes sense). $\endgroup$ – packoman Feb 5 '14 at 14:40
  • $\begingroup$ My question was founded in the idea that by reducing the sample-interval, I could increase the signal of these local fluctuations against the noise, using what in essence would be a SFT. I am motivated by the fact that in direct space I seem to be seeing a difference at short wavelengths between contours were I would expect local fluctuations and those where I would not (different experimental samples). However in the spectrum, where I would expect to see these fluctuations, I end up seeing only noise in both cases. It is a topic for another question, but perhaps you could comment? $\endgroup$ – packoman Feb 5 '14 at 14:42
  • $\begingroup$ Reducing your sample interval (equivalently, increasing your sample rate) will only help you if you're not meeting the Nyquist criterion with your current sample rate. If you're not sampling finely enough, then you will encounter aliasing, which, in an additive noise environment, will elevate the noise floor. I'm not able to parse through your description well enough to understand your application, but the answer to whether increasing the sample rate would help is "maybe." $\endgroup$ – Jason R Feb 5 '14 at 15:17
  • $\begingroup$ I am already oversampling, with regards to the images from where I obtain my contours, so I should be meeting the Nyquist criterion. What I am doing is described in the beginning of the following question: dsp.stackexchange.com/questions/13467/… Quickly, I am extracting contours of a fluctuating object from microscope images using a self-developed algorithm. I do this for a movie and then calculate the spectrum of the fluctuations of the series of obtained contours. $\endgroup$ – packoman Feb 5 '14 at 16:10
  • $\begingroup$ Now, when I compare two samples, where one fluctuates alot and the other very little, I seem to observe a difference between the two in the local fluctuations of the contours (which admittedly is very close to the noise floor). However the respective spectra at the corresponding lengthscales contain only noise. And I am trying to find out, if there is still a way to make these fluctuations visible in the spectrum. $\endgroup$ – packoman Feb 5 '14 at 16:10

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.