24.3 Bounds on General Codes

We have shown that an (n, M, d) code can correct t errors if d2t+1. Hence, we would like the minimum distance d to be large so that we can correct as many errors as possible. But we also would like for M to be large so that the code rate R will be as close to 1 as possible. This would allow us to use bandwidth efficiently when transmitting messages over noisy channels. Unfortunately, increasing d tends to increase n or decrease M.

In this section, we study the restrictions on n, M, and d without worrying about practical aspects such as whether the codes with good parameters have efficient decoding algorithms. It is still useful to have results such as the ones we’ll discuss since they give us some idea of how good an actual code is, compared to the theoretical limits.

First, we treat upper bounds for M in terms of n and d. Then we show that there exist codes with M larger than certain lower bounds. Finally, we see how some of our examples compare with these bounds.

24.3.1 Upper Bounds

Our first result was given by R. Singleton in 1964 and is known as the Singleton bound.

Theorem

Let C be a q-ary (n, M, d) code. Then

Mqnd+1.

Proof. For a codeword c=(a1, , an), let c=(ad, , an). If c1c2 are two codewords, then they differ in at least d places. Since c1 and c2 are obtained by removing d1 entries from c1 and c2, they must differ in at least one place, so c1c2. Therefore, the number M of codewords c equals the number of vectors c obtained in this way. There are at most qnd+1 vectors c since there are nd+1 positions in these vectors. This implies that Mqnd+1, as desired.

Corollary

The code rate of a q-ary (n, M, d) code is at most 1d1n.

Proof. The corollary follows immediately from the definition of code rate.

The corollary implies that if the relative minimum distance d/n is large, the code rate is forced to be small.

A code that satisfies the Singleton bound with equality is called an MDS code (maximum distance separable). The Singleton bound can be rewritten as qdqn+1/M, so an MDS code has the largest possible value of d for a given n and M. The Reed-Solomon codes (Section 24.9) are an important class of MDS codes.

Before deriving another upper bound, we need to introduce a geometric interpretation that is useful in error correction. A Hamming sphere of radius t centered at a codeword c is denoted by B(c, t) and is defined to be all vectors that are at most a Hamming distance of t from the codeword c. That is, a vector u belongs to the Hamming sphere B(c, t) if d(c, u)t. We calculate the number of vectors in B(c, t) in the following lemma.

Lemma

A sphere B(c, r) in n-dimensional q-ary space has

n0+n1(q1)+n2(q1)2++nr(q1)r

elements.

Proof. First we calculate the number of vectors that are a distance 1 from c. These vectors are the ones that differ from c in exactly one location. There are n possible locations and q1 ways to make an entry different. Thus the number of vectors that have a Hamming distance of 1 from c is n(q1). Now let’s calculate the number of vectors that have Hamming distance m from c. There are nm ways in which we can choose m locations to differ from the values of c. For each of these m locations, there are q1 choices for symbols different from the corresponding symbol from c. Hence, there are

nm(q1)m

vectors that have a Hamming distance of m from c. Including the vector c itself, and using the identity n0=1, we get the result:

n0+n1(q1)+n2(q1)2++nr(q1)r.

We may now state the Hamming bound, which is also called the sphere packing bound.

Theorem

Let C be a q-ary (n, M, d) code with d2t+1. Then

Mqnj=0t(nj)(q1)j.

Proof. Around each codeword c we place a Hamming sphere of radius t. Since the minimum distance of the code is d2t+1, these spheres do not overlap. The total number of vectors in all of the Hamming spheres cannot be greater than qn. Thus, we get

(number of codewords)×(number of elements per sphere)=Mj=0t(nj)(q1)jqn.

This yields the desired inequality for M.

An (n, M, d) code with d=2t+1 that satisfies the Hamming bound with equality is called a perfect code. A perfect t-error correcting code is one such that the M Hamming spheres of radius t with centers at the codewords cover the entire space of q-ary n-tuples. The Hamming codes (Section 24.5) and the Golay code G23 (Section 24.6) are perfect. Other examples of perfect codes are the trivial (n, qn, 1) code obtained by taking all n-tuples, and the binary repetition codes of odd length (Exercise 15).

Perfect codes have been studied a lot, and they are interesting from many viewpoints. The complete list of perfect codes is now known. It includes the preceding examples, plus a ternary [11, 6, 5] code constructed by Golay. We leave the reader a caveat. A name like perfect codes might lead one to assume that perfect codes are the best error correcting codes. This, however, is not true, as there are error correcting codes, such as Reed-Solomon codes, that are not perfect codes yet have better error correcting capabilities for certain situations than perfect codes.

24.3.2 Lower Bounds

One of the problems central to the theory of error correcting codes is to find the largest code of a given length and given minimum distance d. This leads to the following definition.

Definition

