Take the 2-minute tour ×
Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. It's 100% free, no registration required.

Is there an accepted way of determining the noise floor of a signal by looking at it in the frequency domain? Is it a matter of averaging all the bins, or median, or some more complex calculation like those described in the question below?

What's the best criterion for determining a frequency peak?

I want to determine the noise floor to set a threshold for determining whether or not my signal contains a given frequency.

share|improve this question
    
What are the characteristics of the noise? Is it white or colored? –  Jason R Jan 11 '13 at 14:23
    
White noise, though I'd love to hear how the answer differs for other colors as well. –  Dan Sandberg Jan 11 '13 at 14:25
2  
White noise is easier to characterize because you would expect it to be flat in the frequency domain. I should have asked before, but what are the characteristics of your signal? How much of the band is filled by signal versus noise? Is the signal always present, or do you have a chance to observe noise only? –  Jason R Jan 11 '13 at 14:31
1  
The signal is composed of frequencies that fall in the center-bin when doing an FFT (no spectral leakage). Ignoring noise and channel effects each frequency is either at maximum or at the noise floor. If four out of the possible n frequencies are "on" then each frequency should have 1/4th of the power of the whole signal (again, ignoring the noise floor) –  Dan Sandberg Jan 11 '13 at 17:53
1  
@DanSandberg: Without a windowing function, Parseval's theorem lets you calculate energy in time or frequency directly from the other domain. For Python's fft function, for instance: rms(fft(x))/sqrt(n) = rms(x) examples here So you have to decide what your signal looks like in the frequency domain, remove it, measure the leftover values, and multiply by sqrt(n) to get the RMS noise floor, for instance. –  endolith Feb 5 '13 at 16:03
show 5 more comments

2 Answers 2

You need to normalize your data based on the type of window you are using to obtain your frequency domain representation of the data. The normalization differs depending on whether you are measuring a narrow band (your signal peak) or broadband (noise) signal. Once you have the data properly normalized, the power of the narrow band signal can be read directly from the data. The noise measurement must be estimated from the "noise floor" of the normalized frequency data. Your noise power estimate will be 6dB less than the noise floor. For a detailed discussion,

Go to this link: http://www.fhnw.ch/technik/ime/publikationen

Download the paper ""How to use the FFT for signal and noise simulations and measurements".

share|improve this answer
add comment

Since your noise is gaussian, then its power spectrum is flat. You may have some signal spectrum peaks, so they should be avoided. I would propose either median of the power spectrum samples or alpha-trimmed average of the power spectrum samples, or ultimately the inter-quartile average. All of these estimates are robust, you may choose any that fits best.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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