There are several useful characterizations of MDS codes. The simplest being;
Proposition 1: A q-ary (n,k) linear code is an MDS code if, and only if, the minimum non-zero weight of any codeword is n - k + 1.
Examples:
We will see some nontrivial MDS codes later, but first consider the binary Hamming code of order r. This is a (2^{r} - 1, 2^{r} - r-1) linear code with minimum distance 3. In the case r = 2, this is an MDS code, but it is a trivial one (a (3,1)-code). Define the extended Hamming code, Ham(r)*, by adding one new coordinate position to each code vector and putting a 0 or 1 in that position to make the new code word have even weight (that is, adding a parity check). It can be shown, without difficulty, that the extended Hamming code of order r is a linear (2^{r}, 2^{r} -r -1) binary code with minimum distance 4. Again, with r = 2 we obtain a trivial MDS code (this time a (4,1)-code).
Another characterization of MDS codes, using parity check matrices, follows from Theorem 1 of the Coding Theory II notes, namely:
Proposition 2: A q-ary (n,k) linear code is an MDS code if, and only if, every set of n-k columns of a parity check matrix is linearly independent.
This proposition can be used to prove several other interesting characterizations. We list these, without proof, in the following theorem.
Theorem 1: Let C be a q-ary (n,k)-linear code with minimum distance d. Then the following are equivalent:
Let V_{n+1}(q) be a vector space. The lattice of subspaces of V_{n+1}(q) of dimension at least 1 is called a Projective Geometry and is denoted by PG(n,q). The 1-dimensional subspaces are called points, the 2-dimensional subspaces lines, the 3-dimensional subspaces planes, etc. of PG(n,q). The relationship between these objects of the projective geometry is given by containment of the vector subspaces. Thus, a point is on a line iff the 1-dimensional subspace is contained in the 2-dimensional subspace. Given a point P, any non-zero vector in this 1-dimensional vector space is called a (projective) coordinate for P. Thus, projective coordinates are not unique, but any two that correspond to the same point are just scalar multiples of each other.
A set of m points in PG(N,q), with m > N, is called an m-arc if every N+1 of the points are linearly independent. (Linear independence of these vector subspaces is equivalent to the linear independence of any selection of coordinates for these points.) Thus, in PG(2,q), an m-arc is a set of at least 3 points so that every 3 of them are linearly independent. This means that no 3 of these points can lie in the same 2-dimensional vector space (a line). Using geometrical language, we would say that no 3 points are collinear (lie on the same line). In PG(3,q), an m-arc is a set of at least 4 points so that no 4 points are coplanar (lie in the same plane). Note that if 3 of these points were collinear, then these 3 together with some other point of the set would lie in a plane, so we also have that no 3 of these points are collinear. In general, in PG(N,q), an m-arc consists of m points so that no 3 lie on a line, no 4 lie in a plane, no 5 lie in a solid, ..., no N+1 lie in an N dimensional vector space. (In older terminology, such points would be said to be in general position.)
Let K be a set of m points, P_{1}, P_{2}, ...,P_{m} in PG(N,q). Form the N+1 × m matrix G whose m columns are projective coordinates of each of the points. It then follows from Theorem 1: (3) that:
Theorem 2: K is an m-arc in PG(N,q) if and only if G is the generator matrix of an (m, N+1) q-ary MDS code with minimum distance m-N.
We can use this theorem to provide examples of nontrivial MDS codes.