<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JSIP</journal-id><journal-title-group><journal-title>Journal of Signal and Information Processing</journal-title></journal-title-group><issn pub-type="epub">2159-4465</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jsip.2014.54020</article-id><article-id pub-id-type="publisher-id">JSIP-51523</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Tree Matrix Algorithm of LDPC Codes
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>uanming</surname><given-names>Zhang</given-names></name><xref ref-type="aff" rid="aff1"><sub>1</sub></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><label>1</label><addr-line>Electronics and Information Engineering Institute, Foshan University, Foshan, China</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>huanmingzhang@126.com</email></corresp></author-notes><pub-date pub-type="epub"><day>07</day><month>10</month><year>2014</year></pub-date><volume>05</volume><issue>04</issue><fpage>191</fpage><lpage>197</lpage><history><date date-type="received"><day>16</day>	<month>September</month>	<year>2014</year></date><date date-type="rev-recd"><day>15</day>	<month>October</month>	<year>2014</year>	</date><date date-type="accepted"><day>8</day>	<month>November</month>	<year>2014</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  LDPC codes are finding increasing use in applications requiring reliable and highly efficient information transfer over bandwidth. An LDPC code is defined by a sparse parity-check matrix and can be described by a bipartite graph called Tanner graph. Loops in Tanner graph prevent the sum-product algorithm from converging. Further, loops, especially short loops, degrade the performance of LDPC decoder, because they affect the independence of the extrinsic information exchanged in the iterative decoding. This paper, by graph theory, deduces cut-node tree graph of LDPC code, and depicts it with matrix. On the basis of tree matrix algorithm, whole depictions of loops can be figured out, providing of foundation for further research of relations between loops and LDPC codes’ performance.
 
