Merits Of The Linear Block Codes Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.


Generally Codes are used for data compression, cryptography, error-correction and most recently also for network coding .essentially their two aspects of coding they are data compression coding and error correction coding .Here we are going to discuss reviews about linear block codes ,convolutional codes and turbo codes.


Any linear block codes take K input bits and produces n output bits, using mod -2 matrix .so we will usually call K input bits as the information bits. message encoded in K bits, and by sending it to other side we transform it into a codeword.n and we call n out bits..usually n>K and n-K so the difference is called parity bits.

Basically we have two matrices G and H.G is called generator matrix ,H is called parity check .G is used in encoding ,G takes K input bits and produces n output bits.


Generator matrix G is a K rows by n columns matrix and entry in G are all {0,1} our information bits are contained in 1/k row vector {m1 ,m2….mk} were all the m {0,1}.

m {m1,m2….mk} and codeword C=Mg


Let K=2 and n=3



Remark 1

G contains a identity submatrix

G= single parity check code is a linear block code


Remark 2

Any linear block codes contains all zero codeword


C1 and C2 are codewords of linear block code,then C1+C2 is also called a codeword.


WhenC1andC2 are codeword of a linear block code their must be m





=G (m1 and m 2 sequence of k bits )

If we start with a code and add a code word it will remain as a codeword ,One thing it indicates straightaway is that if error pattern comes in the form of a codeword the error pattern is not dateable .

Hamming weight

Hamming weight of a code word is equal of one in the codeword w(c) ,c is the codeword and w is the hamming weight..

w min is the min of c C OF w(c) is the minimum hamming weight.

Minimum hamming wight

For linear block code

d min= w min

for d min we have to compare every codeword pair wise to workout the distance between them .w min can be obtained by working on each and every individual codeword .this true because of the adder property.

Since c 1+ c2= C, then the hamming distance between c 1 and c 2 is equal to the hamming weight of c1 and c 2

h(c1+ c2 ) = w (c 1+ c 2 )

since c1 and c2 is always the codeword ,the minimum value of c1 + c2 is the minimum hamming weight and also the minimum distance.

Example: given the following generator matrix and parity check matrix, the linear block code is [7,4,3] hamming code.

G= ,

HT= G[IP], HT= ,H=[PI]

Encode the message [0 1 0 1]

m=[0 1 0 1]

Code word


C= [0 1 0 1] = [0 1 0 1 1 0 0 ]

Step 2 : Verifying HT=0

[0 1 0 1 1 0 0 ] =[0 0 0]

Finally this is how we detect code word . we multiply the code word with transpose and discover all zero factor there is no error on the code word and if it is non -zero then error must be.


[0 0 0 1 1 0 0] =[0 1 1]

Error in second row ={ 0 1 0 1 1 0 0 ].


Linear codes are the very prominent class of the error correcting codes. It generally includes the simple description, easy procedure for encoding, nice properties, conceptually easy decoding.

If C is a linear code then the minimum distance d(c) is easy to compute.

Linear codes possess simple specifications.

To specify the (n,k) linear code it is sufficient to list K linearly independent codewords where as for the non linear code words generally we have to represent with all the code words.

The most important linear block codes are:

Hamming codes, cyclic codes, reed Solomon codes, BCH codes, LDPC codes, turbo codes respectively.

The main drawback of the hamming code is that it has the fixed hamming distance and also it is very difficult to implement coders for large block. The detection of two error bits and ability to correct the single errored bit can be obtained from the fixed hamming distance. if we choose a code which generally allows the implementer to select the desired hamming distance will be useful or beneficial. Hammer coder practicallargest possible allows for codewords of nearly 31bits only.


These are also used in sensor networks for distributed source coding

These linear block properties are used in many applications. Trellis shaping is generated by using the syndrome cosset uniqueness property of linear block codes.

By using these codes phase shift can be easily corrected and detected and also multiple signals can be easily sent from one channel.

2 Convulational Codes


In spite of the name, convolutional codes are very simple , simple to understand. Basically in block code we take k bits and amount it to n bits .Block code is like hamming code (message of 4 bits are mapped to codeword of 7 bits). Covolutional code works on the stream not on blocks. An Infinite stream of message bits going in convolutional encoder and u get a infinite stream of code bits .convolutional codes are easily implemented. And are also straight forward decoding algorithm called as vetorbi algorithm.


To encode convolutional codes we basically need a finite state machine with a shift register

Fundamental example of the convolutional code

it is the 2 bit shift register

we take mod two sums elements of the pair of the contents of the each register. Contents of the 1st memory element and second memory element gives the first out put and contents of the input and last memory elements gives the second output.

In convolution coding we encode a input[1 0 1 1 0 0 ],intial sarts with [0 0] state and ends with [0 0] state

The we check out with state diagram by connecting all codes . by using state diagram we get trellis diagram

State diagram


An encoder with n binary cells produces states. Just imagine the encoder which is shown in figure 1 has 1 in left memory cell(m0) in right one. We will refer such a state as "10". By considering input bit the encoder at the next turn can convert either to "11" state or "01" state or "01" state. from the below figure we get rhe idea of decoding if the received sequence doesnot suit this graph then it errors can be obtained and we should select closest correct sequence. All transitions which are possible are shown as below

The red line is the path of the trellis. The lines their indicate transitions where the dotted lines are "1" input and the proper lines rae "0" input. The path here represents an actual encoded sequence. One of the path is shown in red colour as an example. The figure provides an idea about the decoding .

