06.06.2022 Views

B. P. Lathi, Zhi Ding - Modern Digital and Analog Communication Systems-Oxford University Press (2009)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

840 ERROR CORRECTING CODES

Figure 14. 16

Product code

formed by two

encoders

separated by a

block interleaver.

k 2 message

blocks of

k1 bits

Block

Encoder 1 interleaver Encoder 2 Channel

k 2

codewords

of length n1

n 1 codewords

oflength k 2

n 1 codewords

oflength n 2

Message bits Code 1

Message

blocks

Code 2

with larger depths can better handle longer bursts of errors, at the cost of larger memory

and longer encoding and decoding delays. A more general interleaver can pseudorandomly

reorder the data bits inside the interleaver and output the bits in an order known to both the

transmitter and the receiver. Such an interleaver is known as a random interleaver. Random

interleavers are generally more effective in combating both random and burst errors.

Because they do not generate outputs following a fixed order, there is a much smaller probability

of receiving a burst of error bits in a codeword because of certain random error

patterns.

Product Code

Interleaved code can be generalized by further encoding the interleaved codewords. The resulting

code can be viewed as a large codeword that must satisfy two parity checks ( or constraints).

Figure 14.16 illustrates how to form a product code from two systematic block codes that are

known as component codes. The first is an (n1, k1) code and the second is an (n2, k2) code.

More specifically, a rectangular block of k1 x k2 message bits is encoded by two encoders. First,

k2 blocks of k1 message bits is encoded by the first encoder into k2 codewords of the (n 1 , k1)

code. Then an n1 x k 2 block interleaver sends n1 blocks of k2 bits into the second encoder.

The second (n2, k2) encoder adds n2 - k2 parity bits for each of the n1 blocks, generating n1

codewords of the (n2, k2) code for the channel to transmit.

The use of a product code is a simple way to combine two block codes into a single more

powerful code. In a product code, every code bit is constrained by two sets of parities, one

from each of the two codes.

Concatenated Codes

Note from the block diagram of the product code that a block interleaver connects the two

component codes. More generally, as shown in Fig. 14. 17, the two component codes need not

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!