Binary Golay 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. These codes are named in honor of Marcel J. E. Golay whose 1949 paper introducing them has been called, by E. R. Berlekamp, the "best single published page" in coding theory.
There are two closely related binary Golay codes. The extended binary Golay code, G24 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. In standard coding notation the codes have parameters and , 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 linear subspace W of the space of 24-bit words such that any two distinct elements of W differ in at least 8 coordinates. W is called a linear code because it is a vector space. In all, W comprises elements.
The 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. G23 is a 12-dimensional subspace of the space F223.
The automorphism group of the perfect binary Golay code, G23, is the Mathieu group. The automorphism group of the extended binary Golay code is the Mathieu group, of order. is transitive on octads and on dodecads. The other Mathieu groups occur as stabilizers of one or several elements of W.

Constructions

It is convenient to use the "Miracle Octad Generator" 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, the projective special linear group PSL x S3 of a trio subgroup of M24 is useful for generating a basis. PSL permutes the octads internally, in parallel. S3 permutes the 3 octads bodily.
The basis begins with octad T:
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 uses the labeling:
PSL is naturally the linear fractional group generated by and. The 7-cycle acts on T to give a subspace including also the basis elements
and
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.
W has a subspace of dimension 4, symmetric under PSL x S3, spanned by N and 3 dodecads formed of subsets,, and.

Practical applications of Golay codes

NASA deep space missions

Error correction was vital to data transmission in the Voyager 1 and 2 spacecraft particularly because memory constraints dictated offloading data virtually instantly leaving no second chances. Hundreds of color pictures of Jupiter and Saturn in their 1979, 1980, and 1981 fly-bys would be transmitted within a constrained telecommunications bandwidth. Hence Golay encoding was utilised. 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 code. 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 MIL-STD-188 American military standards for automatic link establishment in high frequency radio systems specify the use of an extended Golay code for forward error correction.