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.

14.3 Linear Block Codes 81 1

TABLE 14.3

Decoding Table for Code in Table 14.2

e

s

000000 000

100000 101

010000 011

001000 110

000100 100

000010 010

000001 001

100010 111

The decoding procedure just described is quite disorganized. To make it systematic, we

would consider all possible syndromes and for each syndrome associate a minimum weight

error vector. For instance, the single-error correcting code in Example 14.1 has a syndrome with

three digits. Hence, there are eight possible syndromes. We prepare a table of minimum weight

error vectors corresponding to each syndrome (see Table 14.3). This table can be prepared by

considering all possible minimum weight error vectors and using Eq. (14.11 b) to compute s

for each of them. The first minimum weight error vector 000000 is a trivial case that has the

syndrome 000. Next, we consider all possible unit weight error vectors. There are six such

vectors: 100000, 010000, 001000, 000100, 000010, 000001. Syndromes for these can readily

be calculated from Eq. (14.llb) and tabulated (Table 14.3). This still leaves one syndrome,

111, that is not matched with an error vector. Since all unit weight error vectors are exhausted,

we must look for error vectors of weight 2.

We find that for the first seven syndromes (Table 14.3), there is a unique minimum weight

vector e. But for s = 111, the error vector e has a minimum weight of 2, and it is not unique.

For example, e = 100010 or 010100 or 001001 all have s = 111, and all three e are minimum

weight (weight 2). In such a case, we can pick any one e as a correctable error pattern. In

Table 14.3, we have picked e = 100010 as the double-error correctable pattern. This means the

present code can correct all six single-error patterns and one double-error pattern (100010). For

instance, if c = 101011 is transmitted and the channel noise causes the double error 100010,

the received vector r = 001001, and

s = rH T = [1 11]

From Table 14.3 we see that cmresponding to s = 111 is e = 100010, and we immediately

decide c = r EB e = 101011. Note, however, that this code will not correct double-error

patterns except for 100010. Thus, this code corrects not only all single errors but one doubleerror

pattern as well. This extra bonus of one double-error correction occurs because fl and

k oversatisfy the Hamming bound [Eq. (1 4.3b)]. In case fl and k were to satisfy the bound

exactly, we would have only single-error correction ability. This is the case for the (7, 4) code,

which can correct all single-error patterns only.

Thus for systematic decoding, we prepare a table of all correctable error patterns and the

corresponding syndromes. For decoding, we need only calculate s = rH T and, from the decoding

table, find the corresponding e. The decision is c = r EB e. Because s has m = fl - k digits,

there is a total of 2 n- k syndromes, each consisting of fl - k digits. There is the same number

of correctable error vectors, each of n digits. Hence, for the purpose of decoding, we need a

storage of (2fl - k)2 n- k

= (2fl - k)2 m bits. This storage requirement grows exponentially

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

Saved successfully!

Ooh no, something went wrong!