SIMULATION
OF BLOCK CODES
AIM
To
simulate linear block coding techniques for hamming and cyclic code
using MATLAB.
THEORY
HAMMING
CODES
Consider
a family of (n,k) linear block codes that have the following
parameters.
Block
length,n=2m-1
No.of.message
bits k=2m-m-1
No.
of parity bits, n-k=m, where m>=3.
These
are so called Hamming codes. To illustrate the relations between the
minimum distance dmin and the structure of the parity check matrix H.
Consider the codeword 0110100,In the matrix multiplication is done,
and the non-zero elements of this codeword “shift” out the
second, third and fifth column of the matrix if yielding. An
important property of hamming codes is that they satisfy the
condition. t=1.This means that hamming codes are single error
correcting binary perfect codes.
CYCLIC
CODES
Cyclic
codes form a sub class of linear block codes.A binary code is said to
be cyclic code,if it exhibits two fundamental properties.
- LINEARITY PROPERTY
The
sum of two codeword is also a codeword.
- CYCLIC PROPERTY
Any
cyclic shift of codeword is also called a codeword.
ALGORITHM
HAMMING
CODE
STEP
1: Start the program
STEP
2: Assign the number of parity bits m=4
STEP
3: Calculate the block length n from m=2m-1
STEP
4: Assign the number of message bits k such that n-k=m so k=11
STEP
5: The hamming code is (5,11)
STEP
6: Obtain the input signal message randomly the input message is in
binary format
STEP
7: The parity bits are calculated for input message taken.
STEP
8: The parity bits are appended along the message bit to form the
codeword.
STEP
9: The codeword formed is transmitted through AWGN channel
STEP10:
The received signal is then decoded to retrieve the message
STEP
11: The BER is calculated for the retrieved message
STEP
12: For the various values of the SNR and its corresponding BER,the
graph is
Plotted.
CYCLIC
CODE
STEP
1: Start the program.
STEP
2: Assign the block length n=7.
STEP
3: Assign the message bits,k=4.
STEP
4: The cyclic code is (7,4)
STEP
5:Generate the polynomial.
STEP
6: Obtain the input message randomly.
STEP
7: The input message is in binary format.
STEP
8: The codeword is formed by appending the parity bits with the
message bits.
STEP
9: The parity bits are calculated from the generation polynomial.
STEP10:
The codeword formed is transmitted through AWGN channel.
STEP11:
The received signal is then decoded with the help of generator
polynomial
Knowledge to retrieve the message.
PROGRAM
HAMMING CODE
####################################
clc;
clear all;
close all;
m=4;
n=2^m-1;
k=11;
berf=[];
for i=1:10
b=0;
for j=1:50
msg=randint(500,k,[0,1]);
code=encode(msg,n,k,'hamming/binary');
t=0:0.1:10;
snr=0;
y=awgn(code,i);
y(find(y>0))=1;
y(find(y<0))=0;
msgop=decode(y,n,k,'hamming/binary');
[number,b1]=biterr(msgop,msg);
b=b+b1;
end
berf(i)=b/50;
end
semilogy(1:10,berf);
title('performance analysis in awgn for hamming codes');
xlabel('snr(db)');
ylabel('BER');
#######################################################################
CYCLIC CODES
clc;
clear all;
close all;
n=7;
k=4;
genpoly=cyclpoly(n,k,'max');
berf=[];
for i=1:10
b=0;
for j=1:50
msg=randint(500,k,[0,1]);
code=encode(msg,n,k,'cyclic/binary',genpoly);
t=0:0.1:10;
snr=0;
y=awgn(code,i);
y(find(y>0))=1;
y(find(y<0))=1;
msgop=decode(y,n,k,'cyclic/binary',genpoly);
[number,b1]=biterr(msgop,msg);
b=b+b1;
end
berf(i)=b/50;
end
semilogy(1:10,berf);
title('performance analysis in awgn for cyclic codes');
xlabel ('snr (db)');
ylabel ('BER');
#########################################################
RESULT
Thus
the linear block coding technique for hamming code and cyclic code
has been simulated using MATLAB.
Post a Comment