15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

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

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

Given a code C of length n and dimension k, let<br />

d is the minimum (Hamming) distance of the code C, and C is an [n, k, d] code.<br />

It is easy to verify that dH( , ) satisfies the axioms of distance, i.e.,<br />

1. dH( , ) = dH( , ),<br />

2. dH( , ) = 0 if and only if = ,<br />

3. dH( , ) ≤ dH( , ) + dH( , ).<br />

A sphere of radius r and center are called the set of vectors that are at distance at most r from .<br />

The relation between d and the maximum number of errors that code C can correct is given by the<br />

following lemma:<br />

Lemma 1 The maximum number of errors that an [n, k, d] code can correct is , where<br />

denotes the largest integer smaller than or equal to x.<br />

Proof: Assume that vector was transmitted but a possibly corrupted version of , for instance ,<br />

was received. Moreover, assume that no more than errors have occurred.<br />

Consider the set of 2 k spheres of radius whose centers are the codewords in C. By the<br />

definition of d, all these spheres are disjoint. Hence, belongs to one and only one sphere: the one whose<br />

center is codeword . So, the decoder looks for the sphere in which belongs, and outputs the center<br />

of that sphere as the decoded vector. Subsequently, whenever the number of errors is at most<br />

this procedure will give the correct answer.<br />

,<br />

Moreover, is the maximum number of errors that the code can correct. For let<br />

such that dH( , ) = d. Let be a vector such that dH( , ) = 1+ and dH( , ) = d −<br />

1 − . We easily verify that dH( , ) ≤ dH( , ), so, if is transmitted and is received<br />

(i.e., errors have occurred), the decoder cannot decide that the transmitted codeword<br />

was , since codeword is at least as close to as . �<br />

Example 1 Consider the following 1-1 relationship between GF(2) 2 and GF(2) 5 a b<br />

a b b a<br />

a b a b<br />

a c a b b c<br />

a a<br />

(d – 1)/2<br />

x<br />

a a r<br />

(d – 1)/2<br />

(d – 1)/2<br />

r<br />

a r<br />

(d – 1)/2<br />

( d – 1)/2<br />

a, b ∈ C<br />

a b u a u ( d – 1)/2<br />

b u<br />

( d – 1)/2<br />

b u a u a u<br />

1 + ( d – 1)/2<br />

a b u a<br />

defining the encoding:<br />

The four vectors in GF(2) 5 constitute a [5,2,3] code C. From Lemma 1, C can correct one error.<br />

For instance, assume that we receive the vector r = 10100. The decoder looks into the four spheres<br />

of radius 1 (each sphere has six elements) around each codeword, finding that r<br />

belongs in the sphere<br />

with center 11100. If we look at the table above, the final output of the decoder is the information<br />

block 01. �<br />

Example 1 shows that the decoder has to make at most 24 checks before arriving to the correct decision.<br />

When large codes are involved, as is the case in applications, this decoding procedure is not practical,<br />

since it amounts to an exhaustive search over a huge set of vectors.<br />

One of the goals in the theory of error-correcting codes is finding codes with rate and minimum distance<br />

as large as possible. The possibility of finding codes with the right properties is often limited by bounds<br />

that constrain the choice of parameters n, k, and d. Some of these bounds are given in the next subsection.<br />

Let us point out that error-correcting codes can be used for detection instead of correction of errors.<br />

The simplest example of an error-detecting code is given by a parity code: a parity is added to a string<br />

of bits in such a way that the total number of bits is even (a more sophisticated way of saying this is that<br />

the sum modulo 2 of the bits has to be 0). For example, 0100 is encoded as 01001. If an error occurs,<br />

or, more generally, an odd number of errors, these errors will be detected since the sum modulo 2 of the<br />

© 2002 by CRC Press LLC<br />

d = min {dH(a, b): a≠ b, a, b ∈ C}<br />

00 ↔ 00000<br />

10 ↔ 00111<br />

01 ↔ 11100<br />

11 ↔ 11011

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

Saved successfully!

Ooh no, something went wrong!