40.06.08 · combinatorics / design-coding-theory

Cyclic Codes: BCH, Reed-Solomon, Reed-Muller, and Assmus-Mattson

shipped3 tiersLean: none

Anchor (Master): van Lint 1999 *Introduction to Coding Theory* 3e (Springer GTM 86) Ch. 6-7, 9 (cyclic codes, BCH bound, Reed-Solomon MDS optimality, Reed-Muller and majority-logic decoding, Assmus-Mattson and the 5-designs); MacWilliams-Sloane 1977 *The Theory of Error-Correcting Codes* (North-Holland) Ch. 7-9, 13-15 (cyclic codes, BCH, Reed-Muller, generalized Reed-Solomon, the Assmus-Mattson theorem); Bose-Ray-Chaudhuri 1960 *Information and Control* 3; Hocquenghem 1959 *Chiffres* 2; Reed-Solomon 1960 *J. SIAM* 8; Reed 1954 *IRE Trans.* 4 and Muller 1954 *IRE Trans.* 3; Assmus-Mattson 1969 *J. Combin. Theory* 6

Intuition Beginner

A code is a chosen collection of allowed strings, spread far apart so that a few flipped symbols cannot carry one allowed string all the way to another. Most codes are just lists with no further pattern. A cyclic code adds one extra rule of remarkable power: if a string is allowed, then so is the string you get by sliding every symbol one step to the right and wrapping the last symbol around to the front. Rotate a codeword and you land on another codeword. This single symmetry, repeated, ties the whole code together and makes it cheap to build and to decode in real hardware.

The trick that unlocks the symmetry is to stop thinking of a string of length as a flat list and instead read it as the coefficients of a polynomial. The string becomes . Sliding the symbols one step and wrapping around turns out to be the same as multiplying that polynomial by and folding back to . So a cyclic code is a family of polynomials closed under multiplication by , and one special polynomial — the generator — divides every codeword and so describes the whole code at a glance.

Why care? Because choosing the generator's roots lets you order up a code to spec. Want to correct three errors? Plant a run of related roots and a clean count guarantees the codewords stay far apart. This is how the codes on a scratched compact disc, in a QR square, and on a probe past Pluto are made: Reed-Solomon and BCH codes, both cyclic, both built by choosing roots.

Visual Beginner

Picture a codeword as beads on a ring rather than on a straight wire. A cyclic shift just rotates the ring by one bead; the cyclic-code rule says every rotation of an allowed pattern is again allowed. So codewords come in whole rotation families, and the code is built from these spinning necklaces rather than from isolated strings.

length- string as a polynomial shift right by one (wrap around)
which is
which is
which is (the wraps to )

The table shows the engine: shifting a string is multiplying its polynomial by , and when a power reaches it folds back to . A cyclic code is exactly a set of polynomials you can multiply by and stay inside.

Worked example Beginner

Build a small cyclic code of length over the two-symbol alphabet by hand. Start from the generator polynomial , a divisor of . Codewords are the multiples of that still have length , namely times a message polynomial of degree at most .

Step 1. Read off the generator as a string. The polynomial has coefficient at positions , , and , so is the string .

Step 2. Make a codeword by multiplying. Take the message , the string . Multiply: , since in this alphabet. That is the string .

Step 3. Check the cyclic-shift rule. Slide right by one with wraparound to get . As a polynomial this is , which equals folded — and it is again a multiple of , so it is another codeword.

Step 4. Count the codewords. The message has free coefficients, so there are codewords. This is the Hamming code in cyclic dress.

What this tells us: one short generator polynomial, by multiplication alone, produces an entire code that is automatically closed under rotation. Picking a different generator with cleverly chosen roots is how engineers dial in exactly how many errors the code will fix.

Check your understanding Beginner

Formal definition Intermediate+

Throughout, is the finite field with elements (its structure is developed in 21.02.01; here it is applied), a prime power, and so that has distinct roots in a splitting field. Words of length are identified with polynomials of degree below via , inside the quotient ring . The Hamming metric and the parameters are those of 40.06.06.

Definition (cyclic code). A linear code is cyclic if it is closed under the cyclic shift . Under the identification above, this shift is multiplication by in , so is cyclic exactly when is an ideal of .

Definition (generator and check polynomials). Since is a principal ideal ring, every cyclic code is generated by a unique monic divisor of least degree, the generator polynomial; then , , and a generator matrix has rows the shifts with . The check polynomial is ; a word lies in iff , and is the cyclic code with generator the reciprocal of .

