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.
0 comments:
Post a Comment