Skip to main content

Theoretical BER vs SNR for binary ASK, FSK, and PSK (with MATLAB Code + Simulator)


Bit Error Rate (BER) Equations

In ASK, noise directly affects the signal amplitude, making it the most vulnerable since the data is carried in amplitude changes. In FSK, data is represented by frequency variations, and because noise typically impacts amplitude more than frequency, FSK is more robust than ASK. In PSK, data is encoded in the signal phase, and BPSK specifically uses 180-degree phase shifts, creating the greatest separation between signal points and therefore achieving the lowest bit error rate (BER) for the same power level. BER formulas for ASK, FSK, and PSK modulation schemes.

ASK

BER = 0.5 × erfc(0.5 × √SNR)

FSK

BER = 0.5 × erfc(√(SNR / 2))

PSK

BER = 0.5 × erfc(√SNR)

erfc / Q-function (Click here)

The Mathematical Foundation

The Bit Error Rate is fundamentally derived from the Conditional Probability of Error, where we integrate the Gaussian Noise PDF over the decision region:

\( P_b = \int_{\mathrm{Threshold}}^{\infty} \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-A)^2}{2\sigma^2}} \, dx = Q\!\left(\frac{A}{\sigma}\right) \)

In digital communications, the argument $x$ inside the $Q(x)$ function represents the ratio of the signal's "safety margin" to the noise magnitude. In an AWGN channel, the noise standard deviation is defined as: $\sigma = \sqrt{N_0 / 2}$

BPSK

Distance to boundary is $\sqrt{E_b}$

$x = \frac{\sqrt{E_b}}{\sqrt{N_0/2}}$
$x = \sqrt{\frac{2E_b}{N_0}}$

BFSK

Distance to boundary is $\frac{\sqrt{E_b}}{\sqrt{2}}$

$x = \frac{\sqrt{E_b}/\sqrt{2}}{\sqrt{N_0/2}}$
$x = \sqrt{\frac{E_b}{N_0}}$

BASK

Distance to boundary is $\frac{\sqrt{E_b}}{2}$

$x = \frac{\sqrt{E_b}/2}{\sqrt{N_0/2}}$
$x = \sqrt{\frac{E_b}{2N_0}}$

Why the 0.5 factor?

In 0.5 * erfc(x), the 0.5 represents the 50% probability of transmitting a '0' vs a '1' in a random bitstream.

Eb/N0 vs SNR

While SNR is the power ratio, Eb/N0 is the energy per bit, allowing us to compare schemes with different bandwidths fairly.

Theoretical BER vs SNR for Amplitude Shift Keying (ASK)

The theoretical Bit Error Rate (BER) for binary ASK depends on how binary bits are mapped to signal amplitudes. For typical cases:

If bits are mapped to 1 and -1, the BER is:

BER = Q(√(2 × SNR))

If bits are mapped to 0 and 1, the BER becomes:

BER = Q(√(SNR / 2))

Where:

  • Q(x) is the Q-function: Q(x) = 0.5 × erfc(x / √2)
  • SNR: Signal-to-Noise Ratio
  • N₀: Noise Power Spectral Density

Understanding the Q-Function and BER for ASK

  • Bit '0' transmits noise only
  • Bit '1' transmits signal (1 + noise)
  • Receiver decision threshold is 0.5

BER is given by:

Pb = Q(0.5 / σ), where σ = √(N₀ / 2)

Using SNR = (0.5)² / N₀, we get:

BER = Q(√(SNR / 2))

ASK BER Formula Derivation

Theoretical BER vs SNR for Frequency Shift Keying (FSK)

For binary FSK, the theoretical BER is:

BER = Q(√(SNR))

BER vs SNR for FSK

The Q-function is defined as:

Q(x) = 0.5 × erfc(x / √2)

BER Formula for BFSK

Similarities Between ASK and FSK

  • Both BERs decrease as SNR increases
  • Both use the Q-function for analytical BER calculation
  • FSK generally performs better under noisy conditions

MATLAB Code for Theoretical BER vs SNR

