Represent a word in the Hamming space by the polynomial . A cyclic code is a linear code invariant under the cyclic coordinate shift . Under this identification the shift is multiplication by modulo . A shift-invariant vector subspace is closed under multiplication by every polynomial, since such multiplication is a linear combination of shifts. It is therefore an ideal of
Conversely every ideal of is a vector subspace closed under multiplication by , hence a cyclic code. Invariance means equality under the shift, since applying it times is the identity.
Let be the inverse image of the code ideal under the quotient map . It contains and is nonzero. Choose a nonzero element of of smallest degree and scale it to a monic polynomial . For any , polynomial division gives with . Since , minimality forces . Thus and in particular
This is the required generator polynomial of a cyclic code; the divisibility direction in the printed formula is reversed. The quotient-ring modulus is , with denoting the multiplicative identity of the finite field. If , every codeword has a unique representative with . Indeed reduction of modulo gives this form, and two such products cannot differ by a nonzero multiple of because their difference has degree less than . Therefore
For the zero code the convention is and this basis is empty; for the full word space .
The zeros of a cyclic code are the polynomial roots of in a splitting field of . Suppose first that the characteristic of does not divide . The formal derivative of is , which has no common root with ; all roots of are therefore simple. If they are , then is equivalent to for all . A root-evaluation parity-check matrix of a cyclic code, written with checks as rows, is consequently
Its entries may lie in , rather than in the original finite field. To obtain a parity-check matrix over , choose a basis of over and replace each equation by the equations for all of its field coordinates. The resulting matrix has the same kernel , hence rank ; retain any independent rows. More economically, choose one root from each Frobenius conjugate orbit. For , , so checking one representative checks its whole orbit. Expanding that representative's equation in a basis of gives precisely the number of checks equal to its orbit length.
No coprimality hypothesis is stated in the question, so the repeated-root cyclic code case must also be distinguished. Distinct roots alone cannot determine these codes: in , the generators and have the same zero, but generate codes of dimensions one and zero. In general write in . The correct checks are
using Hasse derivatives. Indeed , so vanishing of the first coefficients is equivalent to divisibility by . A repeated-root parity-check matrix over thus has rows indexed by and entries
As before, expand to equations over and retain independent rows. The ordinary root-evaluation matrix is exactly the special case .
For the binary Hamming code, let , , and let generate the multiplicative group of a finite field . This is possible because that group is a cyclic group. Choose a basis of over . The coordinate columns of then run through every nonzero vector of exactly once. They are a parity-check matrix for a Hamming code, possibly after permuting the columns of a given Hamming matrix. Thus
is equivalent to the Hamming code. Multiplication by modulo multiplies its evaluation at by , so is a cyclic code.
The parity-check matrix has rank because its columns contain a basis. It has no zero column or repeated column, so no nonzero word of weight one or two is in its kernel. Two distinct nonzero columns have a nonzero sum, which is a third distinct column; these three columns give a word of weight three. Hence has parameters .
A polynomial over vanishes at exactly when it is divisible by its minimal polynomial of an algebraic element . The finite-field Frobenius automorphism gives all conjugates of as . Their orbit length is : if with , then the order of would divide , which is a smaller positive integer. Therefore the Hamming code as a cyclic code has
The last exponent here is . The printed exponent would give , which is not a root of the degree- irreducible minimal polynomial of an algebraic element for .
Use binary codes, so the polynomial modulus is in . A cyclic code is a linear subspace of invariant under the cyclic shift . Identify a word with . Addition is coefficientwise, and multiplication is polynomial multiplication reduced modulo . In the quotient ring
multiplication by is exactly that cyclic shift. Closure under this map and linear combinations gives closure under multiplication by every polynomial, so a cyclic code is an ideal of . Conversely, an ideal is a linear subspace closed under multiplication by , proving the correspondence.
Take the inverse image of in . This is an ideal containing . The polynomial division algorithm shows directly that it has a unique monic generator : choose a nonzero polynomial of least polynomial degree and divide any other member by it; the remainder is in the ideal and has smaller polynomial degree, so must vanish. If two monic generators existed, mutual divisibility would make them equal. Because belongs to the ideal, . Conversely every monic divisor of defines an ideal of . Thus the generator polynomial of a cyclic code satisfies
For a nonzero code, is its nonzero polynomial representative of least polynomial degree. For the zero code, use , whose residue in is zero; this standard convention covers that endpoint despite its having no nonzero codeword.
Let and , and put . Every codeword has a unique representation with : dividing an arbitrary multiplier by does not change its product with modulo . The words have distinct leading degrees below and are independent. Consequently
The statement remains valid for the zero code, with an empty basis, and the full code, with .
For length 16, characteristic two gives . Its only monic divisors are for . Hence all binary cyclic codes of length a power of two in this case are
There are exactly 17 codes, forming the chain . This is a repeated-root cyclic code situation, so it would be incorrect to count just square-free factors. Their canonical check polynomials of a cyclic code are . An explicit expansion of each generator is .
The canonical check polynomial of a cyclic code is
Indeed means . Since , cancellation in the polynomial ring gives , exactly code membership. No coprimality of and is needed, including for length 16.
There is a normalization qualification in the printed definition. The kernel condition alone does not force the supplied polynomial to equal this canonical . If , write and with . Then holds exactly when , so its kernel is the ideal generated by . Therefore
Equivalently with . Requiring the monic divisor of selects the canonical check polynomial of a cyclic code. For example gives the same kernel as , since is a unit modulo , but is generally a different polynomial. Given any permitted , taking recovers the canonical .
To construct a parity-check matrix, write the canonical and its reciprocal polynomial . Take coefficient vectors, padded to length , of
as the rows of . Here because , so these rows have successive leading degrees and are independent. For a word , row has dot product , the coefficient of in the ordinary product . If , then with . This product has no terms in degrees , so . The kernel of has dimension , the same as , proving . This proves the reciprocal-polynomial parity-check matrix construction and identifies its rows as a basis for the dual of a cyclic code.
Alternatively, a supplied check polynomial of a cyclic code reduced modulo , , gives the polynomial multiplication parity-check matrix
This circulant matrix represents multiplication by modulo , so its kernel is and its matrix rank is . Selecting independent rows yields a rank- parity-check matrix even without initially normalizing the supplied polynomial.
The syndrome labels the coset . Indeed if and only if , equivalently . There are cosets, each with words, and the syndrome classification of code cosets gives a bijection between them and . If is a transmitted codeword plus an error, then : the syndrome determines the error coset. Choosing a minimum-weight coset leader and subtracting it performs minimum-distance decoding. The error itself need not be uniquely identified, but it is unique when its weight is at most , since the corresponding error-correction balls are disjoint.
For the repetition code, the nonzero codeword is the all-ones word, so
Their product is , and the generator polynomial degree gives dimension one. For the single parity-check code, membership is , equivalent to divisibility by . Thus
Its dimension is ; it is the even-weight code.
Finally, factor the binary length-seven modulus:
A standard cyclic realization of the Hamming code of length seven uses
Its dimension is four. The reciprocal-check construction gives
Its columns are exactly the seven distinct nonzero vectors of , so no word of weight one or two is in its kernel. The generator itself has weight three, so the minimum Hamming distance is exactly three; this is the Hamming code. Reversing the cyclic coordinate order gives the equally valid reciprocal choice
The polynomial answer therefore depends on the cyclic coordinate convention, while the resulting codes are equivalent.
Zero of a cyclic code 2026-10-14
A zero of a cyclic code is a polynomial root of its generator polynomial, taken in a splitting field. Every codeword, represented as a polynomial, vanishes there. For a repeated-root cyclic code, the multiplicity of a root must also be retained: ordinary evaluations alone need not determine the code.