Dual code
title: "Dual code" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["coding-theory"] topic_path: "general/coding-theory" source: "https://en.wikipedia.org/wiki/Dual_code" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
In coding theory, the dual code of a linear code
:C\subset\mathbb{F}_q^n
is the linear code defined by
:C^\perp = {x \in \mathbb{F}_q^n \mid \langle x,c\rangle = 0;\forall c \in C }
where
:\langle x, c \rangle = \sum_{i=1}^n x_i c_i
is a scalar product. In linear algebra terms, the dual code is the annihilator of C with respect to the bilinear form \langle\cdot\rangle. The dimension of C and its dual always add up to the length n:
:\dim C + \dim C^\perp = 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.
Self-dual codes
A self-dual code is one which is its own dual. This implies that n is even and dim C = n/2. If a self-dual code is such that each codeword's weight is a multiple of some constant c 1, then it is of one of the following four types:
- Type I codes are binary self-dual codes which are not doubly even. Type I codes are always even (every codeword has even Hamming weight).
- Type II codes are binary self-dual codes which are doubly even.
- Type III codes are ternary self-dual codes. Every codeword in a Type III code has Hamming weight divisible by 3.
- Type IV codes are self-dual codes over F4. These are again even.
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 G=[I_k|A], then the dual code C^\perp has generator matrix [-\bar{A}^T|I_k], where I_k is the (n/2)\times (n/2) identity matrix and \bar{a}=a^q\in\mathbb{F}_q.
References
References
- Conway, J.H.. (1988). "Sphere packings, lattices and groups". [[Springer-Verlag]].
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::