High Girth Column-Weight-Two LDPC Codes Based on Distance Graphs

LDPC codes of column weight of two are constructed from minimal distance graphs or cages. Distance graphs are used to represent LDPC code matrices such that graph vertices that represent rows and edges are columns. The conversion of a distance graph into matrix form produces an adjacency matrix with column weight of two and girth double that of the graph. The number of 1’s in each row (row weight) is equal to the degree of the corresponding vertex. By constructing graphs with di ﬀ erent vertex degrees, we can vary the rate of corresponding LDPC code matrices. Cage graphs are used as examples of distance graphs to design codes with di ﬀ erent girths and rates. Performance of obtained codes depends on girth and structure of the corresponding distance graphs.


INTRODUCTION
Low-density parity-check (LDPC) codes have been shown to have very good error correcting capability performing close to the Shannon limit [1].It was also shown in [2] that LDPC codes with column weight j ≥ 3 have a minimum distance that grows linearly with code length, N, for given j and row-weight k and that minimum distance for codes with j = 2 grows logarithmically with N.However, column-weight-two codes have shown potential in partial response channels [3,4].They also require less computational complexity compared to codes of higher column weights.Performance of LDPC codes depends on several factors including minimum distance, rate, diameter of graph, code length, and girth (minimum cycle length).There are several methods of constructing column-weight-two LDPC codes, some of which are found in [3][4][5].We propose a method for constructing column-weight-two codes with very large girths.
In this paper, we show how column-weight-two LDPC codes can be derived from distance graphs called cages (graphs with minimum number of vertices given vertex degree and minimum cycle length in graph).Using already known cage graphs, very high girths codes are obtained compared to previous methods.Cage graphs of varying girths and valencies (vertex degrees) could be used to construct LDPC codes over a wide range of girths and rates.This paper is organized as follows.Section 2 describes LDPC code representation using a nonbipartite graph or row connections.The nonbipartite graphs are in the form of distance graphs.Section 3 presents some examples of distance graphs found in literature.Bit error rate performances of some codes were simulated and evaluated.Hardware implementation complexity of these codes is also discussed.Section 4 has concluding remarks.

GRAPH REPRESENTATION OF LDPC CODES
An M × N LDPC code matrix H is usually represented by a bipartite or Tanner graph on which one set of vertices represents rows (check nodes) and the other set represent columns (variable nodes).There is an edge between the vertices representing check node c x and variable node v y if and only if the corresponding element of the code matrix h xy is set to 1.
The code matrix could also be represented by a distance graph in which vertices represent matrix rows and edges represent columns.In this representation, there will be an edge joining the vertices representing check nodes c x and c y if and only if there exists a column z such that h xz = h yz = 1.Thus a column is represented by a set of edges forming a complete graph between check node vertices that are connected to the same variable node.In the case of two rows per column (column weight of two), a complete graph between two vertices is a single edge between the vertices.We could therefore use  distance graphs to form LDPC codes of column-weight-two with each edge representing a column.
Figure 1(a) shows a distance graph of five vertices.Taking each vertex as a row and each edge as a column, a corresponding matrix is formed as shown in part (b) of the figure.The matrix is formed by putting a "1" in each of the rows (vertices) that form a column (edge).Vertices 1 to 5 of the graph correspond to rows 1 to 5 in the matrix, respectively.The minimum cycle length in the graph is three.A cycle is formed by a closed path of edges or vertices.A cycle in the graph is formed by moving between vertices or edges.In an LDPC matrix, a cycle is formed by alternatively moving between rows and columns.The graph form represents half of a matrix cycle.Hence, a cycle of g in the graph is of length 2g in matrix form.A cycle of three, shown in dotted lines in Figure 1, between vertices 1, 2, and 3 in the graph corresponds to a cycle of six between rows 1, 2, 3, and columns 1, 2, 5 in matrix form.
The main objective of this paper is to use known distance graphs to construct column-weight-two LDPC codes.Distance graphs of varying vertex degrees and girths produce column-weight-two LDPC codes of different girths and rates.For a graph of size n, vertex degree of k, and girth of g, the corresponding LDPC code matrix is of size n × nk/2, rate 1 − (2/k), and girth of 2g.

CAGES
A (k, g)-cage is a k-regular graph of girth g with the fewest possible number of vertices.The lower bound (Moore bound) on the number of vertices for a given k and n depends on whether g is odd or even [6,7].
If g is odd then and if g is even, then However, these bounds are met very infrequently [8].Though there is no uniform approach to constructing arbitrary cages, there are many cages constructed for some vertex degrees and girths.The mathematics behind the construction of cages is beyond the scope of this paper.Examples of cage graphs and construction methods could be found in cited references in this paper.In [9], some methods of generating regular graphs and cages are described.There is also an associated software by the same author at [10] that generates cages.

