Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Cyclic redundancy check
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Introduction == CRCs are based on the theory of [[cyclic code|cyclic]] [[error-correcting code]]s. The use of [[systematic code|systematic]] cyclic codes, which encode messages by adding a fixed-length check value, for the purpose of error detection in communication networks, was first proposed by [[W. Wesley Peterson]] in 1961.<ref name="PetersonBrown1961">{{Cite journal |last1 = Peterson |first1=W. W. |last2 =Brown |first2=D. T. |date=January 1961 | title = Cyclic Codes for Error Detection | journal = Proceedings of the IRE | doi = 10.1109/JRPROC.1961.287814 | volume = 49 | issue = 1 | pages = 228β235 |s2cid=51666741 }}</ref> Cyclic codes are not only simple to implement but have the benefit of being particularly well suited for the detection of [[burst error]]s: contiguous sequences of erroneous data symbols in messages. This is important because burst errors are common transmission errors in many [[communication channel]]s, including magnetic and optical storage devices. Typically an ''n''-bit CRC applied to a data block of arbitrary length will detect any single error burst not longer than ''n'' bits, and the fraction of all longer error bursts that it will detect is approximately {{nowrap|(1 β 2<sup>β''n''</sup>)}}. Specification of a CRC code requires definition of a so-called [[generator polynomial]]. This polynomial becomes the [[divisor]] in a [[polynomial long division]], which takes the message as the [[division (mathematics)|dividend]] and in which the [[quotient]] is discarded and the [[remainder]] becomes the result. The important caveat is that the polynomial [[coefficient]]s are calculated according to the arithmetic of a [[finite field]], so the addition operation can always be performed bitwise-parallel (there is no carry between digits). In practice, all commonly used CRCs employ the finite field of two elements, [[GF(2)]]. The two elements are usually called 0 and 1, comfortably matching computer architecture. A CRC is called an ''n''-bit CRC when its check value is ''n'' bits long. For a given ''n'', multiple CRCs are possible, each with a different polynomial. Such a polynomial has highest degree ''n'', which means it has {{nowrap|''n'' + 1}} terms. In other words, the polynomial has a length of {{nowrap|''n'' + 1}}; its encoding requires {{nowrap|''n'' + 1}} bits. Note that most polynomial specifications either drop the [[Most significant bit|MSb]] or [[Least significant bit|LSb]], since they are always 1. The CRC and associated polynomial typically have a name of the form CRC-''n''-XXX as in the [[#table|table]] below. The simplest error-detection system, the [[parity bit]], is in fact a 1-bit CRC: it uses the generator polynomial {{nowrap|''x'' + 1}} (two terms),<ref name=Ergen-2008>{{cite book|chapter=2.3.3 Error Detection Coding|title=Mobile Broadband|last=Ergen|first=Mustafa|publisher=[[Springer Nature|Springer]]|date=21 January 2008|pages=29β30|doi=10.1007/978-0-387-68192-4_2|isbn=978-0-387-68192-4}}</ref> and has the name CRC-1.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Cyclic redundancy check
(section)
Add topic