Block Coding of Product Code

 Introduction to Block Coding

In forward error control coding (FECC), the information bits are encoded with parity bits though which error correction and detection is are performed at receiver side. One of the main categories of forward error control coding methods is block coding method. In block coding, the block codes are typically a memory-less method that makes the map of “k” input bits to “n” output bits. The extra bits are the parity bits. Block codes are represented as (n, k).

In any communication system, the utilization of any channel coding is mostly performed on the expense of other system characteristics. Therefore comparisons are mostly important to make a system that meets the performance needs as well as to adhere the bandwidth and power constraints. The first comparison is in between error performance and bandwidth. The coding of error-correction is implemented to up-scales the error performance, but these techniques require the transmission of extra bits that will need more bandwidth. A system with limited power may overcome power without sacrificing error performance by using a forward error control coding (FECC) technique. So such technique will again introduce an up-scale in number of bits which will be transmitted by the system by expense of bandwidth. Both comparisons assume a real-time communication system. However, if a non-real time system is utilized, forward error control coding can be utilized to upgrade the performance and reduce the power but there will be an increase in delay instead of bandwidth. Such comparisons must be considered during the designation of communication system. The formulae for different parameters of block coding are explained second section.

Product Code

A code word having multiple parity bits like row as well as column parity bits for which the resultant number of bits are received by multiplication of new number of rows and new number of columns. It is done when we have multiple information bits, for which even parity and odd parity is used based on total sum that makes overall code word as product code.

Block Coding of Product Code (0000-1111)

Let we have information bits which are overall sixteen coding words starts from 0 to 15. In the binary numbers the information bits are 0000 up to 1111. First we will encode and then will decode through block coding method.

Encoding of Product Code (0000-1111)

Let we have a block code having M=16 rows and N= 4 columns with k= MN= (16) (4) = 64, we have overall 64 bits as shown in Fig. 1. Information bits are in sequence as B3 B2 B1 B0.

Fig. 1 16-Coding Word Product Code

After adding a single parity bit to each row (PH) and column (PV) based on checking even and odd parity. For even parity, the sum of all four bits must be 0. While for odd parity, the sum of all parity must be 1.

The block code becomes n-block code word having M+1 rows and N+1 columns with number of bits become n= (M+1)(N+1).

M+1=16+1 = 17, N+1=4+1 = 5, n = (M+1)(N+1) = (17) (5)= 85, r = k/n= 64/85

The new code word is shown in Fig. 2.

Fig. 2 Encoding by Block Coding

Decoding of Encoded Product Code

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∗H ) to each row of n-block code as well as adds new vertical parity (P∗V ) to each column of n-block code based check error sum as we did in encoding. The new n-block code is shown in Fig. 3.

Fig. 3  Decoding by Block Coding

Detection and Correction of Errors

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. If a parity check of decoder is 1, then there will be error in the respective column or row. In case of decoding the encoded product code all parity checks are 0. So we received all information bits without an error as shown in Fig. 4.

Fig. 4  Detection of Errors

Coding Rate and Bandwidth

The coding rate for the code word is defined as the ratio of number of information bits (k) and number of coding bits (n). It is represented as r.

r = k/n

For the given product code (0000-1111):

r = 64/85

In block coding, redundant bits are transmitted along with information bits, which will require an increase in bandwidth. Before modulation, this is given by:

BW = Rb (n/k)

Where, Rb = Input bit rate that is bit/sec.

Comments