Let’s find out what the SDR spectrum noise floor means and where it comes from. And, we’ll do some math, too!

When you fire up your software defined radio, you are greeted with a display of signals (vertical spikes) and noise (sort of grass spread across the screen horizontally.) Signals are coherent, noise is mostly random. You will notice that signals appear at specific frequencies; however, noise is distributed across all.

Your analog to digital converter represents a signal as a voltage which is converted to power. Listeners measure signals in dBm, power relative to one miliwatt on a specific frequency. Engineers measure noise as a power spectral density; as a result, it is measured in dBm/Hz.

So, what measurement should you expect for your SDR spectrum noise floor? That depends on four factors, as follows.

- External noise picked up by your antenna. Usually, your antenna provides a combination of atmospheric, galactic, and unfortunately man-made noise. See here for an explanation of these external noises. Usually, you will find these external noises referred to as F
_{a}in the literature, and they are measured as dB above internal noise in your receiver. Typically, F_{a}varies from 10 to 50 dB, usually dominated by man-made noise which decreases with higher frequency. - Internal noise is comprised of two factors, thermal noise and receiver noise figure. Thermal noises are vibrations in the analog circuits at temperatures above absolute zero. At room temperature, thermal noise is -174 dBm/Hz. The noise figure, or NF, is the amount of extra noise created as your radio amplifies signals, measured in dB. The two receivers demonstrated above have NF of 3 dB (SDRPlay RSP2) and 17 dB (Perseus).
- Finally, you always measure noise with respect to a specific bandwidth. This might be the width of a filter, or the resolution bandwidth of an FFT. Typically, magazine reviews state noise-related measurements in a 500 or 2400 Hz bandwidth.

Now you know the basics. You can calculate the Minimum Discernible Signal or SDR Spectrum Noise Floor using the following formula:

MDS (dBm) = -174 dBm/Hz + Fa dB + 10 Log(BW in Hz) + Noise Figure (dB)

We are ignoring FFT scaling and other issues for now to keep it simple.

## SDR Spectrum Noise Floor – Running the Numbers

I ran two receivers (RSP2 and Perseus) side by side sharing the same antenna on the same frequency. My objective was to calculate SDR spectrum noise floor from first principles using the above formula.

First, I measured noise using CW mode with a 100 Hz bandwidth. This gave me a noise power of -135 dBm on the SDRPlay and -121 dBm on the Perseus. This difference is 14 dB, which is also the difference in Noise Figures of the two receivers. From this noise power, I calculated the external noise coming into the receiver F_{a} as 16 dB.

Second, I used the MDS formula to estimate what should be the level of the SDR spectrum noise floor. The software FFT was producing a bin width of 7.6 Hz, which is a very narrow bandwidth. So, for the RSP2 the calculation is:

MDS = -174 db/Hz (Thermal) + 16 dB (F_{a}) + 10 Log(7.6 Hz) (Bandwidth) + 3 dB (NF) = -146 dBm.

A similar calculation for the Perseus produces = -174 + 16 + 9 + 17 = -132 dBm.

Low and behold, the SDR Spectrum Noise Floor (FFT, not averaged) shown in the spectrum display is pretty close to the calculations from first principles.

You should be able to use this formula to examine your own situation. The formula for calculating external noise spectrum measured in CW at 100 Hz is as follows:

F_{a} = actual measurement (dBm) + 174 – 10 Log(100 Hz) – NF of your receiver. Have fun!