Skip to main content
added 357 characters in body
Source Link
P. Egli
  • 193
  • 5

Suppose we record $N$ repetions of a sinusoidal signal with noise (recording $M$ time points). We are interested in the magntiude spectrum. To improve the SNR, I average the signal traces from different repetitions. This, I can do in the time domain or in the complex Fourier domain (as the FFT is a linear operation). Then I calculate the magnitude spectrum.

Alternatively, I can also compute the magnitude spectrum for each individual trial and average over the magnitudes. This is not the same as the average above. For instance, for a signal with a fixed starting phase, I get a worse SNR. This is expected.

Assuming Gaussian or Possionian noise, what is the expected SNR difference? $\sqrt2$?

Peter

EDIT: It turns out that the SNR scaling for averaging in the time domain or the complex Fourier domain is $\mathrm{SNR} \propto \sqrt{N}$. When averaging the individual magnitude spectra, the scaling is $\mathrm{SNR} \propto {N}^{1/4}$. Besides these fundamental scalings, several improvements can be achieved as described in the answer of Dan Boschen.

Suppose we record $N$ repetions of a sinusoidal signal with noise (recording $M$ time points). We are interested in the magntiude spectrum. To improve the SNR, I average the signal traces from different repetitions. This, I can do in the time domain or in the complex Fourier domain (as the FFT is a linear operation). Then I calculate the magnitude spectrum.

Alternatively, I can also compute the magnitude spectrum for each individual trial and average over the magnitudes. This is not the same as the average above. For instance, for a signal with a fixed starting phase, I get a worse SNR. This is expected.

Assuming Gaussian or Possionian noise, what is the expected SNR difference? $\sqrt2$?

Peter

Suppose we record $N$ repetions of a sinusoidal signal with noise (recording $M$ time points). We are interested in the magntiude spectrum. To improve the SNR, I average the signal traces from different repetitions. This, I can do in the time domain or in the complex Fourier domain (as the FFT is a linear operation). Then I calculate the magnitude spectrum.

Alternatively, I can also compute the magnitude spectrum for each individual trial and average over the magnitudes. This is not the same as the average above. For instance, for a signal with a fixed starting phase, I get a worse SNR. This is expected.

Assuming Gaussian or Possionian noise, what is the expected SNR difference? $\sqrt2$?

Peter

EDIT: It turns out that the SNR scaling for averaging in the time domain or the complex Fourier domain is $\mathrm{SNR} \propto \sqrt{N}$. When averaging the individual magnitude spectra, the scaling is $\mathrm{SNR} \propto {N}^{1/4}$. Besides these fundamental scalings, several improvements can be achieved as described in the answer of Dan Boschen.

Source Link
P. Egli
  • 193
  • 5

SNR of averaging FFT in magnitude

Suppose we record $N$ repetions of a sinusoidal signal with noise (recording $M$ time points). We are interested in the magntiude spectrum. To improve the SNR, I average the signal traces from different repetitions. This, I can do in the time domain or in the complex Fourier domain (as the FFT is a linear operation). Then I calculate the magnitude spectrum.

Alternatively, I can also compute the magnitude spectrum for each individual trial and average over the magnitudes. This is not the same as the average above. For instance, for a signal with a fixed starting phase, I get a worse SNR. This is expected.

Assuming Gaussian or Possionian noise, what is the expected SNR difference? $\sqrt2$?

Peter