Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Assignment - 2

ECN - 519 Wireless Communication Systems

Amitesh Magar
19122002
27 August 2022

Assignment - 2 1

Question - 1
Code:
clc;
clear all;
close all;

%SNR and other variables


SNR_dB = -5:2:15;
SNR = 10.^(SNR_dB .* 0.1);
bit_length = 10^6;

stream = randi([0 1], 1, bit_length);


BPSK = 2*stream - 1;

BER_Sim = zeros(1, length(SNR_dB));

%BPSK over AWGN Channel


for i=1:length(SNR_dB)
noise = (sqrt(1 / SNR(i))) .* (randn(1, bit_length) +
1i*randn(1, bit_length));
res = BPSK + noise;

check = 2 * (real(res) > 0) - 1;


err =0;
for j = 1:bit_length
if check(j) ~= BPSK(j)
err = err +1;
end
end

BER_Sim(i) = err/bit_length;
end

figure();
semilogy(SNR_dB, BER_Sim, 'r-', 'linewidth', 1.5);
xlabel("SNR in dB");
ylabel("BER")
title("BER vs SNR in a BPSK over AWGN Channel");

Plot:

Assignment - 2 2


Question - 2
Code:
clc;
clear all;
close all;

%SNR variable
SNR_dB = -5:2:15;
SNR = 10.^(SNR_dB .* 0.1);
bit_length = 10^6;

stream = randi([0 1], 1, bit_length);


BPSK = 2*stream - 1;

BER_Sim = zeros(1, length(SNR_dB));

%BPSK over AWGN Channel


for i=1:length(SNR_dB)
noise = (sqrt(1 / SNR(i))) .* (randn(1, bit_length) +
1i*randn(1, bit_length));

Assignment - 2 3


res = BPSK + noise;

check = 2 * (real(res) > 0) - 1;


err =0;
for j = 1:bit_length
if check(j) ~= BPSK(j)
err = err +1;
end
end

BER_Sim(i) = err/bit_length;
end

% BER Theoretical result


BER_Theo = qfunc(sqrt(SNR));

figure();
semilogy(SNR_dB, BER_Sim, 'r-', 'linewidth', 1.5);
hold on;
semilogy(SNR_dB, BER_Theo, 'b-<', 'linewidth', 0.5);
legend('Sim', 'Theo');
xlabel("SNR in dB");
ylabel("BER")
title("BER vs SNR in a BPSK over AWGN Channel");

Plots:

Assignment - 2 4

Assignment - 2 5

Numericals

Assignment - 2 6

Assignment - 2 7

Assignment - 2 8
Assignment - 2 9

You might also like