Cyclic redundancy check (CRC) code[13] 

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

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

Your contribution is welcome!

on github.com (edit & pull request)— see instructions

edit on this site

Zoo Code ID: crc

Cite as:
“Cyclic redundancy check (CRC) code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2024. https://errorcorrectionzoo.org/c/crc
BibTeX:
@incollection{eczoo_crc, title={Cyclic redundancy check (CRC) code}, booktitle={The Error Correction Zoo}, year={2024}, editor={Albert, Victor V. and Faist, Philippe}, url={https://errorcorrectionzoo.org/c/crc} }
Share via:
Twitter | Mastodon |  | E-mail
Permanent link:
https://errorcorrectionzoo.org/c/crc

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.