Finite Alphabet Iterative Decoders, Part II: Improved Guaranteed Error Correction of LDPC Codes via Iterative Decoder Diversity
Abstract
Recently, we introduced a new class of finite alphabet iterative decoders (FAIDs) for lowdensity paritycheck (LDPC) codes. These decoders are capable of surpassing belief propagation in the error floor region on the Binary Symmetric channel with much lower complexity. In this paper, we introduce a a novel scheme to further increase the guaranteed error correction capability from what is achievable by a FAID on columnweightthree LDPC codes. The proposed scheme uses a plurality of FAIDs which collectively correct more error patterns than a single FAID on a given code. The collection of FAIDs utilized by the scheme is judiciously chosen to ensure that individual decoders have different decoding dynamics and correct different error patterns. Consequently, they can collectively correct a diverse set of error patterns, which is referred to as decoder diversity. We provide a systematic method to generate the set of FAIDs for decoder diversity on a given code based on the knowledge of the most harmful trapping sets present in the code. Using the wellknown columnweightthree Tanner code with = 20 as an example, we describe the method in detail and show that the guaranteed error correction capability can be significantly increased with decoder diversity.
ptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptptpt
Finite Alphabet Iterative Decoders, Part II: Improved Guaranteed Error Correction of LDPC Codes via Iterative Decoder Diversity
David Declercq, Senior Member, IEEE, Bane Vasi, Fellow, IEEE,
Shiva Kumar Planjery, Student Member, IEEE, and Erbao Li
^{0}^{0}footnotetext: This work was funded by the NSF under grant CCF0963726 and the Institut Universitaire de France grant. Part of the material in this paper was presented at the Information theory and Applications workshop (ITA’2012).^{0}^{0}footnotetext: D. Declercq and E. Li are with ENSEA/University of CergyPontoise/CNRS UMR 8051, 95014 CergyPontoise, France (email: {declercq,erbao.li}@ensea.fr)^{0}^{0}footnotetext: B. Vasi is with the Department of Electrical and Computer Engineering, University of Arizona, Tucson, AZ, 85719 USA (email: vasic@ece.arizona.edu).^{0}^{0}footnotetext: S. K. Planjery is with both the above institutions (email: shivap@ece.arizona.edu).
I Introduction
It is now well established that iterative decoding based on belief propagation (BP) approaches the performance of maximum likelihood decoding (MLD) of the low density parity check (LDPC) codes asymptotically in the block length. However, for finite length LDPC codes, the suboptimality of iterative decoding manifests itself as the inability of the decoder to correct some lownoise configurations due to the presence of specific subgraphs in the Tanner graphs of the code, generically termed as trapping sets [1, 2]. The presence of trapping sets in a code gives rise to the error floor phenomenon which is an abrupt degradation in the error rate performance of the code in the high signal to noise ratio regime. This performance degradation has also been characterized by the notion of pseudocodewords [3], which represent attractor points of iterative message passing decoders, analogous to codewords which are the solutions of the MLD. A precise structural relationship between trapping sets and pseudocodewords of a given Tanner graph and a decoding algorithm is not yet fully established, but it has been observed that the supports of pseudocodewords are typically contained in small topological structures of the LDPC code which are trapping sets for various iterative decoders. It has also been pointed out by several works such as [4] that the minimum weight of pseudocodewords is typically smaller that the minimum distance for most LDPC codes. Thus, the presence of trapping sets in the Tanner graph of the code in principle prevents the iterative decoders to approach the performance of MLD for finite lengths LDPC codes.
An LDPC code is said to have a guaranteed error correction capability under a particular decoding algorithm over the Binary Symmetric channel (BSC) if it can correct all error patterns of weight or less. The guaranteed error correction capability of an LDPC code for the BSC plays a crucial role in its error floor performance as it determines the slope of the error floor [5]. Moreover, the problem of guaranteed error correction is critical for applications such as magnetic, optical and solidstate storage, flash memories, optical communication over fiber or freespace, as well as an important open problem in coding theory. Guaranteed error correction is typically achieved by using BoseChaudhuriHocquenghem (BCH) or ReedSolomon (RS) codes and harddecision decoders such as the BerlekampMassey decoder [17], but very little is known about the guaranteed error correction capability of LDPC codes under iterative decoding. The main reason for this comes from the fact that even though the error floor performance of an LDPC code can be relatively well characterized through the identification of its trapping sets, it is still an arduous task to determine whether a particular iterative decoder succeeds in correcting all error patterns. The guaranteed error correction capability of a particular LDPC code can vary depending on the particular iterative decoder that is being used [6].
In the first part of our twopart paper series, we introduced a new class of finite precision iterative decoders, referred to as finite alphabet iterative decoders (FAIDs) [7, 8], which are much lower in complexity than the BP algorithm but can provide a superior errorrate performance in the error floor region. FAIDs requiring only a small number of precision bits (as small as three) were shown to surpass BP in the error floor region on several codes of practical interest due to its ability to achieve a higher guaranteed error correction capability than the BP algorithm [7, 8, 14]. For instance, on the columnweightthree Tanner code, it was shown that there are bit precision FAIDs that guarantee a correction of up to errors, whereas the BP (implemented in floatingpoint with a maximum of iterations) fails to correct several error patterns [13].
Despite the superior error floor performance achieved by the FAIDs, their performance especially in terms of guaranteed error correction capability is still far from the performance of MLD. For example on the Tanner code, with its minimum distance , a guaranteed error correction of errors achieved by FAIDs is still far from the capability of MLD which is errors, therefore leaving large room for improvement.
In this paper, we aim at reducing this gap by introducing a general approach that can further improve the guaranteed error correction capability of LDPC codes. The approach relies on using a set of carefully chosen FAIDs which are tuned to have different dynamical behaviors in terms of their error correction on a given code. The idea is that if an error pattern cannot be corrected by one particular decoder, there is another decoder in the set that can correct this pattern. The set of selected FAIDs can then be used (either sequentially or in parallel) to collectively correct a diverse set of error patterns including some which were not correctable by a single FAID. This capability of a set of FAIDs to collectively correct a diverse set of error patterns is referred to as decoder diversity. The framework of FAIDs and their simplicity makes them good candidates for decoder diversity as a plurality of FAIDs can easily be defined by specifying their variable node update maps.
The main objective of our approach can be summarized as follows: given a particular LDPC code, we would like to identify a set of FAIDs that when used sequentially or in parallel can correct a fixed number of errors, say . A brute force approach would rely on checking all possible error patterns up to weight for every FAID considered, and then choosing the set of FAIDs that correct all the patterns. However, this brute force approach would be prohibitively complex. Instead, we restrict our attention to only error patterns associated with the harmful topologies present in the code that could be trapping sets. Our approach then involves searching for such topologies in the code, considering all error patterns up to weight whose support lies in these topologies, and then finding a combination of FAIDs that can correct all these particular error patterns. Using the Tanner code as an example, we shall present our methodology in detail and show that the guaranteed error correction capability of the code can be increased from which is achievable by using a single FAID to by using decoder diversity.
The rest of the paper is organized as follows. Section II provides the necessary preliminaries. Section III introduces the concept of decoder diversity and describes our general approach. In Section IV, we use the Tanner code as a case study and discuss in detail how our approach can be used to increase the guaranteed error correction capability of the code. Finally, conclusions are presented in Section V.
Ii Preliminaries
The Tanner graph of an binary LDPC code is a bipartite graph with two sets of nodes: the set of variable nodes and the set of check nodes . The set of neighbors of a node is denoted as , and the set of neighbors of node is denoted by . The degree of a node is the number of its neighbors. We shall consider only LDPC codes with regular columnweight , where all variable nodes have the same degree .
Let denote a codeword of that is transmitted over the BSC, where denotes the value of the bit associated with variable node , and let the channel output vector be denoted as . Let be the error pattern introduced by the BSC such that , and is the modulotwo sum operator. The support of an error pattern , denoted by , is defined as the set of all positions such that . The weight of the error pattern , denoted by is the cardinality of . Let denote the input vector to the decoder, where each also referred to as a channel value, is calculated at a node based on the received value .
Iia Finite alphabet iterative decoders
An level FAID denoted by , is a 4tuple given by . The messages are levels confined to a finite alphabet consisting of levels, where and for any . The sign of a message can be interpreted as the estimate of the bit (positive for zero and negative for one) associated with the variable node for which is being passed to (or from), and the magnitude as a measure of how reliable this value is. The message in the alphabet can be interpreted as an erasure message.
The set denotes the set of possible channel values. For the case of BSC, , where . By convention, we use the mapping and . Let denote the extrinsic incoming messages of a node (check or variable) of degree which are used in the calculation of the outgoing message.
The function is used for update at a check node with degree and is defined as
(1) 
The function is a map used for update at a variable node with degree .
It can described as a closed form function or simply as a dimensional array or lookup table (LUT). More details on the closedform description are provided in the first part of our twopart series of papers. In this paper, we shall only use the LUT form which is convenient for defining multiple update maps required for decoder diversity.
Note that the maps defining must satisfy the symmetry property which is
(2) 
and the lexicographic ordering property which is
(3) 
such that
Let us alternatively define to be where , ,, , , ,, . For columnweight codes, the function can be conveniently represented as a twodimensional array , where , such that for any . The values for can be deduced from the symmetry of . The notations used for the LUT representation of for a 7level FAID are shown in Table I, and some examples are listed in Appendix B.
IiB Trapping sets
For a given decoder input , a trapping set (TS) is a nonempty set of variable nodes that are not eventually corrected by the iterative decoder [1]. A standard notation commonly used to denote a trapping set is , where , and is the number of odddegree check nodes present in the subgraph induced by .
The Tanner graph representation of an TS denoted by is a subgraph induced by containing variable nodes and odddegree check nodes. A code is said to contain a TS of type if there exists a set of variable nodes in whose induced subgraph is isomorphic to , seen as a topological structure. Let denote the number of trapping sets of type that are contained in the code . Also for convenience we shall simply use (instead of the more precise notation ) to refer to a particular subset of variable nodes in a given code that form a trapping set. Finally, let be the collection of trapping sets of type present in code . In other words, is a collection of all distinct subsets of variable nodes whose induced subgraphs are isomorphic to trapping sets of type .
A TS is said to be elementary if contains only degreeone or/and degreetwo check nodes. It is well known that the error floor phenomenon is dominated by the presence of elementary trapping sets [1, 9]. Hence, throughout this paper, we shall only consider elementary trapping sets.
Although the notation is typically used in literature, this notation is not sufficient to uniquely denote a particular trapping set as there can be many trapping sets with different topological structures that share the same values of and . This is important to consider since the topological structure of a particular TS determines how harmful the TS is for the error floor of a given decoder [2]. On the other hand, a notation which includes complete topological description of a subgraph would be extremely complicated and too precise for our purpose. Therefore, we introduce a simplified notation which only captures the cycle structure of the subgraph thus giving a cycle inventory of a trapping set.
Definition 1.
A trapping set is said to be of type if the corresponding subgraph contains exactly distinct cycles of length .
Our choice of notation appears to be sufficient for differentiating between the topological structures of multiple trapping sets, and also includes the definition of codewords of , as the trapping sets corresponds to codewords of weight .
Iii Decoder Diversity
Iiia Decoder diversity principle
We shall now formally introduce the concept of decoder diversity. Let us assume that we have at our disposal a set of level FAIDs denoted by
(4) 
where each is a uniquely defined map. We refer to this set as a decoder diversity set with cardinality , and an element of this set is denoted by where .
Given a code , we would like to determine whether the FAIDs in the set could be used in combination (either sequentially or in parallel) in order to guarantee the correction of all error patterns up to a certain weight . We first introduce notations to denote the set of error patterns correctable by each decoder. Let denote an arbitrary set of error patterns on a code whose Tanner graph is , i.e. a set of vectors with nonzero weight. Let denote the subset of error patterns that are correctable by a FAID .
Definition 2.
We say that the set of error patterns is correctable by a decoder diversity set if
Note that at this point, we have not yet placed any limit on the maximum number of decoding iterations of each decoder , and this issue will be subsequently addressed in Section IV using the example of the Tanner code. Given a set of error patterns up to a certain weight on the code , one would like to determine the smallest decoder diversity set that can correct all such error patterns. This problem is known as the Set Covering Problem, and is NPhard [18]. In this paper, we propose a greedy algorithm which can provide a decoder diversity set of FAIDs that may not necessarily be the smallest set, but can still significantly increase the guaranteed error correction capability of a given code.
Note that in the definition of a decoder diversity set, we do not make any a priori assumptions on the cardinalities of each correctable subset . Typically, strong decoders have large correctable subsets , while other decoders which are selected to correct very specific error patterns, could have a small correctable subset. There are different ways to compose the diversity set from ’s in order to cover the set with the sets . Two distinct ways are illustrated in Fig. 1. Fig. 1 shows a case where the set of error events (represented as a big square) is paved with nearly equally powerful decoders (smaller overlapping squares of similar sizes). Fig. 1 shows another type of covering corresponding to using one strong decoder and a number of weaker decoders (smaller rectangles) dedicated to “surgical” correction of specific error patterns not correctable by the strong decoder.
IiiB Error sets
As mentioned previously, our main goal is to find a, possibly small, decoder diversity set which guarantees correction of a fixed number of errors . In this section, we describe the error sets that will be used for the selection of FAIDs in .
Let be a subgraph that is present in the Tanner graph of code . defines typically closed topological structures such as trapping sets. Let be denoted by the set of all error patterns of weight whose support lies entirely in the variable node set of subgraph :
(5) 
Note that denotes the set of all error patterns in the code . For simplicity, we shall denote this particular set as instead of . Also let denote the sets of all error patterns whose weight is at most .
A brute force approach to ensure a guaranteed error correction capability is to consider all the error patterns in the set for the design of the diversity set . Obviously, the cardinality of such an error pattern set is too large for a practical analysis. Instead, we shall consider smaller error pattern sets, based on the knowledge of the trapping set distribution of the code . It is reasonable to assume that the errors patterns that are the most difficult to correct for the iterative decoders are patterns whose support is concentrated in the topological neighborhood of trapping sets.
Recall that denotes the collection of all trapping sets of type that are present in code . Let denote the set of error patterns of weight whose support lies in a trapping set of type . More precisely,
(6) 
The cardinality of is given by .
Now, let denotes the set of all trapping sets of different types present in the code that have the same parameters . The error sets and associated with are defined as follows:
(7) 
Finally, is the set containing all trapping sets of different types for different values of and , i.e. and its associated error set is:
(8) 
Clearly, , and the cardinality of the latter error set can be further reduced by taking into account certain structural properties that the Tanner graph of the code may have due to a specific LDPC code design. Quasicyclic codes are prime examples of structured codes [11]. Tanner graphs of such codes possess many trapping sets that are not only isomorphic in the sense of their topological structure, but also have identical neighborhoods. Therefore it suffices to consider error patterns associated with any one of these isomorphic topologies rather than considering all of them. Certain LDPC code constructions can ensure that the codes have even more structural properties than just the quasicyclicity. A notable example of constrained algebraic construction is reported in [11], in which the existence of three types of homomorphisms reduces the number of trapping sets of maximum size that need to be considered by several orders of magnitude. More details on the example of the Tanner code shall be provided in Section IV.
From the standpoint of computational complexity, it is indeed important to limit the maximum size of the trapping sets that are included in the set . We now provide a conjecture that gives a criterion for the choice of the values of and , which are needed for defining the error sets.
Conjecture 1.
If there exists a decoder diversity set that corrects all patterns in the set on the code with and sufficiently large , then the decoder diversity set will also correct all error patterns up to weight on the code with high probability.
This conjecture was found to be valid for the test cases that we have analyzed. The first remark concerns the choice of . Typically it has been observed that, in the case of columnweight LDPC codes, most harmful trapping sets have small values of . Note that this is not the case anymore for LDPC codes with , as explained with the concept of absorbing sets in [16].
The above conjecture is analogous to the condition for correcting errors by the MLD, which requires the Hamming weight of error patterns to be lower than . In other words, if a decoder cannot correct all weight error patterns whose support is entirely contained on trapping sets of size smaller than , then it is more likely to not be able to correct more scattered weight error patterns as well: topologically concentrated error patterns are more difficult to correct.
At the present stage of this work, we have not found any counterexample, but have not been able to prove the conjecture. We have analyzed several codes, and for this paper, we present the results of the Tanner code for which the conjecture was verified.
Based on the above conjecture, we now see that considering the set instead of is argued to be sufficient for determining the decoder diversity set that ensures guaranteed error correction capability of , and this has a significant complexity reduction, as will be shown on the Tanner code.
IiiC Generation of FAID diversity sets
We now present the procedure for obtaining the FAID diversity set that guarantees the correction of all error patterns in the set . We shall denote this set by .
Let us assume that we are given a large set of candidate FAIDs that are considered for possible inclusion into the diversity set. This set could be obtained from simulations on different codes or by using a selection technique that was presented in the first part of our twopart series. Our goal is to build a possibly small set from FAIDs belonging to , that collectively corrects all error patterns in . In essence, the procedure described in algorithm 1 runs over all error patterns in and determines their correctability when decoded by different FAIDs from . In algorithm 1, is the maximum number of decoding iterations and denotes the subset of error patterns of that are correctable by the FAID .
Given and , set . Initialize , set . Set . set and . If , proceed to Step 3. Else, , run each FAID on all error patterns in for a maximum of iterations and select the FAID with the largest correctable subset of error patterns , i.e., set D_i=arg max_D_j∈D_base\(D^[k1]∪D^k )—E^r_D_j—.Set . Remove all error patterns corrected by from the set , i.e., . If , proceed to Step 3. Else, proceed to next step. If , set and go back to Step 2a. Else STOP. The algorithm has failed with the initial parameters of and . Set . If , STOP. The algorithm has successfully built the desired diversity set . Else, set , , and . , determine the correctable subsets of error patterns of each FAID denoted by . set . 
The algorithm starts by building the diversity set for a given , then iteratively expands to the diversity sets by including more and more FAIDs from that collectively correct error patterns with increasing weight in . The iterative selection of FAIDs is carried out by keeping track, at each iterative stage, of the set of unresolved error patterns which are not collectively correctable by the FAIDs selected so far, and then choosing additional FAIDs to correct these patterns. For example, if are the FAIDs selected so far for , and denotes the subset of error patterns correctable by FAID , then the set of unresolved error patterns is
The algorithm terminates when , which means that the set
of FAIDs selected up to that point collectively correct all error patterns in
, and therefore constitute the desired
diversity set . Assuming that Conjecture 1 holds,
the obtained diversity set will guarantee a correction of
errors on the LDPC code . As a side result, the algorithm also
gives the FAID diversity sets for .
For example, suppose we want to build a decoder diversity set that achieves a guaranteed error correction of on a code , and suppose we know that all FAIDs in the given guarantee a correction of . We then choose an intitial value of in Step 1 of the algorithm. The algorithm then starts by building the decoder diversity set on the considered error set with the given choices of , , and . The FAIDs are selected from in a greedy manner and included in until all error patterns in are collectively corrected. Then the algorithm next considers the error set in order to build the set . First, all the error patterns correctable by the set are removed from the set to constitute the set . Then additional FAIDs from are selected to correct all the error patterns remaining in , which, together with the FAIDs in , forms the diversity set . The algorithm repeats the procedure for building by operating on the set of error patterns in .
Note that the choices of and can play an important role on whether the algorithm is successful or not in building the desired decoder diversity set. Determining the optimal is beyond the scope of this paper. However, if the algorithm fails in Step 2d, then increasing the value of or considering a larger set for typically allows the algorithm to progress further. We adopted this strategy to obtain a decoder diversity set ensuring a guaranteed error correction on the Tanner code, as shown in the next section.
Iv Case Study: Guaranteed error correction on the Tanner Code
We shall now use the Tanner code [10, 11], as an example to illustrate how the concept of decoder diversity can be used to increase the guaranteed errorcorrection capability of the code with reasonable complexity. The Tanner code, which is an LDPC code with regular column weight and row weight , is a particularly good test case for the following reasons. First, the difference between its minimum distance and its minimum pseudodistance is large, which means that the difference in the guaranteed error correction capability between traditional iterative decoders (GallagerB, MinSum, BP) and the MLD is expected to be large. Therefore, there is a scope for improvement in reducing this gap using the approach of FAID decoder diversity. Second, the Tanner code is sufficiently small and structured (the code has quasicyclicity equal to 31) so that a brute force checking of whether all error patters up to certain weight are corrected by a decoder diversity set, can be carried out by Monte Carlo simulations with reasonable computation time.
For comparisons, Table II shows the guaranteed error correction capability of the existing decoders on the Tanner code. We also found by exhaustively checking through simulations [14] that there are no 7level FAID that can guarantee a correction of on this particular code. However, using the approach of decoder diversity, we show that it is possible to increase the guaranteed error correction capability of the code to . As mentioned in the previous section, we only consider error patterns belonging to where and large enough. For this code, we verified by simulations that the value of was sufficient to determine the decoder diversity set .
The graph structure of this Tanner code satisfies certain properties in addition to the quasicyclicity property [10]. These properties which are based on homomorphisms of groups allow for further reduction in the number of error patterns that need to be considered. Following notations of [10], the transformations , , and act on the indices of the variable nodes and preserve the topological structures. The transformation comes from the quasicyclicity of the code and allows then a constant reduction factor of for all the TS topologies, while the other transformations and can bring another factor of reduction, depending on the type and location of the TS. More details on the three different transformations that the Tanner graph of this code follows are reported in Appendix A.
The full enumeration of trapping sets with and is presented in Table III. The first column of the table gives the parameters, and the second column indicates the TS cycle inventory of different TS types (the cycle inventory is omitted for the parameters that allow too many cycleinventory types). The last three columns show the numbers of trapping sets that need to be checked by the Algorithm 1 when the code homomorphisms are exploited. corresponds to the number of trapping sets present without taking any code structure into account, corresponds to the number of trapping sets present after taking into account the quasicyclic property obtained from the transformation , and corresponds to the number of trapping sets present after taking all three transformations , and into consideration. The small section of the Table at the bottom shows the structure and number of the lowest weight codewords of different types.
These trapping sets have been enumerated using the modified impulse algorithm, which is known as the most efficient algorithm to find lowweight codewords or nearcodewords of a given short length LDPC code [12, 15]. When the number of types was too large, we did not indicate the details of the TS notation. It is clear from the Table that the number of topologies needed to be considered to characterize the behavior of an iterative decoder on the Tanner code could be greatly reduced. Actually, the number of structures (including isomorphic) of given type present in the code could be multiples of either , or and this number is reduced for the analysis by the transformations . The TS of type (5,3;) is an example where there are such structures in the Tanner code, while (20,0)typeIII codewords is an example where there are such structures.
Iva Error sets for the Tanner code
The error sets that we have considered for the Tanner code are shown in Table IV along with their cardinalities. The cardinalities of the error sets have been reduced using the structural properties , , and of the Tanner code to:
(9) 
where is the value obtained from Table III.
One can further reduce the number of error patterns considered in each error set, since a particular error pattern belonging to an error set of a small trapping set may also be included in the error set of a larger trapping set containing the smaller one. For example, a 5error pattern on one of the TS could be also listed as one of the 5error patterns in the TS if is contained in . Therefore, we also take this into account by including only the error patterns in the error set that are distinct from all error patterns in with and . This leads to a further reduction in the number of error patterns considered in error sets, and the final number is reported at the bottom of Table IV. From the Table, we can see that the complexity reduction factor in each case is of the order of , which is very large and in any case sufficient to reduce the complexity of finding the decoder diversity set to a reasonable level.
IvB Error correction results for the Tanner code
Let us recall that we consider only 7level FAIDs for decoder diversity which require only 3 bits of precision for their message representation. Our main results are summarized in the Table V. We are able to guarantee a correction of errors on the Tanner code using FAIDs with iterations.
We also verified by brute force Monte Carlo simulations that each of the obtained diversity sets for guarantees a correction of all error patterns of weight at most on the Tanner code even though only error patterns in with were used in the algorithm, thus validating the conjecture stated in Section IIIB.
Due to the huge cardinality reduction in the error sets considered (as shown out in Table IV), we were able to identify the decoder diversity set for in less than one hour, and for in a few days. Note that decoder diversity does not require any postprocessing, as it is still an iterative message passing decoder with the additional feature that the the variable node update rule changes after iterations (and the decoder is restarted). Note also that additional complexity reduction can be achieved by exploiting any existing similarities between the update rules of the FAIDs in the decoder diversity set.
In order to illustrate how different 7level FAIDs in the decoder diversity set can behave in terms of their correctability of different error patters in the error set, we provide two examples with the help of Table VI.
The first part of the Table VI shows an example of using equally powerful decoders in the diversity set. Statistics are provided on the number of correctable error patterns by each 7level FAID in the decoder diversity set from the error set . The LUT maps of that define these 7level FAIDs are reported in Table VII of Appendix B. For convenience, we have noted and . Recalling that the total number of error patterns in is , we can see that all decoders in are in fact almost equally powerful in terms of the number of error patterns they correct. However, all decoders when used in combination are able to collectively guarantee an error correction of .
The second part of Table VI provides an example of how certain decoders, that we refer to as “surgeon” decoders, can be used to specifically correct certain error patterns not correctable by the particularly good decoders. The statistics shown in the Table are for eight different FAIDs (labeled to for convenience) that were selected to correct eight particular error patterns in the error set . These eight different FAIDs are required to separately correct each of these error patterns. Moreover, in comparison with the statistics obtained from the FAIDs belonging to on the 6error patterns, these decoders are not as strong as the first nine decoders to . Five of them especially have very poor behaviors on the 6error events.
These two examples clearly show that in order to guarantee error correction, the decoder diversity sets can pave the error sets in very different manners. In summary, for error correction, the decoder diversity set behaves roughly like in Fig. 1, while for error correction, the decoder diversity set behave more like in Fig. 1 using both powerful and surgeon decoders. The list of FAIDs to and to are reported in Appendix B.
Fig. 2 shows the remaining error patterns in after the sequential use of the FAIDs in followed by the FAIDs in , and then followed by FAIDs in .
Fig. 3 shows the FER performance of the decoder diversity set , when simulated on the Tanner code over the BSC channel with crossover error probability and with a maximum of decoding iterations for each decoder. One can see that, especially in the error floor region, the use of an increasing number of FAIDs increases the slope of the FER curve, and eventually reaches a slope of , which corresponds to the minimum weight error pattern that is not corrected by our decoder diversity set .
V Conclusions
We introduced a general decoding scheme that utilizes a collection of several different FAIDs, which is referred to as a decoder diversity set, in order to further increase the guaranteed error correction capability of a given LDPC code from what is achievable by a single FAID. We provided a methodology to build the decoder diversity sets based on using the trapping set distribution of the code, and considering error patterns that are only associated with the trapping sets present in the code. Using the Tanner code as an example, we showed that the structural properties of the code can be exploited to reduce the complexity in terms of reducing the number of considered error patterns by several orders. We were able to increase the guaranteed error correction capability of the Tanner code using our approach of decoder diversity, from errors that is achievable by a single FAID to errors by FAID decoder diversity. Note that the BP algorithm is able to guarantee a correction of only on the Tanner code. Although our discussion throughout this paper primarily focused on the particular example of the Tanner code, the technique can be applied to other codes with regular column weight , provided that the Trapping set distribution is known (which is a reasonable assumption for short to moderate codeword lengths).
A Topologies of the Tanner Code
As explained in [10], there are three types of homomorphisms which preserve the topological structures in the graph of the Tanner code, due to the fact that Tanner’s design of the paritycheck matrix is based on an array of circulants of size , and that the values of shifts for the circulant matrices are chosen from two multiplicative subgroups of the Galois field GF. For easy understanding, we shall instead present the homomorphisms as simple transformations acting on the indices of the variable nodes in the code. Let (respectively ) be two elements of GF with multiplicative order (respectively ). The parity check matrix is defined by an array of circulants with shift orders . Now, let the index of a variable node be expressed as . We now define the three following transformations acting on the indices of that preserve the topology as well as the neighborhood of the TS.

