Tanner graph: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>DevotedWikiEditor
Improved readability
 
imported>ReyHahn
No edit summary
 
Line 1: Line 1:
{{Short description|Bipartite graph in coding theory}}
{{Short description|Bipartite graph in coding theory}}
In [[coding theory]], a '''Tanner graph''' is a [[bipartite graph]] that can be used to express constraints (typically equations) that specify an [[error correcting codes|error correcting code]].  Tanner graphs play a central role in the design and decoding of [[Low-density parity-check code|LDPC codes]].  They have also been applied to the construction of longer codes from smaller ones.  Both encoders and decoders employ these graphs extensively.
In [[coding theory]], a '''Tanner graph''' is a [[bipartite graph]] that can be used to express constraints (typically equations) that specify an [[error correcting codes|error correcting code]].  Tanner graphs play a central role in the design and decoding of [[Low-density parity-check code|low-density parity-check codes]].  They have also been applied to the construction of longer codes from smaller ones.  Both encoders and decoders employ these graphs extensively.


== Origins ==
== Origins ==
Tanner graphs were proposed by Michael Tanner<ref>[http://www.copyright.gov/disted/comments/init040.pdf R. Michael Tanner Professor of Computer Science, School of Engineering University of California, Santa Cruz Testimony before Representatives of the United States Copyright Office February 10, 1999]</ref> as a means to create larger error correcting codes from smaller ones using recursive techniques. He generalized the techniques of [[Peter Elias|Elias]] for product codes.
Tanner graphs were proposed by Michael Tanner<ref>[http://www.copyright.gov/disted/comments/init040.pdf R. Michael Tanner Professor of Computer Science, School of Engineering University of California, Santa Cruz Testimony before Representatives of the United States Copyright Office February 10, 1999]</ref> as a means to create larger error correcting codes from smaller ones using recursive techniques. He generalized the techniques of [[Peter Elias]] 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 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 ==
== Use for linear block codes ==
[[Image:Tanner graph example.PNG|right|350px|Tanner graph with subcode and digit nodes]]
[[Image:Tanner graph example.PNG|right|350px|Tanner graph with subcode and digit nodes]]


Tanner graphs are [[bipartite graph|partitioned]] into subcode nodes and digit nodes. For linear block codes, the subcode nodes denote rows of the [[parity-check matrix]] 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.
Tanner graphs are [[bipartite graph|partitioned]] into subcode nodes and digit nodes. For linear block codes, the subcode nodes denote rows of the [[parity-check matrix]] ''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 proven by Tanner ==
== Bounds proven by Tanner ==
Tanner proved the following bounds
Tanner proved the following bounds


Let <math> R </math> be the rate of the resulting linear code, let the degree of the digit nodes be <math> m </math> and the degree of the subcode nodes be <math> n </math>. 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
Let <math> R </math> be the rate of the resulting linear code, let the degree of the digit nodes be <math> m </math> and the degree of the subcode nodes be <math> n </math>. 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


: <math> R \geq 1 - (1 - r)m \, </math>
: <math> R \geq 1 - (1 - r)m \, </math>


== Computational complexity of Tanner graph based methods ==
== Computational complexity of Tanner graph based methods ==
The advantage of these recursive techniques is that they are computationally tractable.  The coding
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.<ref>T. Etzion, A. Trachtenberg, and [[Alexander Vardy|A. Vardy]], Which Codes have Cycle-Free Tanner Graphs?, IEEE Trans. Inf. Theory, 45:6.</ref>
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.<ref>T. Etzion, A. Trachtenberg, and [[Alexander Vardy|A. Vardy]], Which Codes have Cycle-Free Tanner Graphs?, IEEE Trans. Inf. Theory, 45:6.</ref>


== Applications of Tanner graph ==
== Applications ==
[[Zemor's decoding algorithm]], which is a recursive low-complexity approach to code construction, is based on Tanner graphs.
[[Zemor's decoding algorithm]], which is a recursive low-complexity approach to code construction, is based on Tanner graphs.



Latest revision as of 14:05, 23 June 2025

Template:Short description In coding theory, a Tanner graph is a bipartite graph that can be used to express constraints (typically equations) that specify an error correcting code. Tanner graphs play a central role in the design and decoding of low-density parity-check codes. They have also been applied to the construction of longer codes from smaller ones. Both encoders and decoders employ these graphs extensively.

Origins

Tanner graphs were proposed by Michael Tanner[1] as a means to create larger error correcting codes from smaller ones using recursive techniques. He generalized the techniques of Peter Elias 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.

Use for linear block codes

Tanner graph with subcode and digit nodes
Tanner graph with subcode and digit nodes

Tanner graphs are partitioned into subcode nodes and digit nodes. For linear block codes, the subcode nodes denote rows of the parity-check matrix 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 proven by Tanner

Tanner proved the following bounds

Let R be the rate of the resulting linear code, let the degree of the digit nodes be m and the degree of the subcode nodes be n. 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

R1(1r)m

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.[2]

Applications

Zemor's decoding algorithm, which is a recursive low-complexity approach to code construction, is based on Tanner graphs.

Notes