Comparative Performance Analysis of Block and Convolution Codes

The main motivation of using Error Detection and Correction Codes is efficient transmission and reception of data through channel such that as to reduce the ber (bit error rate). This technique called as channel Channel coding reduces the errors caused in the data due to the noise while transmitting through communication channel. Two important types of channel coding are thereBlock coding and convolutional coding. Here in this paper we have compared the performance of hamming code, Reed Solomon code and convolution codes by using bit error rate(ber)V/s Eb/No performance using BPSK (Binary Phase Shift Keying). MATLAB R2010a Simulink is used for performing the simulations.


Introduction
Over the coming years, there happens a extreme progression in communication area, majorly the area of satellite communication cellular communication. As we know data is expressed as binary bits i.e., in form of 0's and 1's in digital systems. This binary data is transmitted through channel and before transmission; it is modulated by carrier signal which is analog signal. While trans-mission through channel, it may happen that data get corrupted by noise. So at the receiver end, we demodulate this corrupted received data back into original data i.e., transmitted binary data. The detection and correction of errors ocurred in binary data is carried by channel coding techniques. No of bits in error in binary data relies on the noise, and interference that occurred while transmission of data through communication channel.

Channel Coding
The main motivation of channel coding is used to protect the binary information from interference, and noise and cut down the number of bits in error. In channel coding, redundant bits are selectively added to the binary data (to be transmitted). These redundant bits are calculated by performing some operation on binary data that is to be transmitted. The purpose of addition of these extra bits is to detect and correct the bit errors at the receiver side providing efficient transmission of data. It provides protection of data at the cost of reduction in data rate and increased bandwidth.
For transmission of digital data over unreliable channel subjected to channel noise, error correcting codes are used. The datastream is splitted in some piece called as message word which is of fixed length and is converted/ encoded each message individually into a codeword. The mechanism used to decode each message is provided by code itself. The codewords are then sent on the channel for the transmission purpose where there are chances of corruption of data. On reception over the receiver side, they are decoded back into original transmiited data by using decoding criteria. The achievement of proper and efficient transmission of data depends on the enviroment and type of the channel and the parameters of code used for channel coding 1 .

Classification of Channel Codes
Channel coding uses two types of codes, namely • Block code. • Convolutional code.
Block codes are very simple codes. They can either detect error or correct error. They produce 'n' bit codeword by adding (n-k) redundant (extra) bits to the 'k' bit message or information data. Usually, these codes are calles as (n, k) block codes. Hamming code, BCH (Bose, Chaudhari and Hocquenghem code) codes, and Reed Solomon code are one of the most commonly used block codes. Linearity and cyclicity are two main properties of block codes e.g., hamming code-linear in nature while BCH and Reed Solomon-cyclic in nature.
In real life communication systems, Convolutional codes are most commonly used channel codes because they are created by a solid mathematical system and therefore provide practical detection and correction of errors. The whole data is converted onto one single codeword. Here dataword resultant after encoding depends on the previously (past) used input bits and on the present (current) input data. Viterbi algorithm is the one of important and commonly used technique for decoding of data in convolutional codes.
Convolutional codes are widely accepted because much advancement is there to extend and improve them over basic coding technique. Due to this, there results two new coding schemes, namely, Trellis Coded Modulation (TCM) and turbo codes. One major useful property of TCM over other techniques is that there is no decrease in data rate or extension in bandwidth. Also in TCM tehnique, encoding and modulation of input binary data is carried out in one operation.

Linear Block Codes
In Linear block codes, each code word is a linearly combined set of generator word. The generator matrix is produced by "k" non-dependent codeword of "n" length. The number of bits or length of message word is 'k' bits while (n-k) redundant bits are added to message word, so total 'n' bit length of final codeword that needs to be transmitted. Linear Block Codes (LBC) can be easily designed in hardware. They have high code rate probably above 0.95. As the complexity is less in LBC, resulting in reduction in overhead in encoding, however it limits the capability of correction of errors in received codeword. They are Vol 9 (47) | December 2016 | www.indjst.org Shakti Raj Chopra, Jasvir Kaur and Himanshu Monga very beneficial in situations where bandwidth availability is limited and BER requirement of the channel is low during transmission.
Here 'k' is the message word (having 'k' number of bits).The transmitted codeword is 'n' bit long which represents number of symbols in a block that are received by the receiver. The ratio of message word (k) to the final codeword (n) is called as code rate of a block code 'R' .