Cubic cages
Cages with vertex degree of three are called cubic cages.Table 1 shows the number of vertices for some of the known cubic cages obtained from [11].Cubic cages construction methods could be found in [6,7,11,12].These graphs produce an adjacency matrix with girth twice the corresponding graph girth, column weight of two and rate 1/3.

Cages of higher vertex degrees
Cages of higher degrees are harder to construct [8].However, there are many examples of these cages in literature and some construction algorithms [9,13].Table 2 shows the number of vertices for some of the known high vertex degree cages [11,13].Corresponding code matrices have girths of 2g and have higher rates but smaller girths compared to cubic cages.Higher vertex degrees increase data transmission rate with some degradation in decoding performance.

Related studies
Cyclic column-weight-two codes of girth 12 were constructed in [4].The size of the code is given by n where k is the row weight and k − 1 is a prime.In [5], two codes with girth 16 and 20 of rates 1/2 and 1/3, respectively, are constructed form graphical models.Both codes have size over 4000.From cage graphs with sizes shown in Tables 1 and  2, LDPC codes with much high girths could be constructed.The graphs would also produce codes of higher rates.We noted that codes constructed in [4] have the same size as that of (k, 6)-cage graphs.However, using known cages, more codes could be constructed even when k − 1 is not prime.

Performance simulations
Some cage graphs result in too small codes for practical use.An expansion method is therefore needed to get larger codes.We suggest the expansion method used in [14].The code obtained from a cage graph can be used as a base matrix.Each "0" entry in the matrix is replaced by a p × p zero submatrix and each "1" entry is replaced by a shifted p × p identity submatrix.The expanded code is larger than the base matrix by a factor of p and has girth at least that of the base matrix.Using shifted identity submatrices simplifies addressing in hardware implementation.Obtained codes were expanded using the described method in our experiments.The expansion factors (p) are shown in brackets in the performance graphs.
Decoding performances of obtained codes was measured using bit-error rate (BER) simulations on AWGN channel with BPSK modulation.Obtained codes show good BER per- formances approaching BER of 10 −6 between 5 and 6 dB for some codes.Figure 2 shows performance curves for codes derived from (3,17), (4,9), and (4, 10) cage graphs.The codes from (4, 9) and (4, 10) cages are expanded by 8 and 4, respectively.The codes perform better than a random code free of four cycles.The (3, 17)-cage LDPC code has the best performance which could be attributed to its large girth of 34. Figure 3 shows performances of codes with higher rates derived from a family of (k, 5) cages.Both codes are expanded by a factor of 2. The code from the (12, 5) cage performs better than that from the (11,5) cage and a random code of about the same size free of four cycles.Though the (11,5) cage code has lower rate and same girth as the (12, 5)-cage, its performance is the worst.Performance differences between (12,5) and (11,5) cages may be attributed to structural differences of the graphs.

Hardware implementation
Codes obtained from cage graphs have low implementation complexity in that they are structured and have only two entries per column.However, not all structured codes are easily implementable.It is therefore important to study the structure of each graph to best exploit it for implementation.Cage graphs differ in construction methods and structure.Figure 4 shows a (6,4) cage graph from which we derive a (36, 2, 6) LDPC code with girth of eight, where (N = 36, j = 2, k = 6).An odd vertex is connected to all even vertices and an even vertex to all odd vertices.In fact, all (k, 4) cage graphs are formed this way with n = 2k.The columns of the code matrix could be arranged as shown in Figure 5.In this matrix, connections are arranged cyclically such that the matrix comprises of 6 × 6 or k × k shifted identity submatrices.We could thus group the matrix rows in two groups of six (or k)  and columns into six (or k) groups of six (or k).The grouping reduces the interconnect complexity between processing nodes.There are fewer groups than individual columns or rows.The number of interconnections and destinations is reduced.Addressing within a group is also simplified.With one known row-column connection in submatrix, the rest of the submatrix connections could be deduced.

CONCLUSIONS
An approach for constructing LDPC codes with column weight of two has been described.Cage graphs are used to represent the code matrix, where vertices are rows and edges are columns.From known cage graphs, codes with very high girths and rates could be constructed.Some derived codes have good bit error rates compared to random codes.However, performance of each code depends on the structure of individual cage graphs from which the codes are derived.

Figure 1 :
Figure 1: LDPC matrix derived from a distance graph.

Table 1 :
Sizes of some known cubic cages.

Table 2 :
Some of known cages' graphs with vertex degree higher than three.