Jump to content

Systematic code

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Oli Filth (talk | contribs) at 22:56, 22 February 2007 (Removed stuff of dubious technical correctness, see Talk:Systematic code). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In coding theory, a systematic code is one in which the input data are embedded in the encoded output. Similarly, a non-systematic code is one in which the output does not contain the input bits. Such codes are used to add redundant information to data; this allows errors to be detected (and possibly corrected, depending on the code used) when bits are lost or corrupted.

For example, transmitting data with a checksum is a type of systematic code: to encode the bit stream "01010110" with a simple two-bit checksum, one first calculates the checksum (01 + 01 + 01 + 10 = 01), then transmits the original stream followed by the new checksum bits: "0101011001" – note the existence of the original bits in the output. A simple nonsystematic code is Run length encoding; "01010110" might be encoded as "010 011 010 011 010 101 010" (one bit is zero, one bit is one, etc).

Examples of Systematic Codes

Examples of Non-Systematic Codes

  • Secure hashes such as SHA1 or MD5, often used to verify the correctness of downloaded files.
  • Fountain codes, popular for online content distribution.