Forward Error Control Coding (FECC) Methods

In the previous post, we discussed that forward error control coding method adds parity bits to protect the information bits without concerning with large bandwidth and slow data rate. It is further classified into broad categories namely, block coding and convolutional coding.

1- Block Coding

Block coding is used in all types of digital communications. In this coding technique, the information bits are subdivided in to k-data bits. The encoder transforms each k-bit data block into larger sequence block of n-bits called coded information bits where n > ݇k. The redundant bits are the difference of “n” and “k” which is also called parity bits. The parity bits have no information but these bits are used to correct and detect the bits error. The code is referred to as (n, k) block code and the rate of code block can be determined by the ratio of k and n.

1.1- Encoding

To encode a block code having M-rows and N-columns, overall make 8-bit data block. The product of M and N gives k that shows overall bits before encoding. “k” also shows the d dimension of the information bits. To encode the block code, we attach the horizontal parity (PH) to each row and then vertical parity (PV) to each column of block code. The resulting augmented dimension becomes “n” which is determined by the product of (M+1) and (N+1). The “n-bits” are then transmitted through communication channel to the receiver. The coding rate can be determined by the following formulae.



1.2 Decoding

When the n-block code is received by the receiver, the decoder adds new parity bits to n-block code. Decoder adds new horizontal parity (P with subsript H) to each row of n-block code as adds new vertical (P with subscript V) to each column of n-block code. If there is single bit error then there will be a parity check failure in the corresponding row and column that will show the position of error.

A factor 1/r is such a factor that up-scales the bit rate and so the bandwidth. Let Rb is the bit rate before coding and r is the coding rate. Then the coded bit rate will be Rb/r.

1.3 Example

Let we have a block code having M= 4 rows and N= 2 columns with k= MN= (4) (2)= 8, after adding parity bits, the block code becomes n-block code having M+1= 5 rows and N+1= 3 columns with number of bits become n= (M+1)(N+1)=(5) (3)=15. While the rate this code becomes r= k/n = 8/15 as shown in Fig. 1.

Fig.1 Block Encoding

After reception at receiver side, the decoder adds new parity bits to each row and columns of n-block code that will detect and correct the errors. Fig. 2 shows the overall decoded pattern.

Fig.2 Block Decoding

2- Convolutional Coding

In the convolutional coding technique, k- information bits enter the encoder sequentially then the encoder generates n-parity bits greater than k-bits. The encoded bits are then modulated and transmitter through communication channel. At receiver side, the receiver decodes by means of code correlation and regenerates the information bits.

2.1- Encoding

The encoder is made up of k-shift registers and two exclusive OR (X-OR). The constraint length is represented as “k” while rate is represented as “r”. Let the initial content for the encoder is 0 0 0, these three bits enter the 3-bir register one by one means one bit at a time. Total of six registers are in the overall operation that generates six parity bits pairs after that the shift register is cleared. The outcome of rate r=6/12 = ½. 3-bit data has 8 combinations. Each combination creates a specific bit pattern and stored in the lookup table as shown in Fig. 3. These encoded bits are then modulated and transmitted.

Fig.3 Convolutional Encoding

2.2 Decoding

In decoding process, correlation is performed. A look-up table at the receiver side includes the input and output bits. The receiver compares the created data and correlation value. The value of correlation for each data-set is collected in look-up table. When k=3, the possible outputs will be 8. The receiver validates the received data pattern by means of correlation code. By this technique, we can find the closest match. The code rat is ½ as there are six input bit sequences. There are twelve (12) encoded data as shown in Fig. 4.

Fig. 4 Convolutional Decoding


Comments