**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=2

^{m}-1
No.of.message
bits k=2

^{m}-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=2

^{m}-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