Skip to main content
Home Wireless Communication Modulation MATLAB Beamforming Project Ideas MIMO Filters Computer Networks

MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ...


 

MATLAB Script for BER vs. SNR for M-QAM, M-PSK, QPSk, BPSK


Output



If M>8, the distance between constellation points is short, and a higher Eb/No (SNR per Bit) ratio is required to reach the desired BER. Although the mapping from the data bits is arbitrary, some data bits are typically used. Every constellation point in the M-PSK constellation has two neighbors, each with an equal chance of making an error. As there are four bits per symbol, BER assumes a one-bit error for every mistake in a character. The demodulator in PSK must be able to calculate the received sinusoid's phase about some reference phase. While using the same bandwidths as ASK, PSK is less prone to errors than ASK. Also, using bandwidth with a significant data rate is more effective.

In the above figure, it is clear that PSK is more robust than QAM in the context of noise resilience. QAM modulations, including 16-QAM, are sensitive to both amplitude and phase errors. As you increase the number of constellation points (e.g., from 16-QAM to 8-PSK), the signal becomes more susceptible to amplitude and phase noise. In contrast, PSK modulations primarily rely on phase information and may be less sensitive to amplitude variations. This can make 8-PSK more robust in this scenario. 

QAM schemes require a higher SNR to achieve the same error rates as PSK schemes with the same number of constellation points. This means that 16-QAM may require a higher SNR than 8-PSK to achieve a satisfactory bit error rate (BER) or symbol error rate (SER). In practical communication systems, achieving the necessary SNR can be challenging, especially in noisy or fading channels.

MATLAB Code for BER vs SNR for m-ary QAM

clc;
clear all;
close all;


% Set parameters
snr_dB = -20:2:20; % SNR values in dB
qam_orders = [4, 16, 64, 256]; % QAM modulation orders

% Loop through each QAM order
for qam_order = qam_orders
% Calculate theoretical BER using berawgn
ber = berawgn(snr_dB, 'qam', qam_order);

% Plot the results
semilogy(snr_dB, ber, 'o-', 'DisplayName', sprintf('%d-QAM', qam_order));
hold on;
end

% Add labels and legend
title('BER vs SNR for Variable QAM');
xlabel('SNR (dB)');
ylabel('Bit Error Rate (BER)');
grid on;
legend('Location', 'best');

Output

 

Fig: BER vs SNR graph for Various QAM
 

Copy the aforementioned MATLAB Code from Here

 

 

MATLAB Code for BER vs SNR for m-ary PSK

clc;
clear all;
close all;

% Parameters
num_symbols = 1e5; % Number of symbols
snr_db = 0:2:20; % Range of SNR values in dB

% PSK orders to be tested
psk_orders = [2, 4, 8, 16, 32];

% Initialize BER arrays
ber_results = zeros(length(psk_orders), length(snr_db));

% BER calculation for each PSK order and SNR value
for i = 1:length(psk_orders)
psk_order = psk_orders(i);

for j = 1:length(snr_db)
% Generate random symbols
data_symbols = randi([0, psk_order-1], 1, num_symbols);

% Modulate symbols to generate signal
modulated_signal = pskmod(data_symbols, psk_order);

% Add AWGN to the signal
snr_linear = 10^(snr_db(j)/10);
received_signal = awgn(modulated_signal, snr_db(j), 'measured');

% Demodulate received signal
demodulated_symbols = pskdemod(received_signal, psk_order);

% Calculate BER
ber_results(i, j) = sum(data_symbols ~= demodulated_symbols) / num_symbols;
end
end

% Plot BER vs. SNR
figure;
semilogy(snr_db, ber_results(1, :), 'o-', 'DisplayName', 'BPSK');
hold on;

for i = 2:length(psk_orders)
semilogy(snr_db, ber_results(i, :), 'o-', 'DisplayName', sprintf('%d-PSK', psk_orders(i)));
end

title('BER vs. SNR for Various PSK Schemes');
xlabel('SNR (dB)');
ylabel('Bit Error Rate (BER)');
legend('Location', 'best');
grid on;
hold off;

Output

 
Fig: BER vs SNR graph for various PSK
 

Copy the above code from here



Read more about

People are good at skipping over material they already know!

View Related Topics to







Admin & Author: Salim

profile

  Website: www.salimwireless.com
  Interests: Signal Processing, Telecommunication, 5G Technology, Present & Future Wireless Technologies, Digital Signal Processing, Computer Networks, Millimeter Wave Band Channel, Web Development
  Seeking an opportunity in the Teaching or Electronics & Telecommunication domains.
  Possess M.Tech in Electronic Communication Systems.


Contact Us

Name

Email *

Message *

Popular Posts

UGC NET Electronic Science Previous Year Question Papers