Definition (defining set). Fix a primitive -th root of unity in an extension (so is the multiplicative order of modulo ). The defining set of is $$ T = { i \in \mathbb{Z}_n : g(\alpha^i) = 0 }, $$ the exponents of the roots of among the powers of . Because has coefficients in , the set is a union of -cyclotomic cosets , and iff for all .

Definition (BCH and Reed-Solomon codes). The BCH code of length and designed distance over is the cyclic code whose defining set contains a run of consecutive exponents ; equivalently is the least-degree polynomial over vanishing at , namely the least common multiple of their minimal polynomials. It is narrow-sense when and primitive when . A Reed-Solomon code is the special case , a primitive element of itself (): then each minimal polynomial is linear, has degree , and the code is .

Definition (Reed-Muller code). For the Reed-Muller code is the binary code of length obtained by evaluating every Boolean polynomial in variables of degree at most at all points of : $$ \mathrm{RM}(r,m) = { (f(v))_{v \in \mathbb{F}_2^m} : f \in \mathbb{F}2[x_1,\dots,x_m],\ \deg f \le r }, $$ with dimension $\sum{i=0}^{r} \binom{m}{i}2^{m-r}$.

Counterexamples to common slips Intermediate+

  • The generator is not any divisor — it is the monic divisor of least degree generating the ideal. Two different divisors of generate different codes; the dimension is , so a larger means a smaller code.

  • The BCH bound uses a run of consecutive exponents, not just roots. Any roots scattered arbitrarily give no distance guarantee; the consecutive-run hypothesis is what powers the Vandermonde argument. Conversely the true minimum distance can exceed the designed distance .

  • Reed-Solomon needs . Because the evaluation points are field elements (and the roots of the generator are powers of a primitive element of itself), for the cyclic form and for the extended/evaluation form; you cannot have a length- Reed-Solomon code over — it lives over .

  • is graded by degree, not by a single monomial. The codewords come from all polynomials up to degree , so is the repetition code, is the whole space, and is the even-weight (parity-check) code.

Key theorem with proof Intermediate+

The structural engine of designed-distance codes is the BCH bound: a run of consecutive zeros of the generator forces a lower bound on minimum distance, proved by a Vandermonde determinant. From it the Reed-Solomon MDS optimality follows at once.

Theorem (BCH bound). Let be a cyclic code of length over with defining set , and suppose contains consecutive exponents . Then the minimum distance satisfies [Bose-Ray-Chaudhuri 1960].

Proof. Let be the fixed primitive -th root of unity, so are roots of every codeword polynomial. Let be a nonzero codeword and write its support with ; the nonzero coefficients are . The condition for reads $$ \sum_{s=1}^{w} c_{j_s}, (\alpha^{j_s})^{,b+\ell} = 0, \qquad \ell = 0, 1, \dots, \delta - 2. $$ Set and ; the are distinct powers of , and each . The equations become for . Suppose, for contradiction, that . Take the first of these equations (); in matrix form they are , where is a Vandermonde matrix on the distinct nodes . Its determinant is , so is invertible and , contradicting . Hence , and since is linear .

Corollary (Reed-Solomon codes are MDS). The Reed-Solomon code with and generator is an code meeting the Singleton bound [Reed-Solomon 1960]. Here , so , and the defining set is the consecutive run , giving by the BCH bound. The Singleton bound of 40.06.06 gives . The two inequalities force , so the code is maximum distance separable.

Bridge. The BCH bound builds toward every designed-distance construction by converting "plant consecutive roots" into the certificate , and it appears again in the master tier as the spectral skeleton of Reed-Solomon decoding, where the same Vandermonde structure becomes the key equation of Berlekamp-Massey. The foundational reason a consecutive run works — and scattered roots do not — is that consecutiveness is exactly the hypothesis making the coefficient matrix a Vandermonde on distinct nodes, so non-vanishing of is the whole proof. This is dual to the Singleton bound of 40.06.06: Singleton caps from above by the rank of a parity-check matrix, the BCH bound props up from below by the rank of a Vandermonde, and putting these together pins Reed-Solomon to the MDS boundary where the two meet. The central insight, that a code's distance is read off the zeros of its generator rather than its coefficients, generalises into the design-theoretic Assmus-Mattson theorem, where the placement of dual zeros below the redundancy forces the fixed-weight codewords into -designs.