Merits and Dmerits

To correct the errors in noisy channels these convolutional codes are frequently used.

These convolutional codes perform well on very bad conditions also.

These convolutional codes are generally used often in satellite communications, mobile telephony and also in voice band modems.

Convolutional codes generally gives good results in lower noise environments.

Convolutional codes are also used in the voice band modems( v.,32, v.17, v.34) and also in the GSM mobile phones.

Even though the convolutional encoder has the simplest procedure, decoding of it is very complex task.

Convolutional codes cannot provide more protection against


Convolutional codes are used in the number of the applications which aims to achieve reliable data transfer, including radio, mobile communications, digital video communications, satellite communications.

By using hard decision code, these codes are implemented in concatenation( example: reed Solomon).

These are more efficient.

(references: tutorial on convolutional coding and decoding, the online text book: IT, inference and leaving algorithms by david J.C.Mackay).

3.Turbo codes


In the year 1993by Berrou glavieux and thitimajshima, these turbo codes were developed which are the class of high performance forward error correction codes and they are also the first practical codes to come nearer to the channel capacity for the code rate at which reliable communication is still possible while a specific identified noise level is given. "near Shannon limit error correcting and decoding : turbo codes". Once after the introduction of these parallel turbo codes many other types are discovered which mainly includes repeat accumulate codes, serial versions. Even the conventional FEC systems are also been applied by the iterative turbo decoding methods

Principles of Turbo Codes

Punctured Rate R=1/2 Turbo Code

For generator matrix

G(D) = [1,g(D)]

G*(D) = [1,g*(D)]


g (D) = [d(D),n(D)]

Decoding Principles

The signal is demodulated with its associated noise and a soft output provided to the decoder.

Most often LLC is defined as

Decoding pass through two stages

The decoder may have some knowledge the probability of the transmitted signal

Merits and demerits

Turbo codes and low density parity check codes come very close to approach the Shannon limit , which is the theoretical limit of maximum transfer relate of information over a noisy channel.

Turbo codes increases data rate with out increasing the transmitted power, or to transmit at a certain data rate they are used to decrease the amount of the power.

It generally produces the best performance results of the throughput and latency

Its main disadvantage is the complexity of the relative high decoding.

It also has relatively high latency, which is not suitable for some applications.

It is also not very much useful for the satellites why because the latency is produced by the transmission distance due to the limited speed of the light.

These algorithms are complex in nature.


Turbo codes have been adopted as a required element for most 3G standards, such as CDMA2000 and W-CDMA.

Turbo code have further been adopted as part of the Digital Video Broadcast - Return Channel Satellite (DVB-RCS) link, enabling broadband interactive satellite systems and have been recommended by the Consultative Committee for Space Data Systems (CCSDS) for use in space telemetry channel coding.

Turbo codes are used in the designs of the digital communication systems and also in detection, demodulation

Turbo codes in the field of the error correcting codes represents a significant development.

The cable transmission, short distance communications or data storage are the future applications of the turbo codes.


Turbo codes

The data block length was 400 bits, and a MAP decoder was used in the simulation. The results as shown BER vs Eb/No curves for different numbers of iterations

from n=1, 2, 5 and 10. A BPSK channel was assumed.

Block codes (linear block code and convolutional codes )

The dual adaptive importance sampling (DAIS) technique evaluates the word and bit error rates of linear block codes down to extreme low values.

(The below shown simulation results are taken from the reference " Slin and D. Costello, error correction coding : fundamentals and applications").

The above shown figure gives the BER and WER for the n=17 RCD code.

the convolutional codes are as follows:

8, 32, 256, 2048 state convolutional encoder uses viterbi decoding algorithm which applies on bit sequences of length l=1000. The below shown figures shows that even though the probability of error improves because of coding states, the performance of the system is very far from the ideal slepian wolf bond. This generally improves the performance slightly when compared with viterbi system.

Probability error of convolutional coded system have different number of states.

CRITICAL COMPARISION( block code and turbo codes )

Convolutional codes have a natural trellis structure which is useful in the implementation of the viterbi algorithm. Where as the linear block codes have a natural but it has minimal trellis structure.And as we know that the performance of the convolutional codes increases with the increasing constraint code complexity This is not for the turbo codes where the constraint lengths .

Convolution code have larger constraint were as a turbo code does not .

The turbo codes are the hybrid model of the both the linear block codes and the convolutional codes respectively.

The linear block codes are widely used in the turbo codes instead of the convolutional codes to form a turbo product code(TPC). And these two hamming codes are concatenated serially with the absence of an interleaver in between them. They can perform well in low SNR and can be formed by any block code.

The main differences between the linear block codes and convolutional codes is that a system which is using the block codes will transmits the k data bits and then transmits the n-k reluctant bits. Where as the system which uses the convolutional codes produces n coded bits from k data bits and the codeword need not contain unaltered k data bits

The convolutional codes used in the turbo codes usually forms a parallel concatenated convolutional code(PCCC) .


All the above three codes have different properties and different mechanism to find out the errors and correcting it. By discussing the main differences between the block codes, convolutional codes, turbo codes and presenting their respective simulation results. I was able to learn the basic criteria of codes i.e channel coding and turbo code.and how to use of them and where to use . also came to know the importance of these codes in the present world. The next applications of these codes are to provide improvements in communication for the satellites.