Home / Engineering & Other Exams / UGC NET 2022: Previous Year Question Papers ...   NET | GATE | ESE | UGC-NET (Electronics Science, Subject code: 88 ) UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [December 2023] UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [June 2023] UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [December 2022]  UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [June 2022]   UGC Net Electronic Science Questions Paper With Answer Key Download Pdf [December 2021] UGC Net Electronic Science Questions With Answer Key Download Pdf [June 2020] UGC Net Electronic Science Questions With Answer Key Download Pdf [December 2019] UGC Net Electronic Science Questions With Answer Key Download Pdf [June 2019] UGC Net Electronic Science Questions With Answer Key Download Pdf [December 2018] UGC Net Electronic Science Questions With Answer Key Download Pdf [July 2018] UG

Comparisons among ASK, PSK, and FSK | And the definitions of each

Modulation ASK, FSK & PSK Constellation MATLAB Simulink MATLAB Code Comparisons among ASK, PSK, and FSK    Comparisons among ASK, PSK, and FSK ASK or OFF ON Keying Ask is a simple (less complex) Digital Modulation Scheme where we vary the modulation signal's amplitude or voltage by the message signal's amplitude or voltage. We select two levels (two different voltage levels) for transmitting modulated message signals for the exam. And for example, we mapped the signal as two-level  "+5 Volt"  (which is the upper level) and another level,  "0 Volt,"  which is considered as the lower level. Whenever we need to transmit binary bit  "1,"  then the transmitter transmits a signal of  "+5 Volts,"  and when we need to send bit  "0,"  then it transmits no power. But the receiver is intelligent enough to deflect whether you've sent binary bit  "1"  or  "0

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...

Modulation Constellation Diagrams BER vs. SNR BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ... 1. What is Bit Error Rate (BER)? The abbreviation BER stands for bit error rate, which indicates how many corrupted bits are received (after the demodulation process) compared to the total number of bits sent in a communication process. It is defined as,  In mathematics, BER = (number of bits received in error / total number of transmitted bits)  On the other hand, SNR refers to the signal-to-noise power ratio. For ease of calculation, we commonly convert it to dB or decibels.   2. What is Signal to Noise Ratio (SNR)? SNR = signal power/noise power (SNR is a ratio of signal power to noise power) SNR (in dB) = 10*log(signal power / noise power) [base 10] For instance, the SNR for a given communication system is 3dB. So, SNR (in ratio) = 10^{SNR (in dB) / 10} = 2 Therefore, in this instance, the signal power is twice as

Constellation Diagrams of ASK, PSK, and FSK

Modulation ASK, FSK & PSK Constellation This article will primarily discuss constellation diagrams, as well as what constellation diagrams tell us and the significance of constellation diagrams. Constellation diagrams can often demonstrate how the amplitude and phase of signals or symbols differ. These two characteristics lessen the interference between two signals or symbols. Figure 1: Constellation diagrams of ASK, PSK, and FSK The constellation points for ASK, PSK, and FSK [↗] are located in a different pattern, and the distances between the constellation points vary. According to the above diagram, the distance between ASK constellation points is (√Eb -0) = √Eb (where Eb stands for energy per bit). From the above figure, you can also see the distances between constellation points for PSK and FSK are 2√Eb and √(2Eb), respectively. In a constellation diagram, if the distance between signaling points is less, then the probability

Simulation of ASK, FSK, and PSK using MATLAB Simulink

ASK, FSK & PSK HomePage MATLAB Simulation Simulation of Amplitude Shift Keying (ASK) using MATLAB Simulink      In Simulink, we pick different components/elements from MATLAB Simulink Library. Then we connect the components and perform a particular operation.  Result A sine wave source, a pulse generator, a product block, a mux, and a scope are shown in the diagram above. The pulse generator generates the '1' and '0' bit sequences. Sine wave sources produce a specific amplitude and frequency. The scope displays the modulated signal as well as the original bit sequence created by the pulse generator. Mux is a tool for displaying both modulated and unmodulated signals at the same time. The result section shows that binary '1' is modulated by a certain sine wave amplitude of 1 Volt, and binary '0' is modulated by zero amplitude. Simulation of Frequency Shift Keying (FSK) using MATLAB Simulink   Result The diagram above shows t

MATLAB Code for ASK, FSK, and PSK

ASK, FSK & PSK HomePage MATLAB Code MATLAB Code for Amplitude Shift Keying (ASK) % The code is written by SalimWireless.Com % Clear previous data and plots clc; clear all; close all; % Parameters Tb = 1; % Bit duration fc = 10; % Carrier frequency N = 10; % Number of bits % Generate carrier signal t = 0:Tb/100:1; carrier_signal = sqrt(2/Tb) * sin(2*pi*fc*t); % Generate message signal rng(10); % Set random seed for reproducibility binary_data = rand(1, N); % Generate random binary data t_start = 0; t_end = Tb; for i = 1:N t = [t_start:0.01:t_end]; % Generate message signal if binary_data(i) > 0.5 binary_data(i) = 1; message_signal = ones(1, length(t)); else binary_data(i) = 0; message_signal = zeros(1, length(t)); end % Store message signal message(i,:) = message_signal; % Modulate message with carrier