</p></abstract><kwd-group><kwd>LDPC</kwd><kwd> Belief Propagation (BP)</kwd><kwd> Graph</kwd><kwd> Iterative Decoding</kwd><kwd> Loop</kwd><kwd> Cycle</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Probability distributions defined by graphs are used in literature of various fields, such as coding theory, artificial intelligence, and system theory.</p><p>LDPC [<xref ref-type="bibr" rid="scirp.51523-ref1">1</xref>] code can be depicted by its parity-check matrix H [<xref ref-type="bibr" rid="scirp.51523-ref2">2</xref>] , <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x5.png" xlink:type="simple"/></inline-formula>and its degree distribution of polynomial [<xref ref-type="bibr" rid="scirp.51523-ref3">3</xref>] :</p><disp-formula id="scirp.51523-formula1899"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/9-3400369x6.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.51523-formula1900"><label>(2)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/9-3400369x7.png"  xlink:type="simple"/></disp-formula><p>Computing distributions of variable and check nodes in a Tanner graph is relatively efficient without cycle, but complex with cycles, even difficult when cycles are short for large graph.</p><p>The belief propagation algorithm [<xref ref-type="bibr" rid="scirp.51523-ref4">4</xref>] , or known as the sum-product algorithm [<xref ref-type="bibr" rid="scirp.51523-ref5">5</xref>] is decoding algorithm for graphical codes, such as convolution code, turbo code and LDPC code.</p><p>Belief propagation (BP) algorithm is optimal and produces exact solutions on a tree just in a finite number of iterations. Otherwise, BP algorithm may not converge. Moreover, when it doses converge, it provides approximate solution and the results vary in different conditions.</p></sec><sec id="s2"><title>2. Background</title><p>In most common sense of the term, an undirected graph [<xref ref-type="bibr" rid="scirp.51523-ref6">6</xref>] consists of a set of vertices or nodes V together with a set of edges E, which are 2-element subsets of V (i.e., an edge is related with two vertices, and the relation is represented as an unordered pair of the vertices with respect to the particular edge). See <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p><disp-formula id="scirp.51523-formula1901"><graphic  xlink:href="http://html.scirp.org/file/9-3400369x8.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.51523-formula1902"><graphic  xlink:href="http://html.scirp.org/file/9-3400369x9.png"  xlink:type="simple"/></disp-formula><p>n = 6</p><p>m = 5</p><p>Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x10.png" xlink:type="simple"/></inline-formula> be an undirected graph.</p><p>The following statements are equivalent,</p><p>1. G is a tree</p><p>2. Any two vertices in G are connected by a unique simple path</p><p>3. G is connected, but if any edge is removed from E, the resulting graph is disconnected</p><p>4. G is connected, and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x11.png" xlink:type="simple"/></inline-formula></p><p>5. G is acyclic, and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x12.png" xlink:type="simple"/></inline-formula></p><p>6. G is acyclic, but if any edge is added to E, the resulting graph contains a loop.</p><p>In fact, a tree is a connected graph without any cycles; a leaf is a vertex of degree 1. An internal vertex is a vertex of degree at least 2.</p><p>In coding theory, Tanner graph, named after Michael Tanner, is a bipartite graph used to state constraints or equations which specify error correcting codes. See <xref ref-type="fig" rid="fig2">Figure 2</xref>. They are used to construct longer codes from smaller ones. Both encoders and decoders employ these graphs extensively.</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> An example of a graph<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x14.png" xlink:type="simple"/></inline-formula></title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/9-3400369x13.png"/></fig><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> Tanner graph of an LDPC code (a cycle represented by 4 bold lines in figure)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/9-3400369x15.png"/></fig><p>In communication system, the transmitted random vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x16.png" xlink:type="simple"/></inline-formula> is not observed; instead received noisy vector<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x17.png" xlink:type="simple"/></inline-formula>.</p><p>N is the length of codeword, Parity check equation vector is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x18.png" xlink:type="simple"/></inline-formula>, M is the number of equations. <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x19.png" xlink:type="simple"/></inline-formula>represents initial information about transmitted codeword.</p><p>where, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x20.png" xlink:type="simple"/></inline-formula>is the ith variable node, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x20.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x21.png" xlink:type="simple"/></inline-formula>, jth check equation.</p><p>The belief propagation (BP) of LDPC code states as follows [<xref ref-type="bibr" rid="scirp.51523-ref7">7</xref>] - [<xref ref-type="bibr" rid="scirp.51523-ref11">11</xref>] :</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x22.png" xlink:type="simple"/></inline-formula>is check information from check node <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x22.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x23.png" xlink:type="simple"/></inline-formula> to variable node<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x22.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x24.png" xlink:type="simple"/></inline-formula>, and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x22.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x24.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x25.png" xlink:type="simple"/></inline-formula> variable information from <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x22.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x24.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x25.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x26.png" xlink:type="simple"/></inline-formula> to check node<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x22.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x24.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x25.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x26.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x27.png" xlink:type="simple"/></inline-formula>. See <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p><disp-formula id="scirp.51523-formula1903"><label>(3)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/9-3400369x28.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.51523-formula1904"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/9-3400369x29.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.51523-formula1905"><label>(5)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/9-3400369x30.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.51523-formula1906"><label>(6)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/9-3400369x31.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x32.png" xlink:type="simple"/></inline-formula> denotes a normalization constant,<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x32.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x33.png" xlink:type="simple"/></inline-formula>. And message updating rule see <xref ref-type="fig" rid="fig4">Figure 4</xref> [<xref ref-type="bibr" rid="scirp.51523-ref12">12</xref>] .</p><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Iterative decoding algorithm</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/9-3400369x34.png"/></fig><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Updating rule for message passing</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/9-3400369x35.png"/></fig></sec><sec id="s3"><title>3. Principle of Cut-Node Tree</title><p>In order to solute loops of LDPC code, Tanner graph is re-drew as following principle: Choosing an element “1” in H, its variable (or check) node considered root node, check (or variable) nodes connected to the variable (or check) node as 1<sup>st</sup> order child-nodes, a current node, once appearance in ancestor node or sibling node, will be cut and forbid to grow and become a end node like a leaf, but not a leaf actually. And so forth, at last a cut-node tree can be get. If all nodes are connected, a single cut-node tree can be get, otherwise it is forest. Repeating this process until all end nodes are either cut-node or leaf node. See <xref ref-type="fig" rid="fig5">Figure 5</xref>.</p><p>HH is mark matrix, every element in HH is zero represents end of algorithm.</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Flow process chart of algorithm</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/9-3400369x36.png"/></fig></sec><sec id="s4"><title>4. Implement of Principle and Results</title><p>First, a node (variable node or check node), for instance, variable node<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/9-3400369x37.png" xlink:type="simple"/></inline-formula>, is choosed as root node, its son nodes are those which connect to it, according to this principle, we can obtain all child-nodes. This process can be implemented by computer simulation in matlab’s celluar array, and express H by means of cut-node tree.</p><p>An example: for</p><disp-formula id="scirp.51523-formula1907"><label>(7)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/9-3400369x38.png"  xlink:type="simple"/></disp-formula><p>has following cut-node tree graph (<xref ref-type="fig" rid="fig6">Figure 6</xref>).</p><p>Another example: For instance, an LDPC code with check matrix H:</p><disp-formula id="scirp.51523-formula1908"><label>(8)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/9-3400369x39.png"  xlink:type="simple"/></disp-formula><p>Following tree matrix expressed by matlab can be get:</p><disp-formula id="scirp.51523-formula1909"><label>(9)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/9-3400369x40.png"  xlink:type="simple"/></disp-formula><p>In fact, tree matrix matches along with Tree of Graph, [i j k l m], [i j] states current node, [k l] states father node, m states times being cut.</p><p>So, searched by a computer, all loops can be get:</p><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Tree graph of LDPC codes</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/9-3400369x41.png"/></fig><p>Loop 1: [4 8]-[3 8]-[3 5]-[2 5]-[2 6]-[4 6]-[4 8]</p><p>Loop 2: [5 9]-[3 9]-[3 5]-[2 5]-[2 7]-[5 7]-[5 10]</p><p>Loop 3: [5 10]-[4 10]-[4 6]-[2 6]-[2 7]-[5 7]-[5 10]</p><p>Loop 4: [1 1]-[1 2]-[3 2]-[3 5]-[2 5]-[2 1]-[1 1]</p><p>Loop 5: [1 3]-[1 2]-[3 2]-[3 5]-[2 5]-[2 6]-[4 6]-[4 3]-[1 3]</p><p>Loop 6: [1 4]-[1 2]-[3 2]-[3 5]-[2 5]-[2 7]-[5 7]-[5 4]-[1 4]</p><p>Loop 7: [1 1]-[1 3]-[4 3]-[4 6]-[2 6]-[2 1]-[1 1]</p><p>Loop 8: [1 1]-[1 3]-[4 3]-[4 6]-[2 6]-[2 5]-[3 5]-[3 2]-[1 2]-[1 1]</p><p>Loop 9: [1 4]-[1 3]-[4 3]-[4 6]-[2 6]-[2 5]-[3 5]-[3 2]-[1 2]-[1 4]</p><p>Loop 10: [1 4]-[1 3]-[4 3]-[4 6]-[2 6]-[2 7]-[5 7]-[5 4]-[1 4]</p><p>Loop 11: [1 1]-[1 4]-[5 4]-[5 7]-[2 7]-[2 1]-[1 1]</p><p>Loop 12: [1 1]-[1 4]-[5 4]-[5 7]-[2 7]-[2 5]-[3 5]-[3 2]-[1 2]-[1 1]</p><p>Loop 13: [1 1]-[1 4]-[5 4]-[5 7]-[2 7]-[2 6]-[4 6]-[4 3]-[1 3]-[1 1]</p><p>Loop 14: [1 2]-[1 4]-[5 4]-[5 7]-[2 7]-[2 5]-[3 5]-[3 2]-[1 2]</p><p>Loop 15: [1 2]-[1 4]-[5 4]-[5 7]-[2 7]-[2 6]-[4 6]-[4 3]-[1 3]-[1 2]</p><p>Loop 16: [1 3]-[1 4]-[5 4]-[5 7]-[2 7]-[2 5]-[3 5]-[3 2]-[1 2]-[1 3]</p><p>Here, H is just a situation of single tree, with 15 cut-nodes, no leaf node and 16 loops. See <xref ref-type="table" rid="table1">Table 1</xref>. Further, Message-passing form for cut-node tree has following rule:</p><p>In a tree, Message-passing fellows a two-pass form, first sweeping upwards from leaves to a node designated as the root, and then downwards from the root to leaves.</p><p>In a graph with cycle, Cut-node tree graph can be get by cutting all loops, See <xref ref-type="fig" rid="fig7">Figure 7</xref>.</p><p>Cut node tree has all same characters with Tanner graph.</p><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Message passing over cut-node tree graph</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/9-3400369x42.png"/></fig><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Features of loops about above example</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Sparsity</th><th align="center" valign="middle" >Loops</th><th align="center" valign="middle" >Total length of loops</th><th align="center" valign="middle" >Average length</th><th align="center" valign="middle" >Girth</th><th align="center" valign="middle" >Maximum length</th><th align="center" valign="middle" >Loop relativity</th></tr></thead><tr><td align="center" valign="middle" >0.4</td><td align="center" valign="middle" >16</td><td align="center" valign="middle" >108</td><td align="center" valign="middle" >6.75</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >3.18</td></tr></tbody></table></table-wrap></sec><sec id="s5"><title>5. Conclusion</title><p>This paper provides a new method to describe graph of LDPC codes, it aims to solute loops of LDPC codes and message passing over cut node tree. For a large matrix H, it is difficult to solute loops, because loops convolve each other. Features of loops have certain relationship with performances. In this paper, a cut node tree can be expressed by a certain matrix. By computer simulation, cut-node tree can get right answer and give out method to calculate loops of LDPC codes and cut node tree graph, its results assist to further research this relationship.</p></sec></body><back><ref-list><title>References</title><ref id="scirp.51523-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Gallager, R.G. (1963) Low-Density Parity Check Codes. MIT Press, Cambridge.</mixed-citation></ref><ref id="scirp.51523-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Mackay, D.J.C. (1999) Good Error-Correcting Codes Based on Very Sparse Matrices. IEEE Transactions on Information Theory, 45, 399-431. http://dx.doi.org/10.1109/18.748992</mixed-citation></ref><ref id="scirp.51523-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Tanner, R.M. (1981) A Recursive Approach to Low Complexity Codes. IEEE Transactions on Information Theory, 27, 533-547. http://dx.doi.org/10.1109/TIT.1981.1056404</mixed-citation></ref><ref id="scirp.51523-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Kschischang, R., Frey, B.J. and Loeliger, H.A. (2001) Factor Graphs and the Sum-Product Algorithm. IEEE Transactions on Information Theory, 47, 498-519. http://dx.doi.org/10.1109/18.910572</mixed-citation></ref><ref id="scirp.51523-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Wiberg, N. (1996) Codes and Decoding on General Graphs, Linkoping Studies in Science and Technology. Ph.D. Dissertation, No. 440, Linkoping University, Linkoping.</mixed-citation></ref><ref id="scirp.51523-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Reinhard, D. (1997) Graph Theory. Springer-Verlag, New York.</mixed-citation></ref><ref id="scirp.51523-ref7"><label>7</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Wainwright</surname><given-names> M.J. </given-names></name>,<etal>et al</etal>. (<year>2007</year>)<article-title>Sparse Graph Codes for Side Information and Binning</article-title><source> IEEE Signal Processing Magazine</source><volume> 47</volume>,<fpage> 47</fpage>-<lpage>57</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.51523-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Forney Jr., G.D. (2001) Codes on Graphs: Normal Realizations. IEEE Transactions on Information Theory, 47, 520-548. http://dx.doi.org/10.1109/18.910573</mixed-citation></ref><ref id="scirp.51523-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Loeliger, H.A. (2004) An Introduction to Factor Graph. IEEE Signal Processing Magazine, 28-41.</mixed-citation></ref><ref id="scirp.51523-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Kschischang, F.R. (2003) Codes Defined on Graphs. IEEE Communications Magazine, 118-125.</mixed-citation></ref><ref id="scirp.51523-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Vontobel, P.O. (2004) A Factor-Graph Approach to the Context-Tree Weighting Method. Proceedings of the Data Compression Conference (DCC’04), 571.</mixed-citation></ref><ref id="scirp.51523-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Wainwright, M., Jaakkola, T. and Willsky, A. (2002) Tree-Based Reparameterization Analysis of Belief Propagation and Related Algorithms for Approximate Inference on Graphs with Cycles. ISIT2002, Lausanne, 30 June-5 July 2002.</mixed-citation></ref></ref-list></back></article>