Вы находитесь на странице: 1из 19

EXPERIMENT NO.

OBJECTIVE - To generate an AWGN channel .


THEORY - An AWGN channel adds white Gaussian noise to the signal that
passes through it. AWGN noise is additive in nature and it follows Gaussian
distribution with zero mean and variance ( (sigma)^2). In an AWGN channel ,
gain of channel always remain constant and noise add to the signal passes
through it and at the output of a channel , received signal is given by
Y(received signal) = X(tx signal) + AWGN
MALAB CODE close all;
clear all;
clc;
%%%%message signal%%%%%
msg=rand(1,10)>0.5;
subplot(3,1,1);
stem(msg);
xlabel('n');
ylabel('amplitude');
title('message signal');
%%%AWGN NOISE%%%%%%%%
s_n_r=5;
bit_energy=7;
a_w_g_n = sqrt(bit_energy/2*s_n_r)*randn(1,length(msg));
subplot(3,1,2);
stem(a_w_g_n);
xlabel('n');
ylabel('amplitude');
title('awgn noise');
%%%%received signal from AWGN channel%%%%%%
received_signal=msg+a_w_g_n;
subplot(3,1,3);
stem(received_signal);
xlabel('n');
ylabel('amplitude');
title('received signal');

OUTPUT -

EXPERIMENT NO. 2

OBJECTIVE - To generate a Rayleigh channel .


THEORY Rayleigh channel is useful model of real-world phenomena in
wireless communications. This phenomena include multipath scattering effects,
time dispersion, and Doppler shifts that arise from relative motion between the
transmitter and receiver. Since a multipath channel reflects signals at multiple
places, a transmitted signal travels to the receiver along several paths that may
have different lengths and hence different associated time delays. Fading occurs
when signals traveling along different paths interfere with each other. Gain of
the multipath channel follows the Rayleigh distribution and so , multipath
channel named as Rayleigh channel when there is no Line of Sight between
transmitter and receiver .
P(r) = x/(p)^2*exp(-x^2/2*(p) ^2) , 0<=x<=infinity
Where (p)^2 is time average power of received signal
Y(received signal) = h.*X (tx signal) + AWGN
Where h is rayleigh channel gain

MATLAB CODE close all;


clear all;
clc;
%%%%%%message signal%%%%%%%%
msg_signal=rand(1,10)>0.5;
subplot(4,1,1);
stem(msg_signal);
xlabel('n');
ylabel('amplitude');
title('message signal');
%%%%%%rayleigh noise%%%%%%%%
R_N=sqrt(randn(1,length(msg_signal)).^2+randn(1,length(msg_sig
nal)).^2);
subplot(4,1,2);
stem(R_N);

xlabel('n');
ylabel('amplitude');
title('rayleigh noise');
%%%%%%AWGN noise%%%%%%%%
s_n_r=5;
bit_energy=7;
a_w_g_n =sqrt(bit_energy/2*s_n_r)*randn(1,length(msg_signal));
subplot(4,1,3);
stem(a_w_g_n);
xlabel('n');
ylabel('amplitude');
title('awgn noise');
%%%%%%signal through rayleigh channel+AWGN%%%%%%%
received_signal=msg_signal.*R_N+a_w_g_n;
subplot(4,1,4);
stem(received_signal);
xlabel('n');
ylabel('amplitude');
title('received signal');

OUTPUT

EXPERIMENT NO. 3

OBJECTIVE - Effect of an AWGN channel on BPSK .


THEORY - A BPSK signal in its general form is given as below
S(t) = sqrt(2*Eb/Tb)*cos(2*pi*fc*t+q(t)) , for binary =1
S(t) =-1* sqrt(2*Eb/Tb)*cos(2*pi*fc*t+q(t)),for binary =0
Where Eb is bit energy and Tb is bit period and fc is the carrier frequency and
probability of error for BPSK is Q(sqrt(2*Eb/No)) . In this experiment we will
see the effect of AWGN noise or channel on BPSK signal and plot the graph for
BER for different values of SNR.
MATLAB CODE
clear all;
close all;
clc;
msg_input=rand(1,100000)>0.5;
msg_input
length_msg=length(msg_input);
for i =1:length_msg
x=msg_input(i);
if(x==0)
y(i)=-1;
else
y(i)=1;
end;
end;
y
%scatterplot(y);
%%%%AWGN noise for different values of snr%%%%%%%
snr = -10:1:10;
length_snr=length(snr);
for q =1:length_snr
received_input= awgn(y,snr(q),'measured','db');
received_input
%scatterplot(received_input);
%%%%%demodulation%%%%%%%%%
length_received=length(received_input);

