Linear code

This is an old revision of this page, as edited by 217.132.64.45 (talk) at 08:59, 28 July 2007 (Moved an entire section to another article (Block codes) - It does not belong specifically to Linear codes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In mathematics and information theory, a linear code is an important type of block code used in error correction and detection schemes. Linear codes allow for more efficient encoding and decoding algorithms than other codes (cf. syndrome decoding).

Linear codes are applied in methods of transmitting symbols (e.g., bits) on a communications channel so that, if errors occur in the communication, some errors can be detected by the recipient of a message block. The "codes" in the linear code are blocks of symbols which are encoded using more symbols than the original value to be sent. A linear code of length n transmits blocks containing n symbols. For example, the "(7,4)" Hamming code is a binary linear code which represents 4-bit values each using 7-bit values. In this way, the recipient can detect errors as severe as 2 bits per block.[1] As there are sixteen (16) distinct 4-bit values expressed in binary, the rank of the (7,4) Hamming code is sixteen.

Formal definition

A linear code of length n and rank k is a linear subspace C with dimension k of the vector space   where   is the finite field with q elements. Such a code with parameter q is called a q-ary code (e.g., when q = 5, the code is a 5-ary code). If q = 2 or q = 3, the code is described as a binary code, or a ternary code.

Properties

As a linear subspace of  , the entire code C (which may be very large) may be represented as the span of a minimal set of codewords (known as a basis in linear algebra). These basis codewords are often collated in the rows of a matrix known as a generating matrix for the code C.

The subspace definition also guarantees that the minimum Hamming distance d between any given codeword c0 and the other codewords c ≠ c0 is constant. Since the difference c − c0 of two codewords in C is also a codeword (i.e., an element of the subspace C), and d(c, c0) = d(c − c0, 0), we see that

 

Codes in general are often denoted by the letter C. A linear code of length n, of rank k (i.e., having k code words in its basis and k rows in its generating matrix), and of minimum Hamming weight d is referred to as an (nkd) code.

Remark. This (nkd) notation should not be confused with the [nrd] notation used to denote a non-linear code of length n, size r (i.e., having r code words), and minimum Hamming distance d.

Examples

Some examples of linear codes include:

Uses

Binary linear codes (refer to formal definition above) are ubiquitous in electronic devices and digital storage media. For example the Reed-Solomon code is used to store digital data on a compact disc.


Footnotes

  1. ^ Thomas M. Cover and Joy A. Thomas (1991). Elements of Information Theory. John Wiley & Sons, Inc. pp. 210–211. ISBN 0-471-06259-5. {{cite book}}: Check |isbn= value: checksum (help)