In
coding theory
Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and data storage. Codes are stud ...
, a Tanner graph, named after Michael Tanner, is a
bipartite graph
In the mathematical field of graph theory, a bipartite graph (or bigraph) is a graph whose vertices can be divided into two disjoint and independent sets U and V, that is every edge connects a vertex in U to one in V. Vertex sets U and V ar ...
used to state constraints or equations which specify
error correcting codes
In computing, telecommunication, information theory, and coding theory, an error correction code, sometimes error correcting code, (ECC) is used for controlling errors in data over unreliable or noisy communication channels. The central idea is ...
. In
coding theory
Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and data storage. Codes are stud ...
, Tanner graphs are used to construct longer codes from smaller ones. Both encoders and decoders employ these graphs extensively.
Origins
Tanner graphs were proposed by Michael Tanner as a means to create larger error correcting codes from smaller ones using recursive techniques. He generalized the techniques of
Elias
Elias is the Greek equivalent of Elijah ( he, אֵלִיָּהוּ ''ʾĒlīyyāhū''; Syriac: ܐܠܝܐ ''Eliyā''; Arabic: الیاس Ilyās/Elyās), a prophet in the Northern Kingdom of Israel in the 9th century BC, mentioned in several hol ...
for product codes.
Tanner discussed lower bounds on the codes obtained from these graphs irrespective of the specific characteristics of the codes which were being used to construct larger codes.
Tanner graphs for linear block codes
Tanner graphs are
partitioned into subcode nodes and digit nodes. For linear block codes, the subcode nodes denote rows of the
parity-check matrix In coding theory, a parity-check matrix of a linear block code ''C'' is a matrix which describes the linear relations that the components of a codeword must satisfy. It can be used to decide whether a particular vector is a codeword and is also use ...
H. The digit nodes represent the columns of the matrix H. An edge connects a subcode node to a digit node if a nonzero entry exists in the intersection of the corresponding row and column.
Bounds proved by Tanner
Tanner proved the following bounds
Let
be the rate of the resulting linear code, let the degree of the digit nodes be
and the degree of the subcode nodes be
. If each subcode node is associated with a linear code (n,k) with rate r = k/n, then the rate of the code is bounded by
:
Computational complexity of Tanner graph based methods
The advantage of these recursive techniques is that they are computationally tractable. The coding
algorithm for Tanner graphs is extremely efficient in practice, although it is not
guaranteed to converge except for cycle-free graphs, which are known not to admit asymptotically
good codes.
[T. Etzion, A. Trachtenberg, and A. Vardy, Which Codes have Cycle-Free Tanner Graphs?, IEEE Trans. Inf. Theory, 45:6.]
Applications of Tanner graph
Zemor's decoding algorithm In coding theory, Zemor's algorithm, designed and developed by Gilles Zemor, is a recursive low-complexity approach to code construction. It is an improvement over the algorithm of Sipser and Spielman.
Zemor considered a typical class of Sipser� ...
, which is a recursive low-complexity approach to code construction, is based on Tanner graphs.
Notes
Michael Tanner's Original paper
Coding theory
Application-specific graphs