Exercises Intermediate+

Advanced results Master

The cyclic framework unifies the named families and culminates in a design-theoretic statement. The results below trace the BCH-as-subfield-subcode-of-Reed-Solomon picture, the affine-geometric face of Reed-Muller, majority-logic decoding, and the Assmus-Mattson theorem that turns weight classes into -designs.

Theorem 1 (BCH is a subfield subcode of Reed-Solomon). Let be the Reed-Solomon code over with the same length and the same consecutive defining set . The BCH code over with that designed distance is exactly the subfield subcode $$ \mathrm{BCH}q = \mathrm{RS}{q^m} \cap \mathbb{F}_q^n, $$ the codewords of the Reed-Solomon code all of whose coordinates already lie in [MacWilliams-Sloane Ch. 9]. The minimum distance of is at least that of , namely , recovering the BCH bound; the dimension drops because the subfield constraint is linear conditions per Reed-Solomon check, encoded by the cyclotomic cosets. This is the conceptual home of the BCH bound: a BCH code inherits its distance from an ambient MDS code and pays for the smaller alphabet in dimension.

Theorem 2 (Reed-Muller as affine geometry and as a punctured-cyclic code). The codewords of of minimum weight are exactly the indicator vectors of the -dimensional affine subspaces of , the flats of the affine geometry [MacWilliams-Sloane Ch. 13]. Punctured at one coordinate, minus the all-zero point becomes a cyclic code of length whose defining set is described by the -adic weights of exponents (the Kasami-Lin-Peterson characterisation): is a zero iff the binary digit sum of is less than . So Reed-Muller codes are cyclic up to puncturing, and the affine-geometry codes of points-versus-flats incidence realise them combinatorially.