Hamming Code
Hamming Codes comes under the category of the block codes correcting errors. In digital communication systems, hamming codes and their inherited variants are widely used for correction of errors and in data storage systems.
Least or minimum gap/difference/distance that occurs between any of 2 k codeword is referred to as minimum distance of hamming code (d min ). While transmission of data through communication channel, noise produces errors in the codeword such that its Hamming distance becomes closer to one of 2 k codeword. This property helps in finding probabality/certainity of error while decoding the codeword. The minimum hamming distance (d min ) has a direct relevance to the number of bits in error in the received codeword. Therefore if we need to find the code having d min being the largest value. A propert p-error correcting code has the feature that every word in the Hamming space lie within a distance of p from exactly one codeword 7 .
For any integer (positive) say a ≥ 3 exists a Hamming code having the following parameters:

Parameters Values
Length of the codeword, n 2 a -1 Length of the message symbols, k 2 a -1-a Length of the control/parity symbols, a n-k Error-correction symbols, t (d min -1)/2, i.e. t=1( d min =3).
In Hamming codes, concept of parity checks is used which makes it simple and efficient code for detection and correction of one bit error, detection of two bit error using the property of largest value of minimum hamming distance(d min ) 3 . The disadvantage of hamming codes is that as the number of bits increases, they become increasingly inaccurate. They can only detect and correct one bit error regardless of length of codeword.

Reed Solomon Code
Reed-Solomon codes are a derived variant of BCH codes (Bose, Chaudhuri and Hocquenghem code) and they form one class of linear block codes that are non binary as well as cyclic code in nature 4 . They have been usually studied in academic world due to its wide applications in digital communication systems and data storage systems.
In most conventional RS (n, k) code, it is represented by the notation of (n, k) = (2m -1, 2m -1 -2t), where an extended Reed-Solomon code can be represented as (n,k) = (2m,2m-2t) or (2m+1,2m+1-2t). The number of symbols/bits that differs between any of two codewords are called as distance of codeword. It is possible to attain the minimum distance of the linear code to be largest via the use of same encoder input and output block lengths in case of Reed solomon code 5 .

Parameters Values
Length of the codeword, n 2 m − 1 Length of the message symbols, k 2 m -1-2t Length of the control or parity symbols, 2t n-k Minimum distance of codeword, d min n-k+1 Error correction capability, t (n-k)/2 The structural representation of Reed-Solomon Code is shown in Figure 3. Here length of codeword is 'n' symbols consisting of 'k' message symbols and '2t' parity symbols.

Convolutional Code
Convolution codes are one of the most commonly used codes for channel coding in practical communication systems. They are error-correcting codes in which parity symbols are generated by boolean polynomial by convolution of encoded data with that of data stream. These codes facilitates trellis decoding using a time-invariant trellis which allows them to be maximum-likelihood using softdecision decoding algorithm which is bit complex. Viterbi Algorithm is widely used maximum likelihood decoder of convolutional code where only that code cord is per-mitted as decoded codeword who is having maximum possibility of having the corrected one with reference to original codeword generated at the transmitter side. Base code rate and constraint length of the encoder are the two important terms in convolutional coding. The ratio of codeword symbols i.e., 'n' to the message/data symbols i.e., 'k' is referred to as base code rate.
The constraint length decides the output of convolution coding where outputted codeword depends on the past (K-1) input bits and the present input bits.

Convolution Encoder
Shift register and modulo-two addition operation is used for the encoding the data in convolutional codes. They do not have a predefined word length like block codes 6 . By periodic truncation, frame structure of codes is done.
For flushing the shift register, message is appended by zero bits. Due to the addition of bits that do not carry any information along with them, code rate can fall below k/n. Large truncation period is required for the stabilization of code rate.
To describe an encoder, set of m connection vectors having the same dimension as that of K (shift registers) are required. These connections describe which shift register is connected to m adders. A value of '0' in the j th position will indicate that not a single connection exits between the stage and adder and the value of '1' demonstrate that shift register is connected to the adder.

Simulation
Here we analyzed the performance of hamming code, reed solomon code and convolutional code by taking Binary Phase Shift Keying (BPSK) as the modulation technique and transmitting through them AWGN channel. The performance of Reed solomon (31, 26), Hamming (31, 26) and convolution code is analyzed. All the simulations are performed using MATLAB R2010a.

Conclusion
Here in this paper we implemented the convolutional code and linear block codes i.e., hamming and reed solomon code providing them easier to implement and simpler to understand. These codes are used for error detection and correction as errors may occur while transmission. These codes are transmitted through AWGN channel. For the decoding purpose of convolution code, hard decision algorithm is used. The simulation shows that the convolution code has better error controlling and correction capabilities in comparison to block code i.e., linear binary hamming code and cyclic non-binary reed solomon code. Better, and among the block code itself, the performance of reed solomon is better comparatively. However convolutional code is very difficult to implementation than linear block code.
Thus channel coding techniques results in efficient transmission of data by detecting and correcting the errors at receiver side, thus increasing the efficiency.