Let the alphabet A have q elements. Given n and d with dn, the largest M such that an (n, M, d) code exists is denoted Aq(n, d).

We can always find at least one (n, M, d) code: Fix an element a0 of A. Let C be the set of all vectors (a, a, , a, a0, , a0) (with d copies of a and nd copies of a0) with aA. There are q such vectors, and they are at distance d from each other, so we have an (n, q, d) code. This gives the trivial lower bound Aq(n, d)q. We’ll obtain much better bounds later.

It is easy to see that Aq(n, 1)=qn: When a code has minimum distance d=1, we can take the code to be all q-ary n-tuples. At the other extreme, Aq(n, n)=q (Exercise 7).

The following lower bound, known as the Gilbert-Varshamov bound, was discovered in the 1950s.

Theorem

Given n, d with nd, there exists a q-ary (n, M, d) code with

Mqnj=0d1nj(q1)j.

This means that

Aq(n, d)qnj=0d1nj(q1)j.

Proof. Start with a vector c1 and remove all vectors in An (where A is an alphabet with q symbols) that are in a Hamming sphere of radius d1 about that vector. Now choose another vector c2 from those that remain. Since all vectors with distance at most d1 from c1 have been removed, d(c2, c1)d. Now remove all vectors that have distance at most d1 from c2, and choose c3 from those that remain. We cannot have d(c3, c1)d1 or d(c3, c2)d1, since all vectors satisfying these inequalities have been removed. Therefore, d(c3, ci)d for i=1, 2. Continuing in this way, choose c4, c5, , until there are no more vectors.

The selection of a vector removes at most

j=0d1nj(q1)j

vectors from the space. If we have chosen M vectors c1, , cM, then we have removed at most

M j=1d1nj(q1)j

vectors, by the preceding lemma. We can continue until all qn vectors are removed, which means we can continue at least until

M j=1d1nj(q1)jqn.

Therefore, there exists a code {c1, , cM} with M satisfying the preceding inequality.

Since Aq(n, d) is the largest such M, it also satisfies the inequality.

There is one minor technicality that should be mentioned. We actually have constructed an (n, M, e) code with ed. However, by modifying a few entries of c2 if necessary, we can arrange that d(c2, c1)=d. The remaining vectors are then chosen by the above procedure. This produces a code where the minimal distance is exactly d.

If we want to send codewords with n bits over a noisy channel, and there is a probability p that any given bit will be corrupted, then we expect the number of errors to be approximately pn when n is large. Therefore, we need an (n, M, d) code with d>2pn. We therefore need to consider (n, M, d) codes with d/nx>0, for some given x>0. How does this affect M and the code rate?

Here is what happens. Fix q and choose x with 0<x<11/q. The asymptotic Gilbert-Varshamov bound says that there is a sequence of q-ary (n, M, d) codes with n and d/nx such that the code rate approaches a limit Hq(x), where

Hq(x)=1xlogq(q1)+xlogq(x)+(1x)logq(1x).

The graph of H2(x) is as in Figure 24.2. Of course, we would like to have codes with high error correction (that is, high x), and with high code rate (=k/n). The asymptotic result says that there are codes with error correction and code rate good enough to lie arbitrarily close to, or above, the graph.

Figure 24.2 The Graph of H2(x)

A graph of y versus x shows the graph of H subscript 2 left parenthesis x right parenthesis.

The existence of certain sequences of codes having code rate limit strictly larger than Hq(x) (for certain x and q) was proved in 1982 by Tsfasman, Vladut, and Zink using Goppa codes arising from algebraic geometry.

Examples

Consider the binary repetition code C of length 3 with the two vectors (0, 0, 0) and (1, 1, 1). It is a (3, 2, 3) code. The Singleton bound says that 2=M2, so C is an MDS code. The Hamming bound says that

2=M2330+31=2, 

so C is also perfect. The Gilbert-Varshamov bound says that there exists a (3, M, 3) binary code with

M2330+31+32=87, 

which means M2.

The Hamming [7, 4] code has M=16 and d=3, so it is a (7, 16, 3) code. The Singleton bound says that 16=M25, so it is not an MDS code. The Hamming bound says that

16=M2770+71=16, 

so the code is perfect. The Gilbert-Varshamov bound says that there exists a (7, M, 3) code with

M2770+71+72=128294.4, 

so the Hamming code is much better than this lower bound. Codes that have efficient error correction algorithms and also exceed the Gilbert-Varshamov bound are currently relatively rare.

The Hadamard code from Section 24.1 is a binary (because there are two symbols) (32, 64, 16) code. The Singleton bound says that 64=M217, so it is not very sharp in this case. The Hamming bound says that

64=M232j=0732j951.3.

The Gilbert-Varshamov bound says there exists a binary (32, M, 16) code with

M232j=01532j2.3.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.167.195