This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: 48 Chapter 4 Hamming Codes In the late 1940’s Claude Shannon was developing information theory and cod ing as a mathematical model for communication. At the same time, Richard Hamming, a colleague of Shannon’s at Bell Laboratories, found a need for error correction in his work on computers. Parity checking was already being used to detect errors in the calculations of the relaybased computers of the day, and Hamming realized that a more sophisticated pattern of parity checking al lowed the correction of single errors along with the detection of double errors. The codes that Hamming devised, the singleerrorcorrecting binary Hamming codes and their singleerrorcorrecting, doubleerrordetecting extended versions marked the beginning of coding theory. These codes remain important to this day, for theoretical and practical reasons as well as historical. 4.1 Basics Denote by L 3 the check matrix that we have been using to describe the [7 , 4] Hamming code: L 3 = 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 It has among its columns each nonzero triple from F 3 2 exactly once. From this and Lemma 3.1.12, we were able to prove that the [7 , 4] Hamming code has minimum distance 3. This suggests a general method for building binary Hamming codes. For any r , construct a binary r × 2 r 1 matrix H such that each nonzero binary rtuple occurs exactly once as a column of H . Any code with such a check matrix H is a binary Hamming code of redundancy binary Hamming code r , denoted Ham r (2). Thus the [7 , 4] code is a Hamming code Ham 3 (2). Each binary Hamming code has minimum weight and distance 3, since as before there are no columns and no pair of identical columns. That is, no pair of columns is linearly dependent, while any two columns sum to a third column, giving a triple of linearly dependent columns. Lemma 3.1.12 again applies. 49 50 CHAPTER 4. HAMMING CODES As defined, any code that is equivalent to a binary Hamming code is itself a Hamming code, since any permutation of coordinate positions corresponds to a permutation of the columns of the associated check matrix. The new check matrix is still a census of the nonzero rtuples. Different codes and check matrices may be selected to suit different purposes. Examples. The following are check matrices for two [15 , 11] binary Hamming codes Ham 4 (2): 2 6 6 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 7 7 5 2 6 6 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 7 7 5 The first is the check matrix for a code which has a generator matrix in standard form (see page 35 and Problem 4.1.9 below). The second matrix checks a code which has no generator in standard form, since, for instance, (000000000001111) is a codeword....
View
Full Document
 Spring '11
 NA
 Coding theory, Hamming Code

Click to edit the document details