The minimum distance of a set of codewords of length is defined as where is the Hamming distance between and. The expression represents the maximum number of possible codewords in a -ary block code of length and minimum distance . Then the Singleton bound states that
Proof
First observe that the number of -ary words of length is, since each letter in such a word may take one of different values, independently of the remaining letters. Now let be an arbitrary -ary block code of minimum distance. Clearly, all codewords are distinct. If we puncturethe code by deleting the first letters of each codeword, then all resulting codewords must still be pairwise different, since all of the original codewords in have Hamming distance at least from each other. Thus the size of the altered code is the same as the original code. The newly obtained codewords each have length and thus, there can be at most of them. Since was arbitrary, this bound must hold for the largest possible code with these parameters, thus:
Linear codes
If is a linear code with block length, dimension and minimum distance over the finite field with elements, then the maximum number of codewords is and the Singleton bound implies: so that which is usually written as In the linear code case a different proof of the Singleton bound can be obtained by observing that rank of the parity check matrix is. Another simple proof follows from observing that the rows of any generator matrix in standard form have weight at most.
History
The usual citation given for this result is, but according to the result can be found in a 1953 paper of Komamiya.
MDS codes
Linear block codes that achieve equality in the Singleton bound are called MDS codes. Examples of such codes include codes that have only two codewords, codes that use the whole of , codes with a single parity symbol and their dual codes. These are often called trivial MDS codes. In the case of binary alphabets, only trivial MDS codes exist. Examples of non-trivial MDS codes include Reed-Solomon codes and their extended versions. MDS codes are an important class of block codes since, for a fixed and, they have the greatest error correcting and detecting capabilities. There are several ways to characterize MDS codes: The last of these characterizations permits, by using the MacWilliams identities, an explicit formula for the complete weight distribution of an MDS code.