## Description

A \(q\)-ary code of length \(n\) is cyclic if, for each codeword \(c_1 c_2 \cdots c_n\), the cyclically shifted string \(c_n c_1 \cdots c_{n-1}\) is also a codeword. A cyclic code is called primitive when \(n=q^r-1\) for some \(r\geq 2\). A shortened cyclic code is obtained from a cyclic code by taking only codewords with the first \(j\) zero entries, and deleting those zeroes.

### Cyclic-to-polynomial correspondence

Cyclic-to-polynomial correspondence: Cyclic linear \(q\)-ary codes and their properties can be naturally formulated using the theory of polynomials. Codewords \(c_1 c_2 \cdots c_n\) of a cyclic \(q\)-ary code can be thought of as coefficients in a polynomial \(c_1+c_2 x+\cdots+c_n x^{n-1}\) in the set of polynomials with \(q\)-ary coefficients, \(\mathbb{F}_q[x]\) with \(\mathbb{F}_q=GF(q)\). Polynomials corresponding to codewords of a linear cyclic code form an ideal (i.e., are closed under multiplication and addition) in the ring \(\mathbb{F}_q[x]/(x^n-1)\) (i.e., the set of equivalence classes of polynomials congruent modulo \(x^n-1\)). Multiplication of a codeword polynomial \(c(x)\) by \(x\) in such a ring corresponds to a cyclic shift of the corresponding codeword string.

Codeword polynomials of a cyclic code can be generated, via multiplication, by a generator polynomial \(g(x)\). A particular generator polynomial \(e(x)\) has the additional property of being idempotent, i.e., \(e(x)^2=e(x)\). Given a generator polynomial, the corresponding check polynomial \(h(x)=(x^n-1)/g(x)\) yields zero when multiplying a codeword polynomial. Its coefficients correspond to the code's parity check matrix.

Since the generator polynomial \(g(x)\) is a polynomial over \(GF(q)\), it can be factorized over some potentially larger splitting field (just like \(x^2+1\) can be factorized over the complex numbers but not the reals). Whenever \(q\) and \(n\) are relatively prime, cyclic codes can also be defined in terms of roots of \(g(x)\). Such roots are called zeroes of the code, and they are all powers of a primitive \(n\)th root of unity because \(g(x)\) is a divisor of \(x^n-1\). Since the generator polynomial generates all codeword polynomials \(c(x)\) by multiplication by \(x\), its zeroes are also zeroes of those polynomials.

## Protection

## Decoding

## Notes

## Parents

- Linear \(q\)-ary code
- Cyclic code
- Group-algebra code — A length-\(n\) cyclic \(q\)-ary linear code is an abelian group-algebra code for the cyclic group with \(n\) elements \( \mathbb{Z}_n \).

## Children

- Cyclic linear binary code
- Bose–Chaudhuri–Hocquenghem (BCH) code
- \(q\)-ary duadic code
- \(q\)-ary parity-check code — Since permutations coordinate sums, the cyclic permutation of an SPC codeword is another codeword. The generator polynomial of the code is \(x-1\).
- \(q\)-ary repetition code — The \(q\)-ary repetition code is cyclic with generator polynomial \(1+x+\cdots+x^{n-1}\).

## Cousins

- \(q\)-ary linear LTC — Cyclic linear codes cannot be \(c^3\)-LTCs [6]. Codeword symmetries are in general an obstruction to achieving such LTCs [7].
- Self-dual linear code — See Refs. [8,9] for tables of cyclic self-dual codes.
- Combinatorial design code — The supports of all fixed-weight codewords of a \(q\)-ary cyclic code support a combinatorial \(1\)-design [10; Corr. 5.2.4].
- Generalized RM (GRM) code — GRM codes with nonzero evaluation points are cyclic ([11], pg. 52).
- Reed-Solomon (RS) code — If the length divides \(q-1\), then it is possible to construct a cyclic RS code.
- \(q\)-ary Hamming code — Hamming codes are equivalent to cyclic codes when \(q\) and \(r\) are relatively prime ([5], pg. 194).
- Quantum maximum-distance-separable (MDS) code — Quantum MDS codes can be constructed from \(q\)-ary cyclic codes using the Hermitian construction [12].
- Galois-qudit CSS code — Galois CSS codes can be constructed using self-orthogonal \(q\)-ary cyclic codes [13].

## References

- [1]
- J. van Lint and R. Wilson, “On the minimum distance of cyclic codes”, IEEE Transactions on Information Theory 32, 23 (1986) DOI
- [2]
- J. Meggitt, “Error correcting codes and their implementation for data transmission systems”, IEEE Transactions on Information Theory 7, 234 (1961) DOI
- [3]
- E. Prange, “The use of information sets in decoding cyclic codes”, IEEE Transactions on Information Theory 8, 5 (1962) DOI
- [4]
- J. Macwilliams, “Permutation Decoding of Systematic Codes”, Bell System Technical Journal 43, 485 (1964) DOI
- [5]
- F. J. MacWilliams and N. J. A. Sloane. The theory of error correcting codes. Elsevier, 1977.
- [6]
- L. Babai, A. Shpilka, and D. Stefankovic, “Locally Testable Cyclic Codes”, IEEE Transactions on Information Theory 51, 2849 (2005) DOI
- [7]
- M. Sudan, “Invariance in Property Testing”, Property Testing 211 (2010) DOI
- [8]
- Yan Jia, San Ling, and Chaoping Xing, “On Self-Dual Cyclic Codes Over Finite Fields”, IEEE Transactions on Information Theory 57, 2243 (2011) DOI
- [9]
- S. Jitman et al., “Abelian Codes in Principal Ideal Group Algebras”, IEEE Transactions on Information Theory 59, 3046 (2013) DOI
- [10]
- V. D. Tonchev, "Codes and designs." Concise Encyclopedia of Coding Theory (Chapman and Hall/CRC, 2021) DOI
- [11]
- M. A. Tsfasman and S. G. Vlăduţ, Algebraic-Geometric Codes (Springer Netherlands, 1991) DOI
- [12]
- G. G. La Guardia, “New Quantum MDS Codes”, IEEE Transactions on Information Theory 57, 5551 (2011) DOI
- [13]
- Y. Tang et al., “New quantum codes from dual-containing cyclic codes over finite rings”, (2016) arXiv:1608.06674

## Page edit log

- Mazin Karjikar (2022-12-30) — most recent
- Victor V. Albert (2022-07-13)

## Cite as:

“Cyclic linear \(q\)-ary code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/q-ary_cyclic