Suppose I have a signal that consists of a sine plus noise. Is it possible to measure the SNR with an oscilloscope?

Is the following procedure correct?

enter image description here

  1. Check the noise floor in the FFT mode of the oscilloscope (green FFT in picture).
  2. Connect the DUT and measure the SNR as indicated (red FFT in picture).
  • \$\begingroup\$ Keep in mind that an oscilloscope often introduces quite a bit of its own spectral noise (from the converters, the processor, the Ethernet PHYs, and so on) and therefore the FFT can often show an inaccurate representation of your signal. A decent spec an will have far better performance. \$\endgroup\$ – uint128_t May 17 '18 at 0:34

The SNR is the ratio between the power of all the signal and the power of all the noise. If I'm not mistaken, the FFT in your diagram shows you the dB in volt, not in W. In the rest of this answer, every time I say dB, it's in voltage. So 0 dB = 1 volt, 6 dB ≃ 2 volt.

Let's assume you are sending a pure sine wave that looks like this: \$x(t) = A×\sin(\omega t)\$ volt.

  • The power of \$x(t)\$ will be its RMS value, squared. So you get \$\big(\frac{A}{\sqrt{2}}\big)^2=\frac{A^2}{2}\$

  • The power of the noise floor will be the sum of all the RMS values, squared. So you get \$\sum\frac{A_i^2}{2}\$ where \$A_i\$ is the amplitude of each individual frequency of the FFT (without a signal present, so the green graph in your question).

  • Going from dB in volt to linear volt numbers is simply \$10^{\frac{\text{dB}}{20}}\$

  • Going from dB in volt to linear power numbers is simply \$10^{\frac{\text{dB}}{10}}\$

The total power of the noise floor can be approximated, which I assume you want to do. So let's say you are doing a 1024 point FFT, you measure the noise floor and find out that it is about -40 dB, this is your green graph. Then let's say you do the red graph and measure your sine wave and find out that the maximum point is 6 dB.

The approximated floor noise is then:

$$P_{noise} = 1024×\frac{10^\frac{-40}{10}}{2}=0.0512 \text{ W}$$

The power of the signal is then:

$$P_{signal} = \frac{10^\frac{6}{10}}{2}=1.99 \text{ W} $$

The SNR is then:

$$\frac{P_{signal} }{P_{noise}}=\frac{1.99}{0.0512}≃38.87 = 10\log_{10}(38.87) \text{ dB}≃15.89 \text{ dB} $$

In case it's hard to absorb what I'm saying, here's the approximative equation simplified where I will mark \$\color{green}{\text{green}}\$ for your measurements according to your \$\color{green}{\text{green}}\$ graph, and \$\color{red}{\text{red}}\$ for your measurement according to your \$\color{red}{\text{red}}\$ graph.

$$ \begin{align} \text{SNR} &= \color{red}{\text{signal}}-\color{green}{\text{floor}}-10\log_{10}(\text{FFT})\text{ dB} \\ \text{SNR} &= 6-(-40)-10\log_{10}(\text{1024})\text{ dB}≃15.89 \text{ dB}\\ \end{align} $$

So no, your method is not 100% correct, but you were very close.


Your method is wrong. You must sum ALL the frequency bins containing the noise.

So if your red signal is 10dB above the noise floor , and there are 100 FFT bins, noise=1x100bins, signal=10x1bin and then SNR is 100/10 = -10dB (i.e. noise is 10x Signal)

If you have spectrum analyser settings, then you can adjust the bandwidth (or number of fft bins). As you adjust this narrower, the noise floor drops. Of course SNR is not changing, so it is then obvious that (peak-floor) was not a valid SNR measurment

When SNR is actually poor, signal still appears strong on FFT.

This is of course why we have filters, FFT's and spectrum analysers, and why we can make radios when the SNR at the antenna terminal is -200dB (i.e. noise exceeds signal by 10^20)

I would observe that is your SNR is +ve, then you measure it using the oscilloscope, by measuring the noise and signal voltages.

If the SNR is -ve then you may have to use a spectrum analyser, as the signal cannot be accurately measured in all the nosie.


Signal-to-noise ratio is a measure of useful signal amplitude compared to noise floor. Both quantities are usually defined in the power spectrum domain. And measurements in power spectrum domain heavily rely of instrumentation bandwidth and frequency resolution.

Technically you can turn your oscilloscope into a simple spectrum analyzer if you have proper software installed, and this is a bit more than just FFT. I would strongly suggest to read up on literature on fundamentals of measurements in frequency domain. For example, Keysight Technologies offers a lot of literature on the subject, like this Appnote. You might want to explore their offerings. Here is another word of wisdom from Keysight on the subject of SNR measurements.

In your particular case the height of sine peak will depend on processing window and spectral resolution of your simple FFT routine. Doubling spectral resolution will likely change the peak height, since the result will depend on precise ratio between your sine wave frequency and sampling frequency of oscilloscope/analyzer. So it is not simple, there are much more to proper SNR analysis.


On analog-display scopes, running the noise into 2 channels and adjusting the spacing to let the two separate Gaussian bell curves become one blur with no obvious central dip, provided a measure of RMS (aka 1-sigma).

Thus examine the density of the bell curve, and see where the overlapping serves to prevent any central dip.


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.