No edit summary
|
m Reverted edits by 114.79.143.186 (talk) to last version by EmausBot
|
||
Line 1: | Line 1: | ||
{{Cleanup|reason=Formulas with little or no explanation, symbols not defined, content fork issues with more specific articles. Material given in outline rather than prose style.|date=May 2010}} |
{{Cleanup|reason=Formulas with little or no explanation, symbols not defined, content fork issues with more specific articles. Material given in outline rather than prose style.|date=May 2010}} |
||
In [[coding theory]], '''block codes''' are one of the two common types of [[Channel coding|channel codes]] (the other one |
In [[coding theory]], '''block codes''' are one of the two common types of [[Channel coding|channel codes]] (the other one being [[convolutional codes]]), which enable [[reliability (computer networking)|reliable]] transmission of [[digital data]] over unreliable [[communication channel]]s subject to [[channel noise]]. |
||
A block code transforms a message ''m'' consisting of a sequence of information symbols over an [[alphabet (computer science)|alphabet]] ''Σ'' into a fixed-length sequence ''c'' of ''n'' encoding symbols, called a ''code word''. In a '''linear block code''', each input message has a fixed length of ''k'' < ''n'' input symbols. The [[redundancy (information theory)|redundancy]] added to a message by transforming it into a larger code word enables a receiver to [[error detection and correction|detect and correct]] errors in a transmitted code word, and – using a suitable decoding algorithm – to recover the original message. The redundancy is described in terms of its [[information rate]], or more simply – for a linear block code – in terms of its [[code rate]], ''k''/''n''. |
A block code transforms a message ''m'' consisting of a sequence of information symbols over an [[alphabet (computer science)|alphabet]] ''Σ'' into a fixed-length sequence ''c'' of ''n'' encoding symbols, called a ''code word''. In a '''linear block code''', each input message has a fixed length of ''k'' < ''n'' input symbols. The [[redundancy (information theory)|redundancy]] added to a message by transforming it into a larger code word enables a receiver to [[error detection and correction|detect and correct]] errors in a transmitted code word, and – using a suitable decoding algorithm – to recover the original message. The redundancy is described in terms of its [[information rate]], or more simply – for a linear block code – in terms of its [[code rate]], ''k''/''n''. |
This article may require cleanup to meet Wikipedia's quality standards. The specific problem is: Formulas with little or no explanation, symbols not defined, content fork issues with more specific articles. Material given in outline rather than prose style. Please help improve this article if you can. (May 2010) (Learn how and when to remove this message)
|
Incoding theory, block codes are one of the two common types of channel codes (the other one being convolutional codes), which enable reliable transmission of digital data over unreliable communication channels subject to channel noise.
A block code transforms a message m consisting of a sequence of information symbols over an alphabet Σ into a fixed-length sequence cofn encoding symbols, called a code word. In a linear block code, each input message has a fixed length of k < n input symbols. The redundancy added to a message by transforming it into a larger code word enables a receiver to detect and correct errors in a transmitted code word, and – using a suitable decoding algorithm – to recover the original message. The redundancy is described in terms of its information rate, or more simply – for a linear block code – in terms of its code rate, k/n.
The error correction performance of a block code is described by the minimum Hamming distance d between each pair of code words, and is called the distance of the code.
The encoder for a block code divides the information sequence into message blocks, each message block contains information symbols over an alphabet set , i.e. a message could be represented as a -tuple . The total number of possible different message is therefore . The encoder transforms message independently onto an -tuple codeword . The code of block length over is a subset of : the total number of possible different codewords is the same as the total number of messages and is called dimension. Rate of the block code is defined as .
The Hamming weight of a codeword is defined as the number of non-zero positions in . The Hamming distance between two codewords and is defined as the number of different positions between the codewords. The (minimum) distance of a block code is defined as the minimum distance between any two different codewords: . The notation is used to represent a block code of dimension , block length over alphabet set , with distance . In particular, if alphabet set has size , the block code is denoted as .
A codeword could be considered as a point in the -dimension space and the code is the subset of . A code has distance means that , there is no other codeword in the Hamming ball centered at with radius , which is defined as the collection of -dimension words whose Hamming distanceto is no more than . Similarly, with (minimum) distance has the following properties:
Maximum likelihood decoding (MLD) could be used to decode: it outputs the codeword closest to the received word in Hamming distance means: .
Consider a simple repetition code : . The distance of is 3 because any different valid codewords have at least 3 different symbols. Therefore, if there is only up to 1 error in the received word, e.g. , the error could be recovered. However if there are more than 1 possible errors, the decoder could not tell what is the correct codeword. For example, could be the received word for either or.
is called family of codes, where is an code with monotonic increasing .
Rate of family of codes is defined as
Relative distance of family of codes is defined as
To explore the relationship between and , a set of lower and upper bounds of block codes are known.
, i.e.
For ,
For the general case, the following Plotkin bounds holds for any with distance :
1. If
2. If >
For any -ary code with distance ,
, where , is the -ary entropy function.
Define .
Let be the maximum number of codewords in a Hamming ball of radius for any code of distance .
Then we have the Johnson Bound : , if
Block codes are tied to the sphere packing problem which has received some attention over the years. In two dimensions, it is easy to visualize. Take a bunch of pennies flat on the table and push them together. The result is a hexagon pattern like a bee's nest. But block codes rely on more dimensions which cannot easily be visualized. The powerful Golay code used in deep space communications uses 24 dimensions. If used as a binary code (which it usually is), the dimensions refer to the length of the codeword as defined above.
The theory of coding uses the N-dimensional sphere model. For example, how many pennies can be packed into a circle on a tabletop or in 3 dimensions, how many marbles can be packed into a globe. Other considerations enter the choice of a code. For example, hexagon packing into the constraint of a rectangular box will leave empty space at the corners. As the dimensions get larger, the percentage of empty space grows smaller. But at certain dimensions, the packing uses all the space and these codes are the so called perfect codes. There are very few of these codes.
Another property is the number of neighbors a single codeword may have.[1] Again, consider pennies as an example. First we pack the pennies in a rectangular grid. Each penny will have 4 near neighbors (and 4 at the corners which are farther away). In a hexagon, each penny will have 6 near neighbors. Respectively, in three and four dimensions, the maximum packing is given by the 12-face and 24-cell with 12 and 24 neighbors, respectively. When we increase the dimensions, the number of near neighbors increases very rapidly. In general, the value is given by the kissing numbers.
The result is the number of ways for noise to make the receiver choose a neighbor (hence an error) grows as well. This is a fundamental limitation of block codes, and indeed all codes. It may be harder to cause an error to a single neighbor, but the number of neighbors can be large enough so the total error probability actually suffers.[1]
This article needs additional citations for verification. Please help improve this articlebyadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Block code" – news · newspapers · books · scholar · JSTOR (September 2008) (Learn how and when to remove this message) |
{{cite book}}
: |edition=
has extra text (help){{cite book}}
: Unknown parameter |coauthors=
ignored (|author=
suggested) (help){{cite book}}
: Check |isbn=
value: invalid character (help); Unknown parameter |coauthors=
ignored (|author=
suggested) (help){{cite book}}
: Unknown parameter |coauthors=
ignored (|author=
suggested) (help)