for j =1:length_received
w=received_input(j);
if(w<0)
decoded(j)=0;
else
decoded(j)=1;
end;
end;
decoded_mat(q,:)=[decoded];
end;
decoded_mat
%%%%%%calculation of BER%%%%%%%
for k =1:length_snr
m=decoded_mat(k,:);
err=0;
for n=1:length(m)
o=m(n);
if(o~=msg_input(n))
err=err+1;
end;
end;
received_berr(k,:)=err/length(msg_input);
end;
received_berr
semilogy(snr,received_berr,'*');
xlabel('snr_db');
ylabel(' avg. probability of error');
title('BER V/S SNR');

CONCLUSION - As the value of SNR increases , the probability of bit


error rate decreases . It is clearly shown in diagram -

OUTPUT -

EXPERIMENT NO. 4

OBJECTIVE - Effect of Rayleigh channel on BPSK with an AWGN .


THEORY - A BPSK signal in its general form is given as below
S(t) = sqrt(2*Eb/Tb)*cos(2*pi*fc*t+q(t)) , for binary =1
S(t) =-1* sqrt(2*Eb/Tb)*cos(2*pi*fc*t+q(t)),for binary =0
Where Eb is bit energy and Tb is bit period and fc is the carrier frequency and
probability of error for BPSK is Q(sqrt(2*Eb/No)) . In this experiment we will
see the effect of Rayleigh channel and AWGN noise or channel on BPSK signal
and plot the graph for BER for different values of SNR.

MATLAB CODE
clear all;
close all;
clc;
msg_input=rand(1,100000)>0.5;
%msg_input
length_msg=length(msg_input);
for i =1:length_msg
x=msg_input(i);
if(x==0)
y(i)=-1;
else
y(i)=1;
end;
end;
y
%scatterplot(y)
%%%%%rayleigh channel%%%%%%%%
chan=rayleighchan;
y1=filter(chan,y);
%%%%AWGN for different values of SNR%%%%%%%%%%
snr = -10:1:10;
length_snr=length(snr);
for q =1:length_snr
received_input= awgn(y1,snr(q),'measured','db');
%received_input
%scatterplot(received_input)

%%%%%%demodulation%%%%%%%%%
length_received=length(received_input);
for j =1:length_received
w=received_input(j);
if(w<0)
decoded(j)=0;
else
decoded(j)=1;
end;
end;
decoded_mat(q,:)=[decoded];
end;
%decoded_mat
%%%%%%%%calculation of BER%%%%%%%%
for k =1:length_snr
m=decoded_mat(k,:);
err=0;
for n=1:length(m)
o=m(n);
if(o~=msg_input(n))
err=err+1;
end;
end;
received_berr(k,:)=err/length(msg_input);
end;
received_berr
semilogy(snr,received_berr,'*');
xlabel('snr_db');
ylabel('average probability of error');
title('SNR V/S BER');

10

OUTPUT -

11

EXPERIMENT NO. 5

OBJECTIVE - Effect of an AWGN channel on QPSK.


THEORY - A QPSK modulation scheme has double data rate as compared to
BPSK modulation scheme as two bits are transmitted per symbol , so QPSK
modulation scheme is more bandwidth efficient as compared to BPSK and a
QPSK signal is given as
S(t) = sqrt(2*Es/Ts)*cos(2*pi*fc*t +(i-1)*pi/2) , i =1,2,3,4
If we use two bits per symbol , then there are possible phases of carrier signal .
In this experiment , we will see the performance of QPSK modulation signal in
AWGN channel for different values of SNR.
MATLAB CODE
close all;
clear all;
clc;
x=rand(1,100000)>0.5
xodd=[];
for i = 1:length(x)/2
xo=x(2*i-1);
xodd=[xodd xo];
end;
xeven=[];
%xodd
for i=2:length(x)/2+1
xe=x(2*i-2);
xeven=[xeven xe];
end;
%xodd
%xeven
xodd_m=[];
xodd_length=length(xodd);
for i = 1:xodd_length
a=xodd(i);
if(a==1)
a1=1;

12

else
a1=-1;
end;
xodd_m=[xodd_m a1];
end;
xodd_m;
xeven_m=[];
xeven_length=length(xeven);
for i = 1:xeven_length
b=xeven(i);
if(b==1)
b1=1;
else
b1=-1;
end;
xeven_m=[xeven_m b1];
end;
xeven_m;
snr = -10:1:10;
length_snr=length(snr);
for q =1:length_snr
received_input= awgn(xeven_m,snr(q),'measured','db');
received_input
%scatterplot(received_input)
length_received=length(received_input);
for j =1:length_received
w=received_input(j);
if(w<0)
decoded(j)=0;
else
decoded(j)=1;
end;
end;
decoded_mat(q,:)=[decoded];
end;
decoded_mat
for k =1:length_snr
m=decoded_mat(k,:);
err=0;
for n=1:length(m)
o=m(n);
if(o~=xeven(n))
err=err+1;
end;
end;
received_berr_even(k,:)=err/length(xeven);
end;

