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

Online Simulator for ASK, FSK, and PSK

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) Simulato...

MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ...(with Online Simulator)

🧮 MATLAB Code for BPSK, M-ary PSK, and M-ary QAM Together 🧮 MATLAB Code for M-ary QAM 🧮 MATLAB Code for M-ary PSK 📚 Further Reading MATLAB Script for BER vs. SNR for M-QAM, M-PSK, QPSK, BPSK % Written by Salim Wireless clc; clear; close all; snr_db = -5:2:25; psk_orders = [2, 4, 8, 16, 32]; qam_orders = [4, 16, 64, 256]; ber_psk_results = zeros(length(psk_orders), length(snr_db)); ber_qam_results = zeros(length(qam_orders), length(snr_db)); for i = 1:length(psk_orders) ber_psk_results(i, :) = berawgn(snr_db, 'psk', psk_orders(i), 'nondiff'); end for i = 1:length(qam_orders) ber_qam_results(i, :) = berawgn(snr_db, 'qam', qam_orders(i)); end figure; semilogy(snr_db, ber_psk_results(1, :), 'o-', 'LineWidth', 1.5, 'DisplayName', 'BPSK'); hold on; for i = 2:length(psk_orders) semilogy(snr_db, ber_psk_results(i, :), 'o-', 'DisplayName', sprintf('%d-PSK', psk_or...

UGC NET Electronic Science Previous Year Question Papers

Home / Engineering & Other Exams / UGC NET 2022 PYQ 📥 Download UGC NET Electronics PDFs Complete collection of previous year question papers, answer keys and explanations for Subject Code 88. Start Downloading UGC-NET (Electronics Science, Subject code: 88) Subject_Code : 88; Department : Electronic Science; 📂 View All Question Papers Q. UGC Net Electronic Science Question Paper [June 2025] A. UGC Net Electronic Science Question Paper With Answer Key Download Pdf [June 2025] with full explanation Q. UGC Net Electronic Science Question Paper [December 2024] A. UGC Net Electronic Science Question Paper With Answer Key Download Pdf [December 2024] Q. UGC Net Electronic Science Question Paper [Aug 2024] A. UGC Net Electronic Scien...

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...(MATLAB Code + Simulator)

Bit Error Rate (BER) & SNR Guide Analyze communication system performance with our interactive simulators and MATLAB tools. 📘 Theory 🧮 Simulators 💻 MATLAB Code 📚 Resources BER Definition SNR Formula BER Calculator MATLAB Comparison 📂 Explore M-ary QAM, PSK, and QPSK Topics ▼ 🧮 Constellation Simulator: M-ary QAM 🧮 Constellation Simulator: M-ary PSK 🧮 BER calculation for ASK, FSK, and PSK 🧮 Approaches to BER vs SNR What is Bit Error Rate (BER)? The BER indicates how many corrupted bits are received compared to the total number of bits sent. It is the primary figure of merit for a...

Constellation Diagrams of ASK, PSK, and FSK (with MATLAB Code + Simulator)

Constellation Diagrams: ASK, FSK, and PSK Comprehensive guide to signal space representation, including interactive simulators and MATLAB implementations. 📘 Overview 🧮 Simulator ⚖️ Theory 📚 Resources Definitions Constellation Tool Key Points MATLAB Code 📂 Other Topics: M-ary PSK & QAM Diagrams ▼ 🧮 Simulator for M-ary PSK Constellation 🧮 Simulator for M-ary QAM Constellation BASK (Binary ASK) Modulation Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1. BFSK (Binary FSK) Modulation Transmits one...

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...

MATLAB Code for Zero-Forcing (ZF) Beamforming in 4×4 MIMO Systems

MATLAB Code for Zero-Forcing (ZF) Beamforming in 4×4 MIMO Systems clc; clear; close all; %% Parameters Nt = 4; % Transmit antennas Nr = 4; % Receive antennas (must be >= Nt for ZFBF) numBits = 1e4; % Number of bits per stream SNRdB = 0; % SNR in dB numRuns = 100; % Number of independent runs for averaging %% Precompute noise standard deviation noiseSigma = 10^(-SNRdB / 20); %% Accumulator for total errors totalErrors = 0; for run = 1:numRuns % Generate random bits: [4 x 10000] bits = randi([0 1], Nt, numBits); % BPSK modulation: 0 → +1, 1 → -1 txSymbols = 1 - 2 * bits; % Rayleigh channel matrix: [4 x 4] H = (randn(Nr, Nt) + 1j * randn(Nr, Nt)) / sqrt(2); %% === Zero Forcing Beamforming at Transmitter === W_zf = pinv(H); % Precoding matrix: [Nt x Nr] txPrecoded = W_zf * txSymbols; % Apply ZF precoding % Normalize transmit power (optional but useful) txPrecoded = txPrecoded / sqrt(mean(abs(txPrecoded(:)).^2)); %% Channel transmission with AWGN noise = noiseSigma * (randn(...

MIMO, massive MIMO, and Beamforming

Introduction to MIMO Systems The term Multiple Input Multiple Output (MIMO) refers to wireless communication systems that use multiple antennas at both the transmitter (Tx) and receiver (Rx). MIMO is a core technology in modern standards such as Wi-Fi 4/5/6, LTE, and 5G . The main purpose of MIMO is to increase channel capacity and improve link reliability by transmitting multiple independent data streams over the same frequency band. These simultaneous data streams are spatially multiplexed and transmitted through distinct propagation paths. When properly decoded, this orthogonal multiplexing minimizes interference among data streams and enhances throughput. In Massive MIMO —a key concept in 5G systems—hundreds of antennas are used at the base station to achieve very high capacity and to enable beamforming or directional transmission. 1. Essential Characteristics of a MIMO System 1.1 Spatial Division Multiple Access (SD...