Binary Golay code

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Extended binary Golay code
BinaryGolayCode.svg
Its generator matrix
Named after Marcel J. E. Golay
Classification
Type Linear block code
Block length 24
Message length 12
Rate 12/24 = 0.5
Distance 8
Alphabet size 2
Notation [24,12,8]_2-code
Perfect binary Golay code
Named after Marcel J. E. Golay
Classification
Type Linear block code
Block length 23
Message length 12
Rate 12/23 ~ 0.522
Distance 7
Alphabet size 2
Notation [23,12,7]_2-code

In mathematics and electronics engineering, a binary Golay code is a type of linear error-correcting code used in digital communications. The binary Golay code, along with the ternary Golay code, has a particularly deep and interesting connection to the theory of finite sporadic groups in mathematics.[1] These codes are named in honor of Marcel J. E. Golay whose 1949 paper [2] introducing them has been called, by E. R. Berlekamp, the "best single published page" in coding theory.[3]

There are two closely related binary Golay codes. The extended binary Golay code, G24 (sometimes just called the "Golay code" in finite group theory) encodes 12 bits of data in a 24-bit word in such a way that any 3-bit errors can be corrected or any 7-bit errors can be detected. The other, the perfect binary Golay code, G23, has codewords of length 23 and is obtained from the extended binary Golay code by deleting one coordinate position (conversely, the extended binary Golay code is obtained from the perfect binary Golay code by adding a parity bit). In standard code notation the codes have parameters [24, 12, 8] and [23, 12, 7], corresponding to the length of the codewords, the dimension of the code, and the minimum Hamming distance between two codewords, respectively.

Mathematical definition

In mathematical terms, the extended binary Golay code, G24 consists of a 12-dimensional subspace W of the space V=F224 of 24-bit words such that any two distinct elements of W differ in at least 4 coordinates. W is called a linear code because it is a vector space.

  • The possible sets of non-zero coordinates in W are called code words. In the extended binary Golay code, all code words have the Hamming weights of 0, 8, 12, 16, or 24. Codewords of weight 8 are called octads; codewords of weght 12 are called dodecads.
  • Up to relabeling coordinates, W is unique.

Two octads share 1's at 0, 2, or 4 coordinates. An octad and a dodecad share 1's at 2, 4, or 6 coordinates.

The perfect binary Golay code, G23 is a perfect code. That is, the spheres of radius three around code words form a partition of the vector space.

The automorphism group of the perfect binary Golay code, G23, is the Mathieu group M_{23}. The automorphism group of the extended binary Golay code is the Mathieu group M_{24}. The other Mathieu groups occur as stabilizers of one or several elements of W.

Octads of the code G24 are elements of the S(5,8,24) Steiner system.

Constructions

  • Lexicographic code: Order the vectors in V lexicographically (i.e., interpret them as unsigned 24-bit binary integers and take the usual ordering). Starting with w1 = 0, define w2, w3, ..., w12 by the rule that wn is the smallest integer which differs from all linear combinations of previous elements in at least eight coordinates. Then W can be defined as the span of w1, ..., w12.
  • Quadratic residue code: Consider the set N of quadratic non-residues (mod 23). This is an 11-element subset of the cyclic group Z/23Z. Consider the translates t+N of this subset. Augment each translate to a 12-element set St by adding an element ∞. Then labeling the basis elements of V by 0, 1, 2, ..., 22, ∞, W can be defined as the span of the words St together with the word consisting of all basis vectors. (The perfect code is obtained by leaving out ∞.)
  • As a Cyclic code: The perfect G23 code can be constructed via the factorization of x^{23}-1 over the binary field GF(2):
