In coding theory, the dual code of a linear code is the linear code defined by where is a scalar product.
In linear algebra terms, the dual code is the annihilator of C with respect to the bilinear form
The dimension of C and its dual always add up to the length n: A generator matrix for the dual code is the parity-check matrix for the original code and vice versa.
The dual of the dual code is always the original code.
A self-dual code is one which is its own dual.
If a self-dual code is such that each codeword's weight is a multiple of some constant
, then it is of one of the following four types:[1] Codes of types I, II, III, or IV exist only if the length n is a multiple of 2, 8, 4, or 2 respectively.
If a self-dual code has a generator matrix of the form
has generator matrix