Binary ASK (BASK)

% The code is written by SalimWireless.Com 

clc;
clear all;
close all;

SNRdB = 0:20; 
SNR = 10.^(SNRdB/10); 

BER_th = (1/2) * erfc(0.5 * sqrt(SNR));

semilogy(SNRdB, BER_th, '-rh', 'linewidth', 2.5);
grid on;
title('Theoretical Bit Error Rate vs. SNR for Binary ASK Modulation');
xlabel('SNR (dB)');
ylabel('BER');
legend('Theoretical');
axis([0 20 1e-5 1]);

Binary FSK (BFSK)

% The code is written by SalimWireless.Com 

clc;
clear;
close all;

SNRdB = 0:1:10;              
SNR = 10.^(SNRdB/10);        

BER_th = (1/2) * erfc(sqrt(SNR / 2));

disp('SNR (dB)    Theoretical BER');
disp([SNRdB', BER_th']);

figure;
semilogy(SNRdB, BER_th, '-kh', 'LineWidth', 2);
xlabel('SNR (dB)');
ylabel('Bit Error Rate (BER)');
title('Theoretical BER vs SNR for BFSK');
grid on;

Theoretical BER vs SNR for BPSK -> (Click Here)

BER vs SNR Simulation



Comparison of ASK, FSK, and PSK Performance

Feature ASK (OOK) BFSK BPSK
Power Efficiency Low Medium High
Bandwidth Efficiency High Low High
Noise Immunity Poor (Sensitive to Amp) Good Excellent
Best Used In Fiber Optics, RFID Caller ID, Paging Deep Space, Satellite

Read More

Key Terms Explained

Eb/N0 (Energy per Bit to Noise Power Density):
The normalized SNR measure, also known as the "SNR per bit." It is the most important metric for comparing different modulation schemes regardless of bandwidth. [Read More] 
Q-Function:
The Q-function represents the tail probability of the standard normal distribution. In BER terms, it tells us the probability that noise will exceed the decision boundary. Read more
Coherent vs. Non-Coherent Detection:
Coherent detection (used in the formulas above) requires the receiver to be in phase-sync with the transmitter. Non-coherent detection is easier to build but results in a higher BER.

Further Reading

  1. BER vs SNR for ASK, FSK, and PSK with Online Simulator 
  2. Understanding the Q-function in BASK, BFSK, and BPSK
  3. BER for M-ary PSK and QAM
  4. Constellation Diagrams


Contact Us

Name

Email *

Message *

Popular Posts

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

MUSIC Algorithm Explained (with MATLAB + Simulator)

Practical Implementation of the MUSIC Algorithm The focus is on how the algorithm works computationally , not just theory, and it explains the denominator (a H E n E n H a) mathematically and intuitively. 1. Introduction The MUSIC (Multiple Signal Classification) algorithm is a high-resolution method used in signal processing and array processing to estimate the Direction of Arrival (DOA) of signals received by a sensor array. Unlike classical beamforming methods, MUSIC uses eigenvector decomposition of the covariance matrix to separate the signal subspace and noise subspace , allowing it to achieve much higher angular resolution. In practical implementations, MUSIC works by: Simulating or collecting array signals Computing the covariance matrix Performing eigenvalue decomposition Separating signal and noise subspaces Scanning possible angles using a steering vector Constructing a pseudo-spectrum where peaks indicate signal directions 2. Signal Mo...

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

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 📈 Q-function 📚 Resources BASK Modulation Transmits one of two signals: 0 or $\sqrt{E_b}$, representing binary 0 and 1. Simple but sensitive to noise. BFSK Modulation Transmits one of two signals: $\sqrt{E_b}$ on the Y-axis or $\sqrt{E_b}$ on the X-axis. These are orthogonal signals. BPSK Modulation Transmits $+\sqrt{E_b}$ or $-\sqrt{E_b}$ (antipodal signaling). Most efficient binary scheme. ...

MIMO Channel Matrix | Rank and Condition Number

MIMO / Massive MIMO MIMO Channel Matrix | Rank and Condition...   The channel matrix in wireless communication is a matrix that describes the impact of the channel on the transmitted signal. The channel matrix can be used to model the effects of the atmospheric or underwater environment on the signal, such as the absorption, reflection or scattering of the signal by surrounding objects. When addressing multi-antenna communication, the term "channel matrix" is used. Let's assume that only one TX and one RX are in communication and there's no surrounding object. Here, in our case, we can apply the proper threshold condition to a received signal and get the original transmitted signal at the RX side. However, in real-world situations, we see signal path blockage, reflections, etc.,  (NLOS paths [↗]) more frequently. The obstruction is typically caused by building walls, etc. Multi-antenna communication was introduced to address this issue. It makes diversity app...

Wiener Filter in MATLAB

  MATLAB Code  % Wiener Filter Based on Wiener-Hopf Equation % This script demonstrates how to apply the Wiener filter to recover % a reference signal from a noisy signal using the Wiener-Hopf equation. % The filter minimizes the mean squared error between the noisy signal and the reference signal. clear; close all; clc; % Signal Parameters fs = 4000; % Sampling frequency (Hz) T = 1; % Total recording time (seconds) L = T * fs; % Signal length (samples) tt = (0:L-1) / fs; % Time vector ff = (0:L-1) * fs / L; % Frequency vector % Generate Reference Signal (a sinusoid) y = sin(2 * pi * 120 * tt); % Reference sinusoidal signal y = y(:); % Ensure column vector % Create Noisy Signal by Adding Gaussian Noise x = 0.50 * randn(L, 1) + y; % Noisy signal x = x(:); % Ensure column vector % Define Filter Order (Number of Coefficients) N = 200; % Apply Wiener Filter using custom function [xest, b, MSE] = wienerFilt(x, y, N); % Plot Results figure; subplot(411); plot(tt, x, 'k'), hold on, p...

Overmodulation & Distortion in AM

Overmodulation in AM and How It Causes Distortion 1. AM Signal Equation s(t) = A c [1 + μ m(t)] cos(2Ï€ f c t) A c = carrier amplitude m(t) = normalized modulating signal (|m(t)| ≤ 1) μ = modulation index 2. Modulation Index μ = A m / A c - Normal AM: 0 < μ ≤ 1 → no distortion - Overmodulation: μ > 1 → distortion occurs 3. Envelope and Overmodulation A(t) = A c [1 + μ m(t)] - For undistorted AM: 1 + μ m(t) ≥ 0 at all times - If μ > 1: 1 + μ m(t) < 0 at negative peaks → carrier flips Example: Let m(t) = cos(2Ï€ f m t), A c = 1 V, μ = 1.2 Minimum envelope: A min = A c [1 - 1.2] = -0.2 V Negative amplitude → envelope crosses zero → 180° phase flip 4. Mathematical Consequence -A c cos(θ) = A c cos(θ + Ï€) This phase reversal is what causes distortion in the demodulated signal. 5. Instantaneous AM Signal s...

Frequency Selective Fading vs Flat Fading in MATLAB

In the MATLAB code below, a comparison between  frequency-selective fading  and  flat fading  is shown. In frequency-selective fading, multipath propagation causes multiple delayed copies of the signal to arrive at the receiver. When the channel delay spread exceeds the symbol duration, these delayed components overlap, resulting in inter-symbol interference (ISI). In flat fading, ISI does not occur because the signal bandwidth is much smaller than the channel’s coherence bandwidth . Therefore, the channel response remains approximately constant across the signal bandwidth, and all symbols experience the same fading. MATLAB Code for frequency selective fading channel % OFDM over frequency selective Rayleigh fading channel clc; clearvars; close all ; % Simulation parameters nSym = 10^4; % Number of OFDM symbols EbN0dB = 0:2:20; % Eb/N0 range MOD_TYPE = 'MPSK' ; % 'MPSK' or 'MQAM' M = 4; % QPSK N = 64; % Total number ...