Skip to main content

How to Plot BER vs SNR Graph in MATLAB


MATLAB Code

clc;
clear all;
close all;
snr = 0:2:16;
for i = 1:length(snr)
rng(10)
M = 8; % M = 2, 4, 8, 16, 32, etc.
N_Bits = 2520;
Phase = 0;
data_info_bit = randi([0,1],N_Bits,1);
data_temp = bi2de(reshape(data_info_bit,N_Bits/log2(M),log2(M)));
modData = pskmod(data_temp,M,Phase);



rxData2 = awgn(modData, snr(i));

Received_info = pskdemod(rxData2,M,Phase);

Received_info2 = de2bi(Received_info);
Received_info2 = [Received_info2(:,1)' Received_info2(:,2)' Received_info2(:,3)']


            




errors(i) = [(sum(xor(data_info_bit', Received_info2)))]



err_ber_fram(i) = errors(i)/length(Received_info2)


end

semilogy(snr, err_ber_fram,'-*','LineWidth',2);
title(sprintf('8-PSK'))
ylabel('BER'); xlabel('SNR in dB');grid on

 Output

 
 

 Copy the MATLAB Code from here

 

 

 

Read more about

 [1] MATLAB Code for BER vs SNR for m-ary QAM, m-ary PSK, QPSK, BPSK ...

[2] MATLAB Code for BER vs SNR for QAM 

[3] MATLAB Code for BER vs SNR for ASK, FSK, and PSK 

More ...

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *