You are on page 1of 32

1

DIGITAL COMMUNICATION LAB










Submitted By
Kodamanchili Rahul
60/EC/09



2

CONTENTS

S. No Experiment Teachers Sign
1
To evaluate the performance and compute the
SNR of Uniform and -law companding
quantizer

2
To evaluate the performance of DPCM and DM
schemes

3 To perform M-ary ASK/FSK/PSK Modulation
4
Generate four symbols with the given
probabilities a = 0.4, b = 0.3, c = 0.2, d = 0.1. Do
Huffman Coding and decoding of the signal and
compute the data rate compression

5
Generate a random sequence of 0s and 1s.
Generate the linear block code, add noise and
perform decoding

6
To sample a signal of given amplitude and
frequency using Flat top and natural sampling
and reconstruct it back at the receiver

7
Convert a sine wave to PCM data stream using
PCM encoder and reconstruct it back at the
receiver using PCM decoder

8
To observe the effect of limited bandwidth on
transmission of digital data

9
To evaluate performance of M-ary
ASK/PSF/FSK/QPSK/QAM signal and evaluate
its performance in the presence of Additive
White Gaussian Noise

3
EXPERIMENT 1
Aim: - To evaluate the performance and compute the SNR of Uniform and -law companding
quantizer

[I] Uniform Quantizer

MATLAB Code: -

clear all;
clc;
N=2000;
a=rand(1,N)-0.5;
b=a;

for L=3:80
Linv=1/L;
for n=1:N
c(n)=0;
d(n)=0;
for j=0:L-1
if ( ( a(n)>(j*Linv-0.5) ) & ( a(n)<((j+1)*Linv-0.5) ) )
b(n)= ((j*Linv-0.5)+((j+1)*Linv-0.5))/2;
end;
end;
end;

for n=1:N
c(n)=(b(n)-a(n))*(b(n)-a(n));
d(n)=a(n)*a(n);
end;
v(L-2)=mean(c);
e(L-2)=mean(d);
snr(L-2)=e(L-2)/v(L-2);
end;
plot(3:L,snr,'k')
xlabel('Quantisation Levels---->');
ylabel('SNR---->');
title('Uniform Quantizer');







4

Output: -

0 10 20 30 40 50 60 70 80
0
1000
2000
3000
4000
5000
6000
7000
Quantisation Levels---->
S
N
R
-
-
-
-
>
Uniform Quantizer

[II] -Law Companding Quantizer

MATLAB Code: -


clear all;
clc;
A = 10000; %Number of values
Max =256; %Maximum value with minimum = 0
DATA = Max*rand(1,A);
Power=0;
for i=1:length(DATA)
Power = Power + DATA(i).^2;
end
Power;
u=1;
for i=1:length(DATA)
b(i)=Max*((log10((DATA(i)/Max)*u+1)) / (log10(1+u)));
end
T = 100;%Number of maximum levels
N = zeros(1,T);
for z = 2:T
L = z;%Number of levels
d = zeros(1,length(b));
Diff = zeros(1,length(b));
M = (max(b))/L; %Interval
for i=1:length(b),
j=1;
5
while b(i) > (j*M)
d(i) = d(i) + M;
j = j+1;
end
end
Diff = DATA-d;
Noise = 0;
for i=1:length(Diff)
Noise = Noise + Diff(i).^2;
end
N(z)=Noise;
SNR(z) = Power/N(z);
end
plot(SNR,'k')
xlabel('Number of levels---->');
ylabel('SNR');
title('u Law quantizating');

Output: -
0 10 20 30 40 50 60 70 80 90 100
0
50
100
150
200
250
Number of levels---->
S
N
R
u Law quantizating







6
EXPERIMENT 2
Aim: - To evaluate the performance of DPCM and DM schemes.

[I] DPCM (Differential Pulse Code Modulation)

MATLAB Code: -
%perform DPCM
% 7 level quantizer
clear all;
clc;
N = 100;
X = rand(N,1);
X = X-1/2;
for i = 1:length(X)
if(i>3)
Xp(i) = 0.3*u(i-1)+0.2*u(i-2)+0.5*u(i-3); %Depends upon past 3 values
else
Xp(i) = 0;
end
e(i) = X(i)-Xp(i);
if (e(i)>5/12)
eq(i) = 3/6;
elseif (e(i)>3/12)
eq(i) = 2/6;
elseif (e(i)>1/12)
eq(i) = 1/6;
elseif (e(i)>-1/12)
eq(i) = 0;
elseif (e(i)>-3/12)
eq(i) = -1/6;
elseif (e(i)>-5/12)
eq(i) = -2/6;
else
eq(i) = -3/6;
end
u(i)=eq(i)+Xp(i);
end
plot(1:length(X),X,1:length(u),u)
xlabel('x--->');
ylabel('y--->');
title('DPCM');
figure(2)
stem(e,eq)
xlabel('Vin--->');
ylabel('Vo--->');
title('Transfer Characteristic');
%proceed further
QN = 0;
7
SN = 0;
for i= 1:length(e)
QN = QN + (X(i)-u(i))^2;
SN = SN + u(i)^2;
end
QN = QN/length(QN);
SN = SN/length(SN);
SNR = SN/QN

Outputs: -

SNR = 12.63

8

[II] DM

MATLAB Code: -
%perform DM
% 2 level quantizer
clear all;
clc;
N = 100;
X = sin(0.05*(1:N));
X = X-1/2;

for i = 1:length(X)
if(i>1)
Xp(i) = u(i-1);
else
Xp(i) = 0;
end
e(i) = X(i)-Xp(i);
if (e(i)>0)
eq(i) = 1/9;
else
eq(i) = -1/9;
end
u(i)=eq(i)+Xp(i);
end

plot(1:length(X),X,1:length(u),u)
xlabel('x--->');
ylabel('y--->');
title('DM');
9
figure(2)
stem(e,eq)
xlabel('Vin--->');
ylabel('Vo--->');
title('Transfer Characteristic');

%proceed further
QN = 0;
SN = 0;
for i= 1:length(e)
QN = QN + (X(i)-u(i))^2;
SN = SN + u(i)^2;
end
QN = QN/length(QN);
SN = SN/length(SN);
SNR = SN/QN

Outputs: -

SNR = 122.53
10






11
Experiment 3
Aim: - To perform M-ary ASK/FSK/PSK Modulation

[I] Binary ASK

MATLAB Code: -

clc;
clear all;
X = rand(10,1);
X=X-0.5;
Ai = 5;
fc = 1000;
Tb = 0:.00001:.002;%Bit duration
for i=1:length(X),
if X(i)>0
X(i)=1;
else
X(i)=0;
end;
for(j = 1:length(Tb))
Y(j+(i-1)*length(Tb)) = Ai*X(i)*sin(2*pi*fc*Tb(j));
end;
end;
plot(1:length(Y),Y,'k');
xlabel('Time--->');
ylabel('Amplitude--->');
title('ASK');

Output: -

0 200 400 600 800 1000 1200 1400 1600 1800 2000
-5
-4
-3
-2
-1
0
1
2
3
4
5
Time--->
A
m
p
l
i
t
u
d
e
-
-
-
>
ASK


12
[II] Binary PSK

MATLAB Code: -

clc;
clear all;
X = rand(10,1);
X=X-0.5;
Ai = 5;
fc = 1000;
Tb = 0:.00001:.002;%Bit duration
for i=1:length(X),
if X(i)>0
X(i)=1;
else
X(i)=0;
end;
for(j = 1:length(Tb))
Y(j+(i-1)*length(Tb)) = Ai*sin(2*pi*fc*Tb(j)+X(i)*pi);
end;
end;
plot(1:length(Y),Y,'k');
xlabel('Time--->');
ylabel('Amplitude--->');
title('PSK');
axis([0 2000 -5 5]);


Output: -

0 200 400 600 800 1000 1200 1400 1600 1800 2000
-5
-4
-3
-2
-1
0
1
2
3
4
5
Time--->
A
m
p
l
i
t
u
d
e
-
-
-
>
PSK



13

[III] Binary FSK

MATLAB Code: -

clc;
clear all;
X = rand(10,1);
X=X-0.5;
Ai = 5;
fc = 1000;
Tb = 0:.00001:.002;%Bit duration
for i=1:length(X),
if X(i)>0
X(i)=1;
else
X(i)=0;
end;
for(j = 1:length(Tb))
Y(j+(i-1)*length(Tb)) = Ai*sin(2*pi*(fc+X(i)*fc)*Tb(j));
end;
end;

plot(1:length(Y),Y,'k');
xlabel('Time--->');
ylabel('Amplitude--->');
title('FSK');
axis([0 2001 -5 5]);

Output: -

0 200 400 600 800 1000 1200 1400 1600 1800 2000
-5
-4
-3
-2
-1
0
1
2
3
4
5
Time--->
A
m
p
l
i
t
u
d
e
-
-
-
>
FSK



14

[IV] 4-ary ASK

MATLAB Code: -

clc;
clear all;
n=2;
X = rand(20,1);
X=X-0.5;
Ai = 5;
fc = 1000;
Tb = 0:.00001:.002;%Bit duration/half symbol duration
for i=1:length(X),
if X(i)>0
X(i)=1;
else
X(i)=0;
end;
if(mod(i,2)==0)
for(j = 1:length(Tb))
for(p=1:n)
Y(j+(i-p)*length(Tb)) = Ai*(X(i)+2*X(i-1))*sin(2*pi*fc*Tb(j));
end
end;
end
end;

plot(1:length(Y),Y,'k');
xlabel('Time--->');
ylabel('Amplitude--->');
title('ASK');
axis([0 4003 -16 16]);















15
Output: -
0 500 1000 1500 2000 2500 3000 3500 4000
-15
-10
-5
0
5
10
15
Time--->
A
m
p
l
i
t
u
d
e
-
-
-
>
ASK

[V] 4-ary PSK

MATLAB Code: -

clc;
clear all;
n=2;
X = rand(10,1);
X=X-0.5;
Ai = 5;
fc = 1000;
Tb = 0:.000001:.002;%Bit duration/half symbol duration
for i=1:length(X),
if X(i)>0
X(i)=1;
else
X(i)=0;
end;
if(mod(i,2)==0)
for(j = 1:length(Tb))
for(p=1:n)
Y(j+(i-p)*length(Tb)) = Ai*sin(2*pi*fc*Tb(j)+(((X(i)+2*X(i-1)))*pi/2));
end;
end
end
end;

plot(1:length(Y),Y,'k');
xlabel('Time--->');
ylabel('Amplitude--->');
title('PSK');
axis([0 20003 -6 6]);

16
Output: -
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
x 10
4
-6
-4
-2
0
2
4
6
Time--->
A
m
p
l
i
t
u
d
e
-
-
-
>
PSK

[VI] 4-ary FSK

MATLAB Code: -

clc;
clear all;
clc;
clear all;
n=2;
X = rand(10,1);
X=X-0.5;
Ai = 5;
fc = 1000;
Tb = 0:.000001:.002; %Bit duration/half symbol duration
for i=1:length(X),
if X(i)>0
X(i)=1;
else
X(i)=0;
end;
if(mod(i,2)==0)
for(j = 1:length(Tb))
for(p=1:n)
Y(j+(i-p)*length(Tb)) = Ai*sin(2*pi*(fc+200*(X(i)+2*X(i-1)))*Tb(j));
end
end;
end
end;

plot(1:length(Y),Y,'k');
xlabel('Time--->');
ylabel('Amplitude--->');
title('FSK');
axis([0 20003 -6 6]);
17

Output: -

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
x 10
4
-6
-4
-2
0
2
4
6
Time--->
A
m
p
l
i
t
u
d
e
-
-
-
>
FSK

18
EXPERIMENT 4
Aim: - Generate four symbols with the given probabilities a = 0.4, b = 0.3, c = 0.2, d = 0.1. Do
Huffman Coding and decoding of the signal and compute the data rate compression.


[I] Huffman Encoder

MATLAB Code: -



clc;
clear all;
num=10;
% Probabilities a=0.4, b=0.3, c=0.2, d=0.1

p=[0.4 0.3 0.2 0.1];
H=0;
for i=1:4
H=H-p(i)*log2(p(i));
end
H
X=rand(1,num);
for i=1:num
if(X(i)<0.4)
Sym(2*i)=0;
Sym(2*i-1)=0;
elseif((X(i)<0.7)&&(X(i)>=0.4))
Sym(2*i)=0;
Sym(2*i-1)=1;
elseif((X(i)<0.9)&&(X(i)>=7))
Sym(2*i)=1;
Sym(2*i-1)=0;
elseif (X(i)>0.9)
Sym(2*i)=1;
Sym(2*i-1)=1;
end
end
Sym
j=1;
for i=1:2:2*num
if((Sym(i)==0)&&(Sym(i+1)==0))
Tx(j)=0;
j=j+1;
elseif((Sym(i)==0)&&(Sym(i+1)==1))
Tx(j)=1;
Tx(j+1)=1;
j=j+2;
elseif((Sym(i)==1)&&(Sym(i+1)==0))
Tx(j)=1;

19



Outputs: -

H = 1.8464

Sym = 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0

Tx = 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0

Lbar = 1.9000

Efficiency = 97.1810





















Tx(j+1)=0;
Tx(j+2)=0;
j=j+3;
end
end
Tx
Lbar=1*p(1)+2*p(2)+3*p(3)+3*p(4)
Efficiency=H*100/Lbar

20


[II] Huffman Decoder

MATLAB Code: -


clc;
clear all;
num=10;
% Probabilities a=0.4, b=0.3, c=0.2, d=0.1
j=1;
X=rand(1,num);

for i=1:num
if(X(i)<0.4)
Rx(j)=0;
j=j+1;
elseif((X(i)<0.7)&&(X(i)>=0.4))
Rx(j)=1;
Rx(j+1)=1;
j=j+2;
elseif((X(i)<0.9)&&(X(i)>=0.7))
Rx(j)=1;
Rx(j+1)=0;
Rx(j+2)=1;
j=j+3;
elseif (X(i)>0.9)
Rx(j)=1;
Rx(j+1)=0;
Rx(j+2)=0;
j=j+3;
end
end

j=1;
i=1;
% for i=1:length(Rx)
while(i~=length(Rx)+1)
if(Rx(i)==0)
Sym(j)=0;
Sym(j+1)=0;
j=j+2
i=i+1
elseif(Rx(i)==1)
if((Rx(i+1)==0)&&(Rx(i+2)==1))
Sym(j)=1;
Sym(j+1)=0;
j=j+2
i=i+3
elseif((Rx(i+1)==0)&&(Rx(i+2)==0))
Sym(j)=1;
Sym(j+1)=1;

21


Outputs: -
Rx= 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1


Sym = 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0















j=j+2
i=i+3
elseif(Rx(i+1)==1)
Sym(j)=0;
Sym(j+1)=1;
j=j+2
i=i+2
end
end
end

22
EXPERIMENT 5
Aim: - Generate a random sequence of 0s and 1s. Generate the linear block code, add noise
and perform decoding.


[I] Linear Block Code

MATLAB Code: -








clear all;
clc;
a=rand(1,4);
for i=1:length(a)
if(a(i)<0.5)
DATA(i)=0;
else
DATA(i)=1;
end
end
G = [1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1];
H = [1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1];
DATA
C = DATA*G;
C=mod(C,2)% Received correct code
R = C*H';
R = mod(R,2)
%Introduction of error
for i=1:length(C)
n = rand(1);
if n >= 0.5
n=1;
else n=0;
end
S(i) = mod((C(i) + n),2);
end
S %Received erronous code
E = S*H';
E = mod(E,2)%Error detection

23

Outputs: -

DATA =
0 1 1 0
C =
1 0 0 0 1 1 0
R =
0 0 0
S =
1 1 0 0 0 1 0
E =
0 0 1





















24
EXPERIMENT 6
Aim: - To sample a signal of given amplitude and frequency using Flat top and natural sampling
and reconstruct it back at the receiver

Apparatus: Emona Telecoms Kit 101, BNC Connectors, Digital Storage Oscillicope, Patch leads

Theory:
The sampling process is described in time domain. As such it is an operation that is basic to
digital signal processing and digital communications. Through use if the sampling process, an
analog signal is converted into a corresponding sequence of samples that are usually spaced
uniformly in time. Clearly, for such a procedure to have practical utility, it is necessary that we
choose the sampling rate properly, so that the sequence of samples uniquely defines the
original analog signal. For an analog signal g(t),
Naturally Sampled version

In Pulse Amplitude Modulation, the amplitudes of regularly spaced pulses are varied in
proportion to the corresponding sample of values of a continuous message signal; the pulses
can be of a rectangular form or some other appropriate shape. PAM is similar to natural
sampling where the signal is multiplied by a periodic train of rectangular pulses.


Flat Top Sampling

1. Instantaneous sampling of the message signal m(t) every Ts seconds, where the
sampling rate fs = 1/Ts is chosen in accordance with the sampling theorem.
2. Lengthening the duration of each sample of each sample so obtained o some constant
value T

Process of Flat Top Sampling



25
Observations:



Natural sampling of Sine Wave Flat top sampling of Sine Wave




Natural Sampling at higher sampling frequency Reconstruction of message signal




Input Signal and the Reconstructed Signal

26
EXPERIMENT 7

Aim: - Convert a sine wave to a PCM data stream using PCM encoder and reconstruct the
message at the receiver using PCM decoder

Apparatus: Emona Telecoms Kit 101, BNC Connectors, Digital Storage Oscillicope, Patch leads

Theory:
In Pulse Code Modulation, a message signal is represented by a sequence of coded pulses,
which is accomplished by representing in discrete form in both time and amplitude. The basic
operations performed in the transmitter of a PCM system are sampling, quantizing and
encoding, the low pass filter before sampling the signal is used for preventing aliasing of the
message signal. The quantizing and encoding operations are usually performed in the same
circuit, which is called an analog-to-digital converter. The basic operations in the receiver are
regeneration of impaired signals, decoding and reconstruction of the train of quantized
samples. When TDM is used, it becomes necessary to synchronize the receiver to the
transmitter for the overall system to operate satisfactorily.



Pulse Code Encoding


Pulse Code Decoding

In combining the processes of sampling and quantization, the specification of a continuous
message baseband signal becomes limited to a discrete set of values, but not in the form best
suited to transmission over a telephone line or radio path. To exploit the advantages of
sampling and quantizing for the purpose of making the transmitted signal more robust to noise,
interference and other channel impairments, we require use of encoding process to translate
the discrete set of values to a more appropriate form of digital signal. Maximum advantage
over the effects of noise in a medium is obtained by using a binary code because a binary
symbol withstands high level of noise and is easy to regenerate.





27
Observations:


Sampling frequency for PCM Encoder



PCM Encoded Sine Wave



PCM Decoded Sine wave at the receiver and the input sine wave

28
EXPERIMENT 8

Aim: - To observe the effect of limited bandwidth on the transmission of digital data

Apparatus: Emona Telecoms Kit 101, BNC Connectors, Digital Storage Oscillicope, Patch leads

Theory:
In classical model, intelligence moves from transmitter to a receiver over a channel. A number
of transmission media can be used for the channel including metal conductors. Regardless of
the medium used, all channels have a bandwidth. That is, the medium lets a range of signal
frequencies pass relatively unaffected while frequencies outside the range are mode smaller.
The issue has important implications. If the mediums bandwidth isnt wide enough some of the
sine waves are attenuated and others are lost completely.


Square Wave through a channel through a band limited channel

Bandwidth limiting in a channel can distort digital signals and upset the operation of the
receiver. A solution to the problem of limited bandwidth of the channel is to use a transmission
medium that has a sufficiently wide bandwidth for the digital data. As digital technology
spreads there are demands to push more data down existing channels. To do so without
slowing things down requires that the transmission bit rate be increased. This ends up having
the same basic effect as reducing the channels bandwidth.

Eye diagrams give us idea about the signals quality and the channels bandwidth. As bandwidth
limiting degrades the signals quality the eyes begin to close.


Eye Diagram
29
Observations:




PCM Data with full bandwidth PCM Data with restricted bandwidth using a LPF



Eye Diagram



Restored Digital Signal using Comparator
30
EXPERIMENT 9

Aim: - To generate binary ASK/FSK/QPSK signal and evaluate its performance in the presence of
Additive White Gaussian Noise

Apparatus: Emona Telecoms Kit 101, BNC Connectors, Digital Storage Oscillicope, Patch leads

Theory:
Amplitude-shift keying is a form of modulation that represents digital data as variations in
the amplitude of a carrier wave. The amplitude of an analog carrier signal varies in accordance
with the bit stream (modulating signal), keeping frequency and phase constant. The level of
amplitude can be used to represent binary logic 0s and 1s.
The simplest and most common form of ASK operates as a switch, using the presence of a
carrier wave to indicate a binary one and its absence to indicate a binary zero. This type of
modulation is called on-off keying, and is used at radio frequencies to transmit Morse code
(referred to as continuous wave operation).
More sophisticated encoding schemes have been developed which represent data in groups
using additional amplitude levels. For instance, a four-level encoding scheme can represent
two bits with each shift in amplitude; an eight-level scheme can represent three bits; and so on.
These forms of amplitude-shift keying require a high signal-to-noise ratio for their recovery, as
by their nature much of the signal is transmitted at reduced power.
Frequency-shift keying (FSK) is a frequency modulation scheme in which digital information is
transmitted through discrete frequency changes of a carrier wave. The simplest FSK is
binary FSK (BFSK). BFSK literally implies using a pair of discrete frequencies to transmit binary
(0s and 1s) information. With this scheme, the "1" is called the mark frequency and the "0" is
called the space frequency.
Phase-shift keying (PSK) is a digital modulation scheme that conveys data by changing, or
modulating, the phase of a reference signal (the carrier wave). Any digital modulation scheme
uses a finite number of distinct signals to represent digital data. PSK uses a finite number of
phases, each assigned a unique pattern of binary digits. Usually, each phase encodes an equal
number of bits. Each pattern of bits forms the symbol that is represented by the particular
phase. The demodulator, which is designed specifically for the symbol-set used by the
modulator, determines the phase of the received signal and maps it back to the symbol it
represents, thus recovering the original data.
Alternatively, instead of using the bit patterns to set the phase of the wave, it can instead be
used to change it by a specified amount. The demodulator then determines the changes in the
phase of the received signal rather than the phase itself. Since this scheme depends on the
difference between successive phases, it is termed differential phase-shift keying (DPSK). DPSK
can be significantly simpler to implement than ordinary PSK since there is no need for the
demodulator to have a copy of the reference signal to determine the exact phase of the
received signal (it is a non-coherent scheme). In exchange, it produces more erroneous
demodulations. The exact requirements of the particular scenario under consideration
determine which scheme is used.
31
Observations:



Digital Signal and its ASK Signal



Input Signal and its Regenerated signal after ASK



Digital Signal and its FSK modulation
32



Demodulated FSK Signal and input signal Cleaned up demodulated signal and input signal









Signal Demodulated from the BPSK version BPSK (Even and Odd bits)

You might also like