x^{23} - 1 = (x-1)(x^{11} + x^9+x^7+x^6+x^5+x+1)(x^{11}+x^{10}+x^6+x^5+x^4+x^2+1).
It is the code generated by \left(x^{11}+x^{10}+x^6+x^5+x^4+x^2+1\right).[4] Either of degree 11 irreducible factors can be used to generate the code.[5]
  • Turyn's construction of 1967, "A Simple Construction of the Binary Golay Code," that starts from the Hamming code of length 8 and does not use the quadratic residues mod 23.[6]
  • From the Steiner System S(5,8,24), consisting of 759 subsets of a 24-set. If one interprets the support of each subset as a 0-1-codeword of length 24 (with Hamming-weight 8), these are the "octads" in the binary Golay code. The entire Golay code can be obtained by repeatedly taking the symmetric differences of subsets, i.e. binary addition. An easier way to write down the Steiner system resp. the octads is the Miracle Octad Generator of R. T. Curtis, that uses a particular 1:1-correspondence between the 35 partitions of an 8-set and the 35 partitions of the finite vector space \mathbb{F}_2^4 into 4 planes. [7] Nowadays often the compact approach of Conway's hexacode, that uses a 4×6 array of square cells, is used.
  • Winning positions in the mathematical game of Mogul: a position in Mogul is a row of 24 coins. Each turn consists of flipping from one to seven coins such that the leftmost of the flipped coins goes from head to tail. The losing positions are those with no legal move. If heads are interpreted as 1 and tails as 0 then moving to a codeword from the extended binary Golay code guarantees it will be possible to force a win.
  • A generator matrix for the binary Golay code is I A, where I is the 12×12 identity matrix, and A is the complement of the adjacency matrix of the icosahedron.

A convenient representation

It is convenient to use the MOG format, with co-ordinates in an array of 4 rows, 6 columns. Addition is taking the symmetric difference. All 6 columns have the same parity, which equals that of the top row.

A partition of the 6 columns into 3 pairs of adjacent ones constitutes a trio. This is a partition into 3 octad sets. A subgroup PSL(2,7) x S3 of a trio subgroup of M24 is useful for generating a basis. PSL(2,7) permutes the octads internally, in parallel. S3 permutes the 3 octads bodily.

The basis begins with octad T:

0 1 1 1 1 1
1 0 0 0 0 0
1 0 0 0 0 0
1 0 0 0 0 0

and 5 similar octads. The sum N of all 6 of these code words consists of all 1's. Adding N to a code word produces its complement.

Griess (p. 59) uses the labeling:

∞ 0 |∞ 0 |∞ 0
3 2 |3 2 |3 2
5 1 |5 1 |5 1
6 4 |6 4 |6 4

PSL(2,7) is naturally the linear fractional group generated by (0123456) and (0∞)(16)(23)(45). The 7-cycle acts on T to give a subspace including also the basis elements

0 1 1 0 1 0
0 0 0 0 0 0
0 1 0 1 0 1
1 1 0 0 0 0

and

0 1 1 0 1 0
0 1 0 1 0 1
1 1 0 0 0 0
0 0 0 0 0 0

The resulting 7-dimensional subspace has a 3-dimensional quotient space upon ignoring the latter 2 octads.

There are 4 other code words of similar structure that complete the basis of 12 code words for this representation of W.

It should be noted that W has a subspace of dimension 4, symmetric under PSL(2,7) x S3, spanned by N and 3 dodecads formed of subsets {0,3,5,6}, {0,1,4,6}, and {0,1,2,5}.

Practical applications of Golay codes

NASA deep space missions

The Voyager 1 and 2 spacecraft needed to transmit hundreds of color pictures of Jupiter and Saturn in their 1979, 1980, and 1981 fly-by's within a constrained telecommunications bandwidth.

  • Color image transmission required three times the amount of data as black and white images, so the Hadamard code that was used to transmit the black and white images was switched to the Golay (24,12,8) code. [8]
  • This Golay code is only triple-error correcting, but it could be transmitted at a much higher data rate than the Hadamard code that was used during the Mariner mission.

Radio communications

The new[when?] American government standards for automatic link establishment in high frequency radio systems specify the use of an extended (24,12) Golay block code for forward error correction (FEC).

  • The Extended (24,12) Golay Code specified is a (24,12) block code.
  • This code encodes 12 data bits to produce 24-bit code words.
  • It is furthermore a systematic code, meaning that the 12 data bits are present in unchanged form in the code word.

The minimum Hamming distance between any two code words (the number of bits by which any pair of code words differs) is eight.

See also

Notes

  1. See Thompson 1983
  2. Golay (1949)
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Roman 1992, p. 324 Example 7.4.3
  5. Pless 1998, p. 114
  6. Turyn 1967, Section VI
  7. http://finitegeometry.org/sc/24/MOG.html
  8. http://www-math.ucdenver.edu/~wcherowi/courses/m7409/mariner9talk.pdf

References

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.