Skip to main content

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.



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 any digital communication link.

BER = (number of bits received in error) / (total number of transmitted bits)

What is Signal-to-Noise Ratio (SNR)?

SNR is the ratio of signal power to noise power, typically expressed in decibels (dB) to handle large variations in signal strength.

SNR (dB) = 10 * log10(Signal Power / Noise Power)

Example: An SNR of 3 dB means signal power is 2x stronger than noise.


M-ary PSK: (M = modulation order)
BER ≈ (1 / log₂M) × erfc( √(Es/N0) × sin(Ï€/M) )
M-ary QAM (Square):
BER ≈ [ 2(1 - 1/√M) / log₂M ] × erfc( √( 1.5 × Es/N0 / (M - 1) ) )

Interactive BER Calculator

Calculate theoretical BER for PSK and QAM systems instantly.

M-ary PSK

---

M-ary QAM

---

Performance Comparison

BER vs. SNR Graph
Download MATLAB BER Code →
Technique Bits/Symbol
BPSK1
QPSK2
8-PSK3
16-QAM4
64-QAM6

Modulation Scheme and Bandwidth Requirement

Modulation Bits/Symbol Bandwidth
BPSK 1 Rb
QPSK 2 Rb / 2
8-PSK 3 Rb / 3
16-QAM 4 Rb / 4

Read more about Modulation Scheme & Bandwidth Requirement



Try Interactive Online Simulators


BER Requirements by Application

Technology Typical Modulation Target BER
5G Mobile Data 256-QAM 10-4 to 10-6
Satellite Comms (Deep Space) BPSK / QPSK 10-3 (Pre-FEC)
Fiber Optic Networks Coherent QAM 10-12
Submarine Cables 8-QAM / 16-QAM 10-15

Quick Knowledge Check

If you double the signal power (increase by 3dB), what happens to the SNR?

Theoretical Error Probability of Digital Modulation

Key Concept: The performance of a modulation scheme is measured by how many errors occur for a given signal strength. We distinguish between Bit Error Rate (BER)—the probability of a single bit being wrong—and Symbol Error Rate (SER)—the probability of a group of bits (a symbol) being wrong.

1. Bit Error Rate (BER) Formulas

BER indicates the end-to-end performance of a data link. For higher-order modulation like QAM, we use approximations based on Gray Coding (where adjacent symbols differ by only one bit).

Binary Phase Shift Keying (BPSK)

The baseline for performance; very robust against noise.

\[ P_b = Q\left(\sqrt{\frac{2E_b}{N_0}}\right) \] Quadrature Phase Shift Keying (QPSK)

Carries 2 bits per symbol but maintains the same BER as BPSK.

\[ P_b = Q\left(\sqrt{\frac{2E_b}{N_0}}\right) \] M-ary PSK (e.g., 8-PSK) \[ P_b \approx \frac{2}{\log_2(M)} Q\left( \sqrt{\frac{2E_s}{N_0}} \sin\left(\frac{\pi}{M}\right) \right) \] Rectangular M-ary QAM (16, 64, 256-QAM)

As M increases, the distance between points decreases, making them more sensitive to noise.

16-QAM: \[ P_b \approx \frac{3}{4} Q\left( \sqrt{\frac{4}{5}\frac{E_b}{N_0}} \right) \]

64-QAM: \[ P_b \approx \frac{7}{12} Q\left( \sqrt{\frac{2}{7}\frac{E_b}{N_0}} \right) \]

256-QAM: \[ P_b \approx \frac{15}{32} Q\left( \sqrt{\frac{8}{85}\frac{E_b}{N_0}} \right) \]


2. Symbol Error Rate (SER) Formulas

SER is useful for designing the physical layer and hardware. One symbol error usually results in only one bit error if Gray Coding is used.

BPSK & QPSK

BPSK: \[ P_s = Q\left(\sqrt{\frac{2E_b}{N_0}}\right) \]

QPSK: \[ P_s \approx 2Q\left(\sqrt{\frac{2E_b}{N_0}}\right) \]

General M-QAM Symbol Error Rate

A symbol is "lost" if the noise pushes it outside its decision boundary.

16-QAM: \[ P_s \approx 3Q\left( \sqrt{\frac{4}{5}\frac{E_b}{N_0}} \right) \]

64-QAM: \[ P_s \approx \frac{7}{2} Q\left( \sqrt{\frac{2}{7}\frac{E_b}{N_0}} \right) \]


Summary of Parameters

  • \(E_b\): Energy required to send one bit.
  • \(E_s\): Energy required to send one symbol (\(E_s = E_b \cdot \log_2 M\)).
  • \(N_0\): Noise power density.
  • AWGN Channel: These formulas assume a static environment with only Gaussian noise (no fading).
  • Gray Coding: A technique where adjacent constellation points differ by only one bit to minimize BER.

📚 Also Read About

Frequently Asked Questions

What is a good BER for wireless communication?

For voice transmission, a BER of 10^-3 is often acceptable. For high-speed data services, a BER of 10^-6 or lower is typically required.

How does SNR affect BER?

As SNR increases, the signal becomes clearer relative to the noise, resulting in a significantly lower Bit Error Rate.

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 Papers and Solutions 📋 Exam Pattern 💡 Preparation Tips ❓ FAQs 📥 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] ...

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

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

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

MATLAB code for GMSK

📘 Overview & Theory 🧮 MATLAB Codes for GMSK 🧮 Online Simulator for GMSK 🧮 Simulation Results for GMSK 📚 Further Reading GMSK Modulation and Demodulation in MATLAB: A Complete Guide Gaussian Minimum Shift Keying (GMSK) is a continuous-phase frequency shift keying modulation scheme. It is widely used in GSM (Global System for Mobile Communications) because of its excellent spectral efficiency and constant envelope properties. This MATLAB implementation covers the full signal chain, from Gaussian filtering to noiseless demodulation.   Copy the MATLAB code from here  % The code is developed by SalimWireless.com clc; clear; close all; % Parameters samples_per_bit = 36; bit_duration = 1; num_bits = 20; sample_interval = bit_duration / samples_per_bit; time_vector = 0:sample_interval:(num_bits * bit_duration); time_vector(end) = []; % Generate and modulate binary data binary_da...