13

snr = -10:1:10;
length_snr=length(snr);
for q =1:length_snr
received_input= awgn(xodd_m,snr(q),'measured','db');
received_input
%scatterplot(received_input)
length_received=length(received_input);
for j =1:length_received
w=received_input(j);
if(w<0)
decoded(j)=0;
else
decoded(j)=1;
end;
end;
decoded_mat(q,:)=[decoded];
end;
decoded_mat
for k =1:length_snr
m=decoded_mat(k,:);
err=0;
for n=1:length(m)
o=m(n);
if(o~=xodd(n))
err=err+1;
end;
end;
received_berr_odd(k,:)=err/length(xodd);
end;
received_berr_f=[];
for i=1:length(snr)
err1=received_berr_odd(i,:)+received_berr_even(i,:);
received_berr_f=[received_berr_f,err1];
end;
semilogy(snr,received_berr_f,'*');
xlabel('snr_db');
ylabel('average probability of error');
title('SNR V/S BER');

CONCLUSION - QPSK modulation performs better than BPSK signal in an


AWGN channel and as the value of SNR increases , BER decreases.

14

OUTPUT

15

EXPERIMENT NO.6

OBJECTIVE - Effect of Rayleigh channel on QPSK with AWGN .


THEORY - A QPSK modulation scheme has double data rate as compared to
BPSK modulation scheme as two bits are transmitted per symbol , so QPSK
modulation scheme is more bandwidth efficient as compared to BPSK and a
QPSK signal is given as
S(t) = sqrt(2*Es/Ts)*cos(2*pi*fc*t +(i-1)*pi/2) , i =1,2,3,4
If we use two bits per symbol , then there are possible phases of carrier signal .
In this experiment , we will see the performance of QPSK modulation signal in
Rayleigh channel along with AWGN for different values of SNR.
MATLAB CODE
close all;
clear all;
clc;
x=rand(1,100000)>0.5
xodd=[];
for i = 1:length(x)/2
xo=x(2*i-1);
xodd=[xodd xo];
end;
xeven=[];
%xodd
for i=2:length(x)/2+1
xe=x(2*i-2);
xeven=[xeven xe];
end;
%xodd
%xeven
xodd_m=[];
xodd_length=length(xodd);
for i = 1:xodd_length
a=xodd(i);
if(a==1)
a1=1;

16

else
a1=-1;
end;
xodd_m=[xodd_m a1];
end;
xodd_m;
xeven_m=[];
xeven_length=length(xeven);
for i = 1:xeven_length
b=xeven(i);
if(b==1)
b1=1;
else
b1=-1;
end;
xeven_m=[xeven_m b1];
end;
xeven_m;
chan=rayleighchan;
xeven_m1=filter(chan,xeven_m);
snr = -10:1:10;
length_snr=length(snr);
for q =1:length_snr
received_input= awgn(xeven_m1,snr(q),'measured','db');
received_input
%scatterplot(received_input)
length_received=length(received_input);
for j =1:length_received
w=received_input(j);
if(w<0)
decoded(j)=0;
else
decoded(j)=1;
end;
end;
decoded_mat(q,:)=[decoded];
end;
decoded_mat
for k =1:length_snr
m=decoded_mat(k,:);
err=0;

17

for n=1:length(m)
o=m(n);
if(o~=xeven(n))
err=err+1;
end;
end;
received_berr_even(k,:)=err/length(xeven);
end;
chan=rayleighchan;
xodd_m1=filter(chan,xodd_m);
snr = -10:1:10;
length_snr=length(snr);
for q =1:length_snr
received_input= awgn(xodd_m1,snr(q),'measured','db');
received_input
%scatterplot(received_input)
length_received=length(received_input);
for j =1:length_received
w=received_input(j);
if(w<0)
decoded(j)=0;
else
decoded(j)=1;
end;
end;
decoded_mat(q,:)=[decoded];
end;
decoded_mat
for k =1:length_snr
m=decoded_mat(k,:);
err=0;
for n=1:length(m)
o=m(n);
if(o~=xodd(n))
err=err+1;
end;
end;
received_berr_odd(k,:)=err/length(xodd);
end;
received_berr_f=[];
for i=1:length(snr)
err1=received_berr_odd(i,:)+received_berr_even(i,:);
received_berr_f=[received_berr_f,err1];
end;
semilogy(snr,received_berr_f,'*');
xlabel('snr_db');
ylabel('average probability of error');
title('SNR V/S BER');

18

OUTPUT

19

Вам также может понравиться