Skip to main content

MATLAB Code for BER performance of QPSK with BPSK, 4-QAM, 16-QAM, 64-QAM, 256-QAM, etc


 

QPSK offers double the data rate of BPSK while maintaining a similar bit error rate at low SNR when Gray coding is used. It shares spectral efficiency with 4-QAM and can outperform 4-QAM or 16-QAM in very noisy channels. QPSK is widely used in practical wireless systems, often alongside QAM in adaptive modulation schemes [Read more...]


 

MATLAB Code

Copy the MATLAB Code from here


% The code is written by SalimWireless.Com 

clear all; close all; clc;

% Set parameters
EbNo_dB = -4:1:14; % Standard range for BER plots
EbNo_lin = 10.^(EbNo_dB/10);
qam_orders = [16, 64, 256]; % Higher order QAM

figure('Color', 'w');

% 1. Plot BPSK (Theoretical)
% Formula: Pb = Q(sqrt(2*Eb/No))
ber_bpsk = 0.5 * erfc(sqrt(EbNo_lin)); 
semilogy(EbNo_dB, ber_bpsk, 'k-','LineWidth', 2, 'DisplayName', 'BPSK & QPSK');
hold on;

% 2. Plot QPSK (Theoretical)
% Note: BER for QPSK is the same as BPSK when using Gray Coding
% We already plotted it above, but let's use berawgn to verify 4-QAM
ber_4qam = berawgn(EbNo_dB, 'qam', 4);
semilogy(EbNo_dB, ber_4qam, 'ko', 'DisplayName', '4-QAM (MATLAB)');

% 3. Loop through higher QAM orders using MATLAB's built-in berawgn
% These functions account for Gray coding and convert Eb/No correctly
colors = ['r', 'g', 'b'];
i = 1;
for qam_order = qam_orders
    ber_qam = berawgn(EbNo_dB, 'qam', qam_order);
    semilogy(EbNo_dB, ber_qam, [colors(i) 'o-'], 'LineWidth', 1.5, ...
        'DisplayName', sprintf('%d-QAM', qam_order));
    i = i + 1;
end

% Formatting the Plot
grid on;
box on;
xlabel('E_b/N_0 (dB)');
ylabel('Bit Error Rate (BER)');
title('Theoretical BER vs E_b/N_0 for Various Modulations');
legend('Location', 'southwest');
axis([min(EbNo_dB) max(EbNo_dB) 1e-6 1]);

% Add a note about Gray Coding
text(5, 1e-1, 'Assumes AWGN & Gray Coding', 'FontSize', 10, 'FontWeight', 'bold');

 Output



Are QPSK and 4-PSK same?

QPSK (Quadrature Phase Shift Keying) and 4-PSK (4-Phase Shift Keying) are related but not exactly the same.

    QPSK (Quadrature Phase Shift Keying): In QPSK, each symbol represents 2 bits of data. It modulates the carrier signal by changing its phase with four possible values (0°, 90°, 180°, 270°) corresponding to four different states. These four states can be represented in a constellation diagram with points at (1,1), (-1,1), (-1,-1), and (1,-1). Each symbol represents a combination of two bits, where one pair of bits represents the in-phase component and the other pair represents the quadrature component.

    4-PSK (4-Phase Shift Keying): 4-PSK is a more general term that refers to any Phase Shift Keying modulation with 4 different phase shifts. This could include QPSK as a specific case. However, 4-PSK might also refer to modulation schemes where each symbol represents only one bit of data, unlike QPSK where each symbol represents 2 bits. In a 4-PSK constellation, there are still four points, but they might not correspond to the same bit combinations as in QPSK.

So, while QPSK is a specific form of 4-PSK, not all 4-PSK schemes are QPSK. The distinction lies in how many bits each symbol represents and how the phase shifts are utilized.

 

Further Reading



Contact Us

Name

Email *

Message *

Popular Posts

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

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

PSD Calculation with FFT: MATLAB Tutorial for Signal Analysis

  Implementation Steps 1. FFT Computes the Frequency Content of a Signal FFT converts a time-domain signal to the frequency domain. If: The signal is sampled at rate $f_s$ You compute an $N_{\text{FFT}}$-point FFT Then each FFT bin corresponds to a frequency resolution of: $$\Delta f = \frac{f_s}{N_{\text{FFT}}}$$ So the FFT gives you accurate frequency content, assuming the signal is stationary and adequately sampled (Nyquist criterion met).  2. Magnitude Squared Gives Power (Not Amplitude) $$P[k] = |X[k]|^2$$ This gives power at each frequency bin, not just amplitude. It represents how much energy is present at each frequency. It's a key step for PSD.  3. Normalization Makes the PSD Physically Meaningful The equation: $$\text{PSD}[k] = \frac{|X[k]|^2}{N_{\text{FFT}} \cdot f_s \cdot U}$$ is derived from first principles and ensures that the u...

MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSK, BPSK (with Simulation)

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

MATLAB Code for ASK, FSK, and PSK (with Online Simulator)

MATLAB Code for ASK, FSK, and PSK Comprehensive implementation of digital modulation and demodulation techniques with simulation results. 📘 Theory 📡 ASK Code 📶 FSK Code 🎚️ PSK Code 🕹️ Simulator 📚 Further Reading Amplitude Shift Frequency Shift Phase Shift Live Simulator ASK, FSK & PSK HomePage MATLAB Code MATLAB Code for ASK Modulation and Demodulation COPY % The code is written by SalimWireless.Com clc; clear all; close all; % Parameters Tb = 1; fc = 10; N_bits = 10; Fs = 100 * fc; Ts = 1/Fs; samples_per_bit = Fs * Tb; rng(10); binar...

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

Theoretical BER vs SNR for BPSK

Theoretical Bit Error Rate (BER) vs Signal-to-Noise Ratio (SNR) for BPSK in AWGN Channel Let’s simplify the explanation for the theoretical Bit Error Rate (BER) versus Signal-to-Noise Ratio (SNR) for Binary Phase Shift Keying (BPSK) in an Additive White Gaussian Noise (AWGN) channel. Key Points Fig. 1: Constellation Diagrams of BASK, BFSK, and BPSK [↗] BPSK Modulation Transmits one of two signals: +√Eb or −√Eb , where Eb is the energy per bit. These signals represent binary 0 and 1 . AWGN Channel The channel adds Gaussian noise with zero mean and variance N₀/2 (where N₀ is the noise power spectral density). Receiver Decision The receiver decides if the received signal is closer to +√Eb (for bit 0) or −√Eb (for bit 1) . Bit Error Rat...