Theorem 3 (Reed's majority-logic decoding). decodes by majority logic in rounds [Reed 1954]. Each degree- monomial coefficient is recovered by a set of disjoint parity-check sums (one per coset of the complementary subspace), each an unbiased estimate of that coefficient; a majority vote over the sums corrects up to errors, half the minimum distance. Subtracting the recovered top-degree part reduces to , and the rounds cascade down to the constant term. The decoder is fully parallel and was used on the Mariner deep-space probes (the code ).

Theorem 4 (generalized Reed-Solomon and the evaluation form). Fix distinct and nonzero multipliers . The generalized Reed-Solomon code is , an MDS code for any [Reed-Solomon 1960]. Its dual is again a GRS code (with multipliers from the Lagrange/derivative weights of the ), so the GRS family is closed under duality, and the narrow-sense cyclic Reed-Solomon code is the case , . The evaluation form makes the erasure-recovery property of 40.06.06 manifest: any coordinates determine by Lagrange interpolation.

Theorem 5 (Assmus-Mattson theorem). Let be an code with dual of minimum distance . Fix , and let be the number of nonzero weights of in the range . If , then for every weight with , the supports of the weight- codewords of form a -design (a - design for a suitable ), and the same holds for in the analogous range [Assmus-Mattson 1969]. Applied to the extended binary Golay code , whose dual is itself and whose weights are : taking , the dual weights in are , so , and the weight- codewords (the octads) form a - design — the Steiner system of 40.06.04. The ternary yields the same way.

Synthesis. Putting these together, the algebra of zeros, the geometry of flats, and the combinatorics of designs are three readings of one object pinned by the generator polynomial. The foundational reason Reed-Solomon sits exactly on the MDS boundary is that its zeros form a maximal consecutive run, so the BCH lower bound and the Singleton upper bound of 40.06.06 meet — this is exactly the rank-meets-Vandermonde coincidence of the Key theorem, and every BCH code is the shadow of such an MDS code over a larger field, inheriting distance and paying in dimension. This is dual, in the precise MacWilliams sense of 40.06.06, to the weight-enumerator picture: the Assmus-Mattson hypothesis is a statement about how few nonzero dual weights fall below the redundancy, and the central insight is that this scarcity forces the Pless power moments to be independent of which -subset one fixes, which is precisely the defining balance of a -design. The bridge from codes to designs runs both ways — the Golay codes produce the Steiner systems and of 40.06.04, and those designs reconstruct the codes — so the perfect-code arithmetic of 40.06.07, the design-graph dictionary of 40.06.09, and the Hadamard codes of 40.06.05 are corners of a single design-code-graph triangle, and Reed-Muller's first-order code is exactly the Hadamard code that sits on the triangle's coding vertex.

Full proof set Master

Proposition 1 (structure of cyclic codes). The ideals of are exactly the principal ideals with a monic divisor of ; the corresponding code has dimension , and with cyclic.

Proof. is a quotient of the principal ideal domain , hence every ideal is the image of an ideal of , i.e. with monic of least degree in the ideal. The set with is -linearly independent (distinct leading degrees below ) and spans the ideal modulo , so . For the dual, with the map has kernel and image of dimension , and a coordinate computation identifies with , where is the reciprocal of ; thus is cyclic of dimension , and as in the rank-nullity statement of 40.06.06.

Proposition 2 (BCH bound via Vandermonde). A cyclic code whose defining set contains consecutive exponents has .

Proof. As in the Key theorem, a nonzero codeword of weight with support satisfies for , where are the consecutive zeros. Writing (distinct) and (nonzero), the first equations form a Vandermonde system with . If the system has enough equations to force , contradicting ; hence .

Proposition 3 (Reed-Solomon MDS and dual). The Reed-Solomon code () is MDS, and its dual is a generalized Reed-Solomon code, hence also MDS.

Proof. In the evaluation form a nonzero of degree has at most roots among the distinct , so at least coordinates are nonzero; thus , and Singleton of 40.06.06 gives , so and is MDS. For the dual, the bilinear form pairs with the evaluations of degree- polynomials against the Lagrange-derivative weights : one checks whenever and , because for (a Lagrange-interpolation identity for the coefficient of the top power). Hence , a GRS code with multipliers , MDS of distance .

Proposition 4 (Reed-Muller dimension, distance, and duality). , , and .

Proof. The evaluation map sends the squarefree monomials of degree to linearly independent vectors (a Boolean function on has a unique multilinear representative, since ), giving the dimension. The distance is by the induction of Exercise 7. For duality, take of degree and of degree ; the product has degree , so the sum of over all of vanishes (a Boolean polynomial of degree has even weight, as the top monomial is the only odd-weight one). Hence , so . The dimensions match: by the symmetry , equal to . Equality of dimensions forces .

Proposition 5 (Assmus-Mattson theorem). With , , and , the weight- supports of form -designs for all .

Proof. Fix a -subset of coordinates and let count weight- codewords whose support contains . The Pless power-moment identities express, for each , the symmetric sums in terms of the dual weight distribution for . The shortened code (codewords zero on ) and the punctured dual relate the local counts to the global dual spectrum through the MacWilliams transform of 40.06.06. The hypothesis means the dual has at most nonzero weights below ; this is exactly the number of free parameters in the linear system whose unknowns are the and whose equations are the power moments for . The system then has a unique solution independent of — the count depends only on , not on which -set is chosen. A weight- class in which every -subset lies in the same number of supports is, by definition, a - design. The dual statement follows by symmetry of the hypothesis.

Connections Master

  • The co-produced unit 40.06.07 on perfect and Golay codes constructs both Golay codes as cyclic (quadratic-residue) codes — the binary from a degree- factor of over , the ternary from a factor of over — exactly the generator-polynomial mechanism of this unit. The Assmus-Mattson theorem proved here is what turns the Golay weight enumerators computed there into the -designs; the two units share the same codes seen from the cyclic-structure and the perfect-packing sides.

  • The Steiner systems of 40.06.04 are the output of the Assmus-Mattson theorem applied to the Golay codes: the octads form and the hexads form . The foundational reason a code can carry a -design is the dual-weight scarcity hypothesis — few nonzero dual weights below the redundancy — and this is exactly the condition that forces the fixed-weight supports into the balanced incidence structure that 40.06.04 studies axiomatically.

  • The arithmetic of the alphabet is the finite-field theory of 21.02.01: the defining set of a cyclic code is a union of -cyclotomic cosets because the generator has coefficients in while its roots live in , and Reed-Solomon codes evaluate polynomials at the primitive element of itself, so the length is bounded by . This is dual to the additive-character structure used in 40.06.06 for the MacWilliams identity, on which the Assmus-Mattson proof rests.

  • The first-order Reed-Muller code is the Hadamard / biorthogonal code of 40.06.05: its codewords are the rows of a Hadamard matrix and their complements, with all nonzero weights , so the Paley-Hadamard constructions there and the affine-geometry codes here describe the same equidistant object. Together with the strongly regular graphs of 40.06.09, this closes the design-code-graph triangle that organises the whole chapter.

Historical & philosophical context Master

Cyclic codes crystallized in the late 1950s once Eugene Prange recast codes as ideals in , making the generator polynomial the central object. The multiple-error-correcting family was found independently by Alexis Hocquenghem in 1959 [MacWilliams-Sloane Ch. 9] and by Raj Chandra Bose and Dwijendra Kumar Ray-Chaudhuri in 1960 [Bose-Ray-Chaudhuri 1960]; their initials name the BCH codes, and the BCH bound — a consecutive run of zeros forces a distance — is the construction's engine.

Irving Reed and Gustave Solomon published their polynomial codes in 1960 [Reed-Solomon 1960], a four-page paper in the Journal of the SIAM defining codes by evaluating low-degree polynomials over a finite field. The maximum-distance-separable optimality made them the workhorse of digital storage and transmission: compact discs, DVDs, QR codes, RAID arrays, and the Voyager probes all carry Reed-Solomon codes. The earlier Reed-Muller codes came from David Muller's 1954 Boolean-function construction [Muller 1954] and Irving Reed's companion 1954 majority-logic decoder [Reed 1954]; the first-order code flew on Mariner 9 to return the first close images of Mars.

The design-theoretic capstone is the Assmus-Mattson theorem of Edward Assmus and Harold Mattson in 1969 [Assmus-Mattson 1969], which gave a purely coding-theoretic sufficient condition for the fixed-weight codewords to form -designs, recovering the Mathieu -designs from the Golay codes without group theory. The theorem tied error-correcting codes to the design theory of 40.06.04 and to the sporadic simple groups, and remains a primary source of -designs with large .

Bibliography Master

@article{hocquenghem1959,
  author  = {Hocquenghem, Alexis},
  title   = {Codes correcteurs d'erreurs},
  journal = {Chiffres},
  volume  = {2},
  year    = {1959},
  pages   = {147--156}
}

@article{boseraychaudhuri1960,
  author  = {Bose, Raj C. and Ray-Chaudhuri, Dwijendra K.},
  title   = {On a class of error correcting binary group codes},
  journal = {Information and Control},
  volume  = {3},
  number  = {1},
  year    = {1960},
  pages   = {68--79}
}

@article{reedsolomon1960,
  author  = {Reed, Irving S. and Solomon, Gustave},
  title   = {Polynomial codes over certain finite fields},
  journal = {Journal of the Society for Industrial and Applied Mathematics},
  volume  = {8},
  number  = {2},
  year    = {1960},
  pages   = {300--304}
}

@article{reed1954,
  author  = {Reed, Irving S.},
  title   = {A class of multiple-error-correcting codes and the decoding scheme},
  journal = {IRE Transactions on Information Theory},
  volume  = {4},
  number  = {4},
  year    = {1954},
  pages   = {38--49}
}

@article{muller1954,
  author  = {Muller, David E.},
  title   = {Application of Boolean algebra to switching circuit design and to error detection},
  journal = {IRE Transactions on Electronic Computers},
  volume  = {3},
  number  = {3},
  year    = {1954},
  pages   = {6--12}
}

@article{assmusmattson1969,
  author  = {Assmus, Edward F. and Mattson, Harold F.},
  title   = {New 5-designs},
  journal = {Journal of Combinatorial Theory},
  volume  = {6},
  number  = {2},
  year    = {1969},
  pages   = {122--151}
}

@book{vanlint1999coding,
  author    = {van Lint, Jacobus H.},
  title     = {Introduction to Coding Theory},
  series    = {Graduate Texts in Mathematics},
  volume    = {86},
  edition   = {3rd},
  publisher = {Springer},
  year      = {1999}
}

@book{macwilliamssloane1977,
  author    = {MacWilliams, F. Jessie and Sloane, Neil J. A.},
  title     = {The Theory of Error-Correcting Codes},
  publisher = {North-Holland},
  year      = {1977}
}

@book{vanlintwilson2001,
  author    = {van Lint, Jacobus H. and Wilson, Richard M.},
  title     = {A Course in Combinatorics},
  edition   = {2nd},
  publisher = {Cambridge University Press},
  year      = {2001}
}

@article{prange1957,
  author  = {Prange, Eugene},
  title   = {Cyclic error-correcting codes in two symbols},
  journal = {Air Force Cambridge Research Center Technical Report AFCRC-TN-57-103},
  year    = {1957}
}