blockcyclicity: Let . Then

rowwise transformation: Let . Then

columnwise homomorphism: Let . Then
Consider a trapping set of size bits denoted by . By applying the transformation on such that where , the induced subgraphs of and are isomorphic to each other in the code , i.e., they have exactly the same topology and neighborhood. This implies that one has to only consider error patterns associated with one of the isomorphic structures instead of all of them. The same applies for the transformations and . By applying all three transformations , the number of trapping sets of a certain type that need to be considered is significantly reduced.
B List of 7level FAIDs used
References
 [1] T. Richardson, “Error Floors of LDPC Codes,” in Proc. Allerton Conf. on Commun., Control, and Computing, Oct. 2003.
 [2] B. Vasic, S. K. Chilappagari, D. V. Nguyen, and S. K. Planjery, “Trapping set ontology,” in Proc. Allerton Conf. on Commun., Control, and Computing, Sep. 2009.
 [3] C. A. Kelley and D. Sridhara, “Pseudocodewords of Tanner Graphs,” IEEE Trans. Inf. Theory,, vol. 53, no. 11, pp. 4013–4038, Nov. 2007.
 [4] R. Koetter and P. Vontobel, “Graphcovers and Iterative Decoding of Finite Length Codes,” in Proc. Int. Symp. on Turbo codes and Iterative Inform. Process., Brest, France, Sep. 2003.
 [5] M. Ivkovic, S. K. Chilappagari, and B. Vasic, “Eliminating trapping sets in lowdensity paritycheck codes by using Tanner graph covers,” IEEE Trans. Inf. Theory, vol. 54, no. 8, pp. 3763–3768, 2008.
 [6] S. K. Chilappagari, A. R. Krishnan, and B. Vasic, “LDPC codes which can correct three errors under iterative decoding,” in Proc. IEEE Inform. Theory Workshop (ITW’08), Porto, Portugal, pp. 406–410, May 2008.
 [7] S. K. Planjery, D. Declercq, L. Danjean, and B. Vasic, “Finite alphabet iterative decoders for LDPC codes surpassing floatingpoint iterative decoders,” Electron. Lett., vol. 47, no. 16, pp. 919–921, Aug. 2011.
 [8] S. K. Planjery, D. Declercq, S.K. Chilappagari, and B. Vasic, “Multilevel decoders surpassing belief propagation on the binary symmetric channel,” in Proc. IEEE Int. Symp. on Inform. Theory (ISIT’10), Austin, TX, pp. 769–773, Jun. 2010.
 [9] S. K. Chilappagari, S. Sankaranarayanan, and B. Vasic, “Error floors of LDPC codes on the binary symmetric channel,” in Proc. IEEE Int. Conf. on Commun. (ICC ’06), Istanbul, Turkey, pp. 1089–1094, Jun. 2006.
 [10] M. Tanner, D. Sridhara, and T. Fuja, “A class of groupstructured LDPC codes,” in Proc. ICSTA 2001, Ambleside, England, 2001.
 [11] M. Tanner, D. Sridhara, A. Sridharan, T. Fuja and D. Costello Jr., “LDPC block and convolutional codes based on circulant matrices”, IEEE Trans. Inf. Theory, vol. 50, no 12, pp. 2966–2984, Dec. 2004.
 [12] D. Declercq and M. Fossorier, “Improved Impulse Method to Evaluate the Low Weight Profile of Sparse Binary Linear Codes”, in Proc. IEEE Int. Symp. on Inform. Theory (ISIT’08), Toronto, Canada, Jul. 2008.
 [13] D. Declercq, L. Danjean, S. K. Planjery and B. Vasić, “Finite alphabet iterative decoding (FAID) of the (155,64,20) Tanner code,” in Proc. Int. Symp. on Turbo codes and Iterative Inform. Process., Brest, France, Sep. 2010.
 [14] L. Danjean, S. K. Planjery, D. Declercq and B. Vasić, “On the Selection of Finite Alphabet Iterative Decoders for LDPC codes on the BSC,”in Proc. Inform. Theory Workshop (ITW’11), Paraty, Brazil, Oct. 2011.
 [15] S. AbuSurra, D. Declerq, D. Divsalar, and W. Ryan, “Trapping Set Enumerators for Specific LDPC Codes,” in Proc. of the Inform. Theory and App. Workshop (ITA’10), San Diego, CA, Feb. 2010.
 [16] L. Dolecek, Z. Zhang, V. Anatharam, M. Wainwright and B. Nikolic, “Analysis of Absorbing Sets and Fully Absorbing Sets of ArrayBased LDPC Codes,” IEEE Trans. Inf. Theory, vol. 56, no 1, pp. 181–201, Jan. 2010.
 [17] F. MacWilliams and N. Sloane, “The Theory of ErrorCorrecting Codes”, NorthHolland Mathematical Library, 1978.
 [18] Richard M. Karp (1972), Reducibility Among Combinatorial Problems, R. E. Miller and J. W. Thatcher (editors). Complexity of Computer Computations. New York: Plenum. pp. 85103.
 [19] D. Declercq, B. Vasić, S. K. Planjery, and E. Li, “Finite Alphabet Iterative Decoders Approaching Maximum Likelihood Performance on the Binary Symmetric Channel,” Proc. Inform. Theory and Applications Workshop, Feb. 2012.
Algorithm  Reference  

Gallager A and Gallager B  [6]  
MinSum and Belief Propagation  [8]  
5level and 7level FAIDs  [13] 
TSlabel  
(5,3)  (5,3;)  155  15  1 
(6,4)  (6,4;)  930  30  2 
(7,3)  (7,3;)  930  30  2 
(8,2)  (8,2;)  465  15  1 
(8,4)  4 types  5012  165  11 
(8,4;)  45  3  
(8,4;)  15  1  
(8,4;)  90  6  
(8,4;)  15  1  
(9,3)  3 types  1860  60  4 
(9,3;)  15  1  
(9,3;)  30  2  
(9,3;)  15  1  
(10,2)  2 types  1395  45  3 
(10,2;)  15  1  
(10,2;)  30  2  
(10,4)  27 types  29295  945  63 
(11,3)  11 types  6200  200  14 
(12,2)  2 types  930  30  2 
(12,2;)  15  1  
(12,2;)  15  1  
(12,4)  170 types  196440  6240  416 
(13,3)  53 types  34634  1155  79 
TSlabel  

(20,0)  3 types  1023  33  3 
typeI  465  15  1  
typeII  465  15  1  
typeIII  93  3  1  
(22,0)  14 types  6200  200  14 
(24,0)  97 types  43865  1415  97 
5errors  6errors  7errors  
1  1  
12  12  2  2  
42  23  14  11  2  2  
56  20  28  15  8  6  
616  398  308  240  88  79  
504  100  336  110  144  72  
756  399  630  416  360  277  
15 876  7 064  13230  7860  7560  5421  
6468  1958  4620  1894  
1848  766  1584  857  
384 384  163 562  329 472  187 360  
135 564  31 890  
37 752  8 157  
9 129 120  3 326 862 
5errors  6errors  7errors  

8 017  174 940  3 562 877  
698 526 906  17 463 172 650  371 716 103 550  
Comp. Reduction Factor  Comp. Reduction Factor  Comp. Reduction Factor  
87 130  99 824  104 330 
1  15  
9  50  
243  120 
Decoder  
11724  11779  11777  11782  11784  11770  11759  11623  11724  
remaining errors  105  16  10  7  4  3  2  1  0 
Decoder  

1  1  1  1  1  1  1  1  