What is signal-to-noise ratio (SNR)?

Table of Contents

signal to noise ratio (SNR)

What is signal to noise ratio?

The signal-to-noise ratio (SNR) is a measure used in science and engineering that compares the level of a desired signal to the level of background noise. It is defined as the ratio of signal power to the noise power. A ratio higher than 1:1 indicates more signal than noise.

How to calculate signal to noise ratio?

The SNR is usually expressed in decibels (dB). The signal to noise ratio formula is:

SNR=10lg(Ps/Pn)
or
SNR=20lg(Vs/Vn) 

Among them, “Ps” and “Pn” represent the effective power of signal and noise respectively, and “Vs” and “Vn” are the effective values of signal and noise voltage.

Simulation calculation

The following case will use the power ratio as an example to carry out simulation calculations:

%% Calculating the SNR Simulation
clear; clc; close all; warning off;

% parameter settings
T = 2; % Simulation time
fs = 1000; % Sampling frequency
t = 0 : 1/fs : T;
L = length(t);
A = 10; % Amplitude
fc = 10; % carrier frequency
P_n = 2; % noise power

% generate simulated signal
signal = A * cos(2 * pi * fc .* t); % generate a valid signal
noise = sqrt(P_n) .* randn(1, L); % Generate white Gaussian noise signal

% Calculating SNR
P_s = sum(signal .^ 2) / L; % signal power
P_n = sum(noise .^ 2) / L; % noise power
SNR = 10 * log10(P_s / P_n); % signal-to-noise ratio
fprintf('\t Ps:%.2fW\n', P_s);
fprintf('\t Pn:%.2fW\n', P_n);
fprintf('\t SNR:%.2fdB\n', SNR);

figure(1); clf;
subplot(2, 1, 1);
plot(t, signal, 'b', 'linewidth', 2); hold on;
plot(t, noise, 'k', 'linewidth', 1); hold on;
plot(t, signal+noise, 'g', 'linewidth', 1);
xlabel('t'); ylabel('y'); axis('tight'); title('All waveforms'); set(gca, 'fontsize', 14);
subplot(2, 1, 2);
plot(t(100:500), signal(100:500), 'b', 'linewidth', 2); hold on;
plot(t(100:500), noise(100:500), 'k', 'linewidth', 1); hold on;
plot(t(100:500), signal(100:500)+noise(100:500), 'g', 'linewidth', 1);
legend(['signal power≈', num2str(P_s, '%.2f'), 'W'], ['noise power≈', num2str(P_n, '%.2f'), 'W'], ...
['SNR≈', num2str(SNR, '%.2f'), 'dB'], 'location', 'eastoutside');
xlabel('t'); ylabel('y'); axis('tight'); title('Zoom in to observe signal details'); set(gca, 'fontsize', 14);
set(gcf, 'position', [12, 60, 1450, 650]);

ADC SNR

ADC SNR is used to measure the quality of a digital-to-analog converter (DAC) or analog-to-digital converter (ADC). The higher the ADC SNR value, the better the performance of the converter system. It is essential for any signal system to maintain a good ADC SNR value in order to provide accurate output signals.

ADC SNR calculation

adc snr formula:

SNR=6.02N+1.76dB

“N” is the number of bits of the ADC.

Formula Derivation

The figure below is a schematic diagram of the quantization noise of an ideal ADC. As can be seen from the figure below, for a linear input analog signal, the ADC will produce a stepped output. The error waveform of this input and output is similar to a sawtooth with peak-to-peak value q=1LSB Wave, its effective value RMS calculation process is shown in formula (1) (q=1LSB), LSB calculation process is shown in formula (2), where FS is the input voltage range of ADC.

Schematic diagram of the quantization noise of the ADC

Since the signal-to-noise ratio is the effective value (RMS) of the signal divided by the effective value (RMS) of the noise, we can get the formula (3):

For a full-scale input sinusoidal signal as shown in formula (4), formula (5) can be obtained according to formula (4):

For a full-scale ADC, its input range is 0-FS, then the amplitude range of the input sinusoidal signal is 0-Fs/2, see the schematic diagram below, so the denominator in formula (4) is 2.

Amplitude range of sinusoidal signal for ADC

So far, we know the effective value (RMS) of the signal – formula (5), and the effective value (RMS) of the ADC quantization noise – formula (1). Now we put the formula (5) and formula (1) into formula (3) to get formula (6):

After simplifying the formula (6), we can obtain formula 7 as below:

Share:

Facebook
Twitter
Pinterest
LinkedIn

Leave a Comment

Your email address will not be published. Required fields are marked *

About Author

Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Need Help?

Scroll to Top
welldone pcb manufacturer

Start to Achieve Your PCB Project

Open chat
Scan the code
Hello 👋
Can we help you? Chat with us on WhatsApp↓, or send an email to us: info@reversepcb.com