Skip to main content

Relationship between Signal vs Noise (SNR) (with MATLAB + Simulator)


Signal


A signal represents the information-bearing entity that one wants to transmit, analyze, or process. It could be an electrical signal, electromagnetic wave, acoustic wave, or any other form of a carrier that carries information



Noise


Noise refers to unwanted disturbances or interference that degrades the quality of the signal. It can arise from various sources, including electronic components, environmental factors, transmission channels, etc.





Relationship between Signal and Noise

 




Based on the aforementioned mathematical section, SNR (or SNR value in dB) will be zero if signal power equals noise power.

The SNR value, or SNR value in dB, will be positive if the signal power is greater than the noise power.

Negative SNR (or SNR value in dB) occurs when the noise power exceeds the signal power.

In terms of mathematics, a higher positive SNR value denotes a stronger signal relative to noise power. In contrast, a lower negative SNR value denotes a higher level of noise relative to the signal power.

A higher SNR indicates a stronger, more distinguishable signal relative to the noise, leading to better signal quality and lower error rates in communication or processing. For more details click here



Example
MATLAB Script



% Parameters
fs = 1000; % Sampling frequency (Hz)
t = 0:1/fs:1-1/fs; % Time vector (1 second)
f_signal = 10; % Frequency of the signal (10 Hz)


% Generate a sinusoidal signal
signal = sin(2*pi*f_signal*t);


% Add Gaussian noise to the signal
SNR_dB1 = -5; % Desired SNR in dB
SNR_dB2 = 5; % Desired SNR in dB
SNR_dB3 = 25; % Desired SNR in dB
noise_power1 = 10^(-SNR_dB1/10); % Noise power calculated from SNR
noise_power2 = 10^(-SNR_dB2/10); % Noise power calculated from SNR
noise_power3 = 10^(-SNR_dB3/10); % Noise power calculated from SNR
noise1 = sqrt(noise_power1) * randn(size(t)); % Gaussian noise
noise2 = sqrt(noise_power2) * randn(size(t)); % Gaussian noise
noise3 = sqrt(noise_power3) * randn(size(t)); % Gaussian noise



% Corrupt the signal with noise
signal_noisy1 = signal + noise1;
signal_noisy2 = signal + noise2;
signal_noisy3 = signal + noise3;


% Calculate SNR
SNR_calculated1 = 10 * log10(sum(signal.^2) / sum(noise1.^2));
SNR_calculated2 = 10 * log10(sum(signal.^2) / sum(noise2.^2));
SNR_calculated3 = 10 * log10(sum(signal.^2) / sum(noise3.^2));


% Plot the signals
figure;
subplot(4,1,1);
plot(t, signal);
title('Original Signal');
xlabel('Time (s)');
ylabel('Amplitude');


subplot(4,1,2);
plot(t, signal_noisy1);
title('Signal Corrupted by Noise at SNR = -5 dB');
xlabel('Time (s)');
ylabel('Amplitude');


subplot(4,1,3);
plot(t, signal_noisy2);
title('Signal Corrupted by Noise at SNR = 5 dB');
xlabel('Time (s)');
ylabel('Amplitude');


subplot(4,1,4);
plot(t, signal_noisy3);
title('Signal Corrupted by Noise at SNR = 25 dB');
xlabel('Time (s)');
ylabel('Amplitude');


% Display the plot
sgtitle('Signal, Noise, and Noisy Signal');

 


Copy the MATLAB Code from here


 

Further Reading

  1.  Signal vs Noise (SNR) Online Simulator

 



Contact Us

Name

Email *

Message *

Popular Posts

OFDM Symbols and Subcarriers Explained

This article explains how OFDM (Orthogonal Frequency Division Multiplexing) symbols and subcarriers work. It covers modulation, mapping symbols to subcarriers, subcarrier frequency spacing, IFFT synthesis, cyclic prefix, and transmission. Step 1: Modulation First, modulate the input bitstream. For example, with 16-QAM , each group of 4 bits maps to one QAM symbol. Suppose we generate a sequence of QAM symbols: s0, s1, s2, s3, s4, s5, …, s63 Step 2: Mapping Symbols to Subcarriers Assume N sub = 8 subcarriers. Each OFDM symbol in the frequency domain contains 8 QAM symbols (one per subcarrier): Mapping (example) OFDM symbol 1 → s0, s1, s2, s3, s4, s5, s6, s7 OFDM symbol 2 → s8, s9, s10, s11, s12, s13, s14, s15 … OFDM sym...

UGC NET Electronic Science Previous Year Question Papers with Solutions

Home / Engineering & Other Exams / UGC NET 2026 PYQ ⬇️ Download Papers and Solutions 📋 Exam Pattern 💡 Preparation Tips ❓ FAQs 📊 Exam Highlights: Electronic Science (88) Feature Details Junior Research Fellowship (JRF) ₹37,000 + HRA per month Eligibility M.Sc/M.Tech in Electronics (55%) Validity of Certificate JRF (3 Years) | Lectureship (Lifetime) 📥 Download UGC NET Electronics PDFs Complete collection of previous year question papers, answer keys and explanations for Subject Code 88. Start Downloading 📂 View All Question Papers June 2025 - Question Paper Download PDF June 2025 - Solved Paper + Explanation ...

Design of CMOS XOR/XNOR Gates

Design of CMOS XOR/XNOR Gates The semiconductor industry has experienced rapid integration of multimedia applications into mobile electronics, leading to very high integration density in CMOS VLSI. As operating frequencies increase, power consumption, speed, silicon area, and reliability become critical considerations. The XOR-XNOR circuits are fundamental building blocks in arithmetic circuits (Full Adders, Multipliers), compressors, comparators, parity checkers, code converters, error-detecting/correcting codes, and phase detectors. Their performance directly impacts the complex circuits they are used in. Design goals include full output voltage swing, low power consumption, reduced transistor count, minimal delay, and simultaneous non-skewed outputs. Static Logic (Static CMOS) Stat...

Online Simulator for ASK, FSK, and PSK Signal Generation

Interactive Digital Signal Processing (DSP) Tutorial and Simulator for ASK, FSK, and BPSK modulation techniques. Try our new Digital Signal Processing Simulator!   •   Interactive ASK, FSK, and BPSK tools updated for 2025. Start Now Digital Modulation Visualizer: ASK, FSK, & BPSK Simulator Learn and visualize binary modulation techniques (ASK, FSK, BPSK) in real-time with adjustable carrier and sampling parameters. Perfect for DSP students and engineers. 📡 ASK Simulator 📶 FSK Simulator 🎚️ BPSK Simulator 📚 More Topics ASK Modulator FSK Modulator BPSK Modulator More Topics 1. ASK (Amplitude Shift Keying) Simulat...

DFTs-OFDM vs OFDM: Why DFT-Spread OFDM Reduces PAPR Effectively (with MATLAB Code)

Understanding PAPR in DFT-spread OFDM vs. Standard OFDM In modern wireless communications like 4G LTE and 5G NR, managing the Peak-to-Average Power Ratio (PAPR) is critical for hardware efficiency. While OFDM is the gold standard for high-speed data, its high PAPR poses significant challenges for mobile devices. This is where DFTs-OFDM (also known as SC-FDMA) comes in. DFT-spread OFDM (DFTs-OFDM) has lower Peak-to-Average Power Ratio (PAPR) because it "spreads" the data in the frequency domain before applying IFFT, making the time-domain signal behave more like a single-carrier signal rather than a multi-carrier one like OFDM. Deeper Explanation: Aspect OFDM DFTs-OFDM Signal Type Multi-carrier Single-carrier-like Process IFFT of QAM directly QAM → DFT → IFFT PAPR Level High (due to many...

Calculation of SNR from FFT bins in MATLAB

📘 Overview 💻 FFT Bin Method 💻 Kaiser Window 📚 Further Reading SNR Estimation Overview In digital signal processing, estimating the Signal-to-Noise Ratio (SNR) accurately is crucial. Below, we demonstrate how to calculate SNR from periodogram and FFT bins using the Kaiser Window . The beta (β) parameter is the key—it allows you to control the trade-off between main-lobe width and side-lobe levels for precise spectral analysis. 1 Define Sampling rate and Time vector 2 Compute FFT and Periodogram PSD 3 Identify Signal Bin and Frequency resolution 4 Segment Signal Power from Noise floor 5 Logarithmic calculation of SNR in dB Method 1: Estimation from FFT Bins This approach uses a Hamming window to estimate SNR directly from the spectral bins. MATLAB Source Code Copy Code clc...

MATLAB Code for MUSIC

  MATLAB Code clc; clear; close all ; %% Step 1: Define Parameters M = 8; % Number of array sensors d = 0.5; % Sensor spacing (lambda/2) K = 2; % Number of signals N = 200; % Number of snapshots theta = [-20 30]; % True signal angles (degrees) SNR = 10; % Signal-to-noise ratio (dB) fprintf( 'Step 1: Parameters Initialized\n' ); %% Step 2: Generate Signal Sources t = 1:N; s1 = exp(1j*2*pi*0.05*t); s2 = exp(1j*2*pi*0.1*t); S = [s1; s2]; figure; plot(real(S(1,:))) title( 'Signal 1 (Real Part)' ) xlabel( 'Samples' ) ylabel( 'Amplitude' ) figure; plot(real(S(2,:))) title( 'Signal 2 (Real Part)' ) xlabel( 'Samples' ) ylabel( 'Amplitude' ) fprintf( 'Step 2: Source Signals Generated\n' ); %% Step 3: Construct Steering Matrix A = zeros(M,K); for k = 1:K A(:,k) = exp(-1j*2*pi*d*(0:M-1)'*sin(theta(k)*pi/180)); end fprintf( 'Step 3: Steering Matr...