Also known as Frame check sequence (FCS).

## Description

A generalization of the single parity-check code in which the generalization of the parity bit is the remainder of the data string (mapped into a polynomial via the Cyclic-to-polynomial correspondence) divided by some generator polynomial. A notable family of codes is referred to as CRC-(\(m-1\)), where \(m\) is the length of the generator polynomial.

## Protection

Detects any burst error up to the length of the generator polynomial.

## Realizations

CRC-16 and CRC-32 are used in data transmission, e.g., IEEE 802.16e, IEEE 802.3 [4] and TCP/IP communication [5; Sec. 2.3.3].

## Notes

See Ref. [6] and book [7] for introductions to CRC codes.See Refs. [8,9] for exhaustive lists of CRC polynomials, as well as the CRC Polynomial Zoo website by Philip Koopman.

## Parent

## Child

- Single parity-check (SPC) code — A CRC using the divisor 11 is a single parity-check code [5; Sec. 2.3.3].

## Cousin

- Polar code — CRC codes concataned with polar codes yield improved performance of the SCL polar-code decoder [10,11].

## References

- [1]
- W. Peterson and D. Brown, “Cyclic Codes for Error Detection”, Proceedings of the IRE 49, 228 (1961) DOI
- [2]
- W. W. Peterson and E. J. Weldon, Error-correcting codes. MIT press 1972.
- [3]
- S. Lin and D. J. Costello, Error Control Coding, 2nd ed. Englewood Cliffs, NJ: Prentice-Hall, 2004.
- [4]
- Borrelli, Chris. "IEEE 802.3 cyclic redundancy check." application note: Virtex Series and Virtex-II Family, XAPP209 (v1. 0) (2001).
- [5]
- M. Ergen, “Basics of Cellular Communication”, Mobile Broadband 19 (2008) DOI
- [6]
- S. Sheng-Ju, “Implementation of Cyclic Redundancy Check in Data Communication”, 2015 International Conference on Computational Intelligence and Communication Networks (CICN) (2015) DOI
- [7]
- Wells, Richard B. Applied coding and information theory for engineers. Prentice-Hall, Inc., 1998.
- [8]
- P. Koopman, “32-bit cyclic redundancy codes for Internet applications”, Proceedings International Conference on Dependable Systems and Networks DOI
- [9]
- P. Koopman and T. Chakravarty, “Cyclic redundancy code (CRC) polynomial selection for embedded networks”, International Conference on Dependable Systems and Networks, 2004 (2004) DOI
- [10]
- B. Li, H. Shen, and D. Tse, “An Adaptive Successive Cancellation List Decoder for Polar Codes with Cyclic Redundancy Check”, IEEE Communications Letters 16, 2044 (2012) DOI
- [11]
- I. Tal and A. Vardy, “List Decoding of Polar Codes”, IEEE Transactions on Information Theory 61, 2213 (2015) DOI

## Page edit log

- Victor V. Albert (2024-02-25) — most recent
- Gage Erwin (2023-08-11)

## Cite as:

“Cyclic redundancy check (CRC) code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2024. https://errorcorrectionzoo.org/c/crc

Github: https://github.com/errorcorrectionzoo/eczoo_data/edit/main/codes/classical/bits/easy/crc.yml.