Generalized Low-Density Parity-Check Codes: Construction and Decoding Algorithms

Scientists have competed to find codes that can be decoded with optimal decoding algorithms. Generalized LDPC codes were found to compare well with such codes. LDPC codes are well treated with both types of decoding; HDD and SDD. On the other hand GLDPC codes iterative decoding, on both AWGN and BSC channels, was not sufficiently investigated in the literature. This chapter first describes its construction then discusses its iterative decoding algorithms on both channels so far. The SISO decoders, of GLDPC component codes, show excellent error performance with moderate and high code rate. However, the complexities of such decoding algorithms are very high. When the HDD BF algorithm presented to LDPC for its simplicity and speed, it was far from the BSC capacity. Therefore involving LDPC codes in optical systems using such algorithms is a wrong choice. GLDPC codes can be introduced as a good alternative of LDPC codes as their performance under BF algorithm can be improved and they would then be a competitive choice for optical communications. This chapter will discuss the iterative HDD algorithms that improve decoding error performance of GLDPC codes. SDD algorithms that maintain the performance but lowering decoding simplicity are also described.


Introduction
Generalized LDPC (GLDPC) block codes were first proposed by Tanner [1] as they internally contain block codes (which are called component codes) and not just single parity check (SPC) as the case in LDPC codes. From this definition, we know that LDPC codes can be regarded as a special class of GLDPC codes. GLDPC block codes possess many desirable features, such as large minimum distance [2], good iterative decoding performance, and low error floor [3]. At the same time, the complexity of the processed operations increases due to the inserted complicated constraints. Therefore, scientists are stirred to find a good GLDPC code with suitable subcodes achieving the desired error performance at fair complication. The methods in [4] by Fossorier and the Bahl-Cocke-Jelinek-Raviv (BCJR) algorithm [5], APP decoding algorithm, are vastly investigated for GLDPC decoding. Both algorithms perform the task with various subcodes, such as Hamming codes [2,6], BCH codes [6,7], RS codes [7], and GLDPC code with hybrid subcodes [8,9]. However, these decoders can be considered highly complicated. In [10], a kind of Hadamard-based GLDPC codes was suggested. The complicated decoding processes were avoided due to the easiness and fastness of the used subcode transform (FHT). On the other hand, this code is not convenient in many communication systems as it is described as low code rate (R ≤ 0:1). The soft-input/soft-output (SISO) decoders for decoding the component codes in GLDPC codes were considered in [2,6] and [11] showing very good error performance with moderate and high code rate. Two interesting approaches at GLDPC codes have been presented in [4,12]. In [12] the proposed construction concentrates on maximizing the girth and the minimum distance of the global code. The generated codes achieved coding gain up to 11 dB over 40 GB/s optical channel. In [4] the authors propose doubly generalized LDPC codes. These codes employ local codes at both variable and check nodes. Back to LDPC codes and since their resurrection, most research efforts were directed toward the implementation of these codes over the additive white Gaussian noise (AWGN) channel. The LDPC codes were proven to perform very close to the Shannon limit of AWGN channel, and much work has been carried out to design optimal codes and improve and simplify iterative decoding of these codes over the AWGN channel. The major drawback is that it exhibits considerable computational complexity. Gallager accurately, on the other hand, analyzed the performance of LDPC codes over the binary symmetric channel (BSC) in his original paper and proposed two HDD bit-flipping (BF) algorithms, for which he provided theoretical limits under iterative decoding. However, BF algorithms did not gain much attention. Most of the work that considered BF decoding used it in conjunction with soft information obtained from AWGN channel to improve decoding performance. However, in some applications, such as optical communications, soft values are not available at the receiver. Therefore, optical channels are an excellent example of the BSC, and only hard decision decoding is possible. Currently, BCH and RS codes are exclusively used in optical communication for error control, since there are simple and efficient algorithms for decoding. With the recent introduction of wavelength division multiple access (WDMA), transmission rates in optical communications reach 40 GB/s per channel/fiber, a standard in modem optical networks, SONET/SDH. Moreover, the concept of signal regeneration was abandoned in optical communication with the advancement in lasers so that optical signal is transmitted over larger distance than before, reaching the receiver very attenuated. These developments in optical communication call for an error control code which is very powerful yet has a simple and fast decoding. Furthermore, very low error rates are needed, say BER of 10 À15 .
The BF algorithm proposed by Gallager is a HDD algorithm and is implemented using modulo-2 logic. Therefore it satisfies the requirement for simplicity and speed. However, the performance of the decoding algorithm is far from the capacity of the BSC, and, more importantly, an error floor is generally observed, which seriously constrains implementation of LDPC codes in optical systems. GLDPC codes can be introduced as a good alternative of LDPC codes as their performance under the BF algorithm can be improved and the observed error floor can be lowered or even removed. GLDPC codes would then be a competitive choice for optical communications.
In this chapter, iterative decoding of GLDPC codes over AWGN and BSC is studied. HDD algorithms that improve decoding performance and error floor behavior of GLDPC codes over BSC channels are discussed. They make GLDPC codes very competitive for high-rate optical communications. Soft decision decoding (SDD) algorithms that maintain the performance but lower decoding simplicity are also presented.

GLDPC code construction
The check node in the bipartite graph of the LDPC code, as said before, is connected to a number of variable nodes which satisfy a single parity check. The GLDPC is a more generalized form of LDPC as the bits of the VNs, connected to the same CN, constitute a valid codeword of a (n,k) linear block code (other than the simple SPC code). Therefore this (n,k) code is called a constituent code, component code, or simply subcode. The CN which associates with this generalized code is called a generalized CN (GCN). The GLDPC code is referred to as a (N, J, n) regular and "strict-sense" code, as depicted in Figure 1, if: • The VN degree (denoted as q w ) is constant for all VNs (q w ¼ J).
• The GCN degree (denoted as q c ) is constant for all GCNs (q c ¼ n).
• The same constituent code (other than the simple SPC code) stands for all GCNs. where J is the column weight in the parity-check matrix of the global LDPC code and N is the overall code block length. The GLDPC code is otherwise called "hybrid code" (if not all the GCNs has the same constituent code) [8,13].
The GLDPC code rate is given by where K denotes its code dimension and N denotes its block length. The GLDPC code, according to the chosen values of its parameters, has multiple wonderful properties such as the better minimum distance (compared to LDPC code with the same code rate) [2]. The GLDPC also converges faster, and it is distinguished by the lower error floor [3]. We are interested here with GLDPC codes based on Hamming codes for simplicity and fast decoding purposes. Figure 1 elaborates the bipartite graph of a N; J; n ð Þregular Hamming-based GLDPC code with (4 Â 32) global LDPC matrix. The extended Hamming (8,4) constituent code is represented in every GCN. Figure 2 depicts the procedures to get the overall parity-check matrix of this code from the global LDPC matrix (or referred to as the graph adjacency matrix). Every "1" in every row in the global matrix is replaced with a column from the columns of the constituent code parity-check matrix, and every "0" is replaced with a zero column. The assignments of the constituent code H columns should be randomly done to generate a code with good characteristics. There are other constructions of GLDPC which can be further discussed in [14][15][16].

SDD of GLDPC codes
SDD of Hamming-based GLDPC codes was presented in the literature and shows that GLDPC codes are asymptotically good and can achieve the capacity by iterative decoding using soft-input/soft-output subcode decoders [2,6,17]. The SISO decoder is typically a sub-optimal erasure decoder extended to deliver soft outputs, e.g., chase-II decoder [18], which is used in this section. A N; J; n ð ÞGLDPC code is constructed from a N:J=n ð Þby N random sparse matrix H, with row weights of n and column weights of J, and the parity-check matrix H c of a n; k; d ð Þsubcode. The resultant GLDPC parity-check matrix is denoted as H GLDPC as discussed in Section 2. At any GCN c, the input to the chase decoder is R c ¼ r c, 1 ; ⋯; r c, i ; ⋯; r c, n f g corresponding to the transmitted word X c ¼ x c, 1 ; ⋯; x c, i ; ⋯; x c, n f g and its hard demodulated values Y c ¼ y c, 1 ; ⋯; y c, i ; ⋯; y c, n n o .
A group of codewords are selected as the most likely ones that hold the transmitted words with the minimum errors. The algorithm operates on the available data (reliability) and flips all possible combinations of p ¼ d=2 demodulated symbols with the least-reliable positions (LRPs). Setting the reliability information in [19] in the log-likelihood ratio (LLR) of decision y c, i as A set Z c ¼ Z q c È É of error patterns with all possible errors confined to p LRP positions of Y c is used to modify Y c yielding list of test patterns T q c q ∈ 1; ⋯; Then every T q c in the list is decoded using algebraic decoder, and the valid decoded codeword C q is stored in a list Ω as a candidate codeword. Decision codeword D c ¼ d c, 1 ; ⋯; d c, i ; ⋯; d c, n f g should be chosen from this list as it is obtained using the rule [20]: Now, every decoded symbol resulting value in the subcode (soft) is to be estimated to be passed back on the edges, linked to symbol nodes with steps as the MP algorithm iteratively to output a final estimate after performing a predefined amount of iterations or satisfying the syndrome check.
In order to calculate the reliability of each bit, d c, i , in the decision D c (i.e., the ith soft output of the soft-input decoder), two codewords C þ1 i ð Þ and C À1 i ð Þ are to be selected from two sets of Ω with minimum Euclidean distance from R. The decision D c is one of them, and the second one, B c ¼ b c, 1 ; ⋯; b c, i ; ⋯; b c, n f g , called as competing codeword of D with b c, i 6 ¼ d c, i , should be found.
The soft outputs are generated in the LLR domain outgoing from GCN c using the following approximation formula: If the competing codeword B c is not found, the following alternative and efficient formula is used: where β is a reliability factor. Due to the variation of sample deviation in the input and in the output of the soft decoders, we put a scaling factor, α, to increase the convergence rate: By subtracting the soft input r c, i from the soft output r 0 c, i for each i ∈ 1; 2; ⋯; n f g at GCN c, the extrinsic information during the tth iteration, W t ð Þ, is obtained. It is then multiplied by the scaling factor, α t ð Þ, added to the channel observed values R c , and the result is considered as a priori information for the decoder at the next t þ 1 ð Þth iteration. Figure 3 shows that a chase rather than optimal SISO decoder can be successfully employed in the decoding of high-rate extended Hamming-based GLDPC codes and the BERs are close to the capacity with the efficient fast chase decoding in [21].

HDD of GLDPC codes
The HDD such as BF decoding or any other algebraic decoding scheme can be generalized to GLDPC codes especially over BEC or BSC and can be applied in very high-speed applications such as the 40 GBps optical communications. The errorcorrecting capability of the subcodes, at the GCNs, is used to more accurately determine the position of least-reliable symbols. The iterative HDD algorithms for decoding GLDPC codes will be described in the next subsections.

WBFV algorithm
As mentioned before in BF algorithm of LDPC codes, symbols belonging to the maximum number of unsatisfied CNs, in each iteration, have the binary bits inverted before the following iteration. Subsequently, the failed CNs convey their votes of unit weight to the corresponding connected VNs, and the algorithm inverts the LR bits with the highest amount of votes.
The presented iterative weighted bit-flip voting (WBFV) in [22] employs subcode hard decision decoders (HDDs) at the GCNs that have a greater range of vote weights passed to the connected VNs. It passes the high-weight votes to a specific symbol if the HDD, at a given GCN, considers it to be in error.
As the GLDPC codes of Gallager construction, J ¼ 2, and Hamming subcode are only concerned, all nonzero syndromes of these subcodes will be error-correctable. The algebraic decoders only allow for two instances: • All-zero syndromes imply a valid codeword; in this case a vote V will be returned to all connected VNs (symbols) as in GCN 1 in Figure 4. • Nonzero syndromes imply nonvalid codewords; in this case the indicated error position will be sent a vote E, and all other bits a vote e as in GCN 2 in Figure 4.
After votes have been cast, each symbol has received a vote pair: either VV, eV, ee, EV, Ee, or EE. In the example shown, the symbol at the two subcodes' intersection has a vote pair eV.
The strategy proceeds by passing current bit values from the VNs to the Hamming decoders at GCNs. The HDDs at these GCNs pass back n individual votes to the symbols they connect.
The magnitude of a vote marks the power of the decision for a GCN about the current symbol (reliable or not). The higher magnitudes mark the unreliable bits, and the lower ones mark the bits of more reliability.
The J arriving votes to every VN are collected such that all N variable symbols are sorted by the reliability information and the group of LRP bits inverted before the upcoming iteration.
The iterative algorithm proceeds until all symbols become of weight pair VV or the maximum number of iterations is reached. For Hamming subcodes there are only three votes V, e, and E generated by the subcode HDDs described before. The vote rules, as sets of vote weights, are defined and listed in Table 1.   Figure 5 shows that there is an obvious coding gain with increasing N. Actually, the BER curve p required to give P b ¼ 10 À5 versus N showing a linear relationship between log p and log N.

BCH-based Fossorier decoding algorithm
In [6] GLDPC codes with BCH subcodes (instead of Hamming subcodes) were considered, but for AWGN channel and ML soft decoding due to its higher errorcorrecting capability. The algorithm presented here also uses the high-rate BCH and RS codes, but as HDD algorithm, and can be efficiently applied in very high-speed (40 GBps) optical systems as the soft information is not available due to opticalelectrical conversions [7].
The actions of this algorithm are updated as follows: VN i is considered to be connected to the GCNs j and k. Two messages will be sent from GCN j to VN i. First, it outputs u ji (the value of VN i) taken out from the sub-decoder. Second, it outputs U ji (represents data about success or failure of GCN decoding). U ji is then a binary signaling with estimate 1 if there is a valid word or estimate 0 if there is not. W.r.t the arriving messages from node k, the same action is applied.
The VN message v ij depends on the value received from the channel y i , and the messages received from the GCNs other than node j. Since GLDPC codes of high code rate (J ¼ 2) is only concerned, there is only one other GCN k). Hence, the updating rule in the symbol node can be expressed as where U ki is the complement of U ki . The processes of the decoder are carried out until the satisfaction of all GCNs or until reaching a certain amount of iterations. Finally, any symbol (VN) connected to a satisfied GCN will take its proposed value. If the VN connected to two unsatisfied GCNs, it will take the original received value.
RS-based GLDPC code of rate r ¼ 0:467 and different lengths are examined ( Figure 6). It shows that RS (15,11,5) product code performs better than the corresponding GLDPC of length 225, because it possesses a better minimum distance. As N increases, the BER is improved particularly in the region of error floor.  A HDD decoder founded on BF algorithm is presented in [23]. The main view depends on taking advantage of the different sub-decoder states. Therefore it adds this data representing these states as a reliability factor to be utilized for the rest of the decoding process. This additional data (in the form of additional bit) is inserted in two sides (VNs and CNs).
The goal is generally to remove all likely produced trapping sets (that generate non-editable errors) from the code construction. This approach is presently still not obtainable due to constraints in the processing speed and implementation. An alternative approach that fulfills the most of this goal is suggested (with reasonable processing speeds). That approach adds resources only operated in unusual circumstances when the previously mentioned trapping sets happen.
Taking commonness into account and due to its simplicity, the extended Hamming code is studied inside the GLDPC codes.

Failure analysis
In the case of using the ext-Hamming code d min ¼ 4, the sub-decoders of GLDPC code may output errors in both cases of decoding success or failure. At GCN failure case, it cannot clearly locate the error place. In the case of GCN decoding success, the errors may be generated from undiscovered errors (when a received word decoded to non-sent valid ones, i.e., e ≥ 4) or faulty repair (when e > 2). Therefore, the errors at a given GCN can be distinguished by the following names: 1. Plain single error (element P): one error and true correction take place.
4.Dark set (D-set): multiple errors (e ≥ 4) not detected by the decoder which produce zero-syndrome vector.

Algorithm description
As GLDPC code with 1B-construction is studied in [22] as in Figure 7, a further bit is inserted beside the main bit moving between the VN and GCN. For VNs, it acts as the reliability of its bit value (bit 1 if suspect or bit 0 if assumed correct), and it forwards this additional data to be used by GCNs. For GCNs, this additional bit acts as the power of its decision by raising the reliability levels to 4. The GCN decodes the received word, forwards a signal (bit 1 or 0, namely, flip or keep), and appends this additional bit as the power of this signal (in ascending reliability level arrangement, 1 þ 11 ð Þ, 1 À 10 ð Þ, 0 À 00 ð Þ and 0 þ 01 ð Þ, corresponding strong flip, weak flip, weak keep, and strong keep, respectively).

Horizontal processing
Specifying the ext-Hamming decoder, there are three states at a given GCN as state "0" in the case of zero syndrome, state "1" in the case of one-error repair, and state "2" in the case of decoder failure. As illustrated in Figure 8, representing the outgoing flip message and its reliability, respectively, from GCN c to VN w i . Table 2 illustrates the four possible outgoing messages from GCN c to every connected VN w i .  ð Þ, the algorithm can improve its decision, and the horizontal process iteratively continues as illustrated in [23].
For d l ð Þ c ¼ 0, the counter role is to enhance the reliability from 0 À to 0 þ if the state remains for two consecutive iterations. For any GCN c and d l ð Þ from the bit w i indicates a suspected bit and the decoder state (d l ð Þ c ¼ 2) remains for three consecutive iterations, the decoder recalculates the syndrome after flipping this suspect. If the syndrome check is satisfied (i.e., valid codeword), the decoder estimates that bit as error and degrades its reliability from 1 À to 1 þ .

Vertical processing
With four reliability levels and J ¼ 2, there will be a set of 10 possible combinations of incoming messages at VN w, w ¼ 1, 2, ⋯, N. This set can be divided, according to the failure analysis, into three subsets s i ; i ¼ 1; 2; 3 f g . For any VN w, its reliability state r l ð Þ w is determined based on its incoming messages (from GCNs c j , with j ¼ 1; 2 f g) to which subset it belongs:  Table 2.
Possible outgoing messages from GCN c to any connected VN.
The VN w with least-reliable level, r ð Þ ¼ 0, j ¼ 1, 2 (i.e., assumed correct bit). Figures 9-11 show the block diagrams of the overall decoder, horizontal process, and vertical process, respectively. Table 3 illustrates an example for ext-Hamming (8,4) constituent decoder employed at GCN c n ¼ 8 ð Þat lth iteration as the shaded parts represent certain conditions satisfied.

Important notes on the algorithm
• The output messages from VN w to its two connected GCNs c j , j ¼ 1, 2 are the same (i.e., V l ð Þ is the outgoing message from GCN c to VN w i consisting of two bits representing the reliability level (one of four possible values 0 + , 0 À , 1 À , or 1 + ).
• The GCN decoder does not output actual decoded words to its connected VNs. Instead, it sends a reliability signal (taking a value of four possible values) which is represented by two bits U l ð Þ cw i 1 ð Þ and U l ð Þ cw i 2 ð Þ. On the other hand, the VN has to take a decision based on its incoming messages. The decision is (Flip), (Keep but as suspect) or (Keep as assumed correct).
• The function of GCN state counter α l ð Þ c or VN state counter γ l ð Þ w is to count the number of consecutive iterations with the same state (at this GCN or VN) up to this present iteration l ð Þ, respectively. Table 3.
Example of ext-Hamming (8,4) constituent decoder employed at GCN c at lth iteration. Figure 11. Block diagram of the vertical process of the TSSA-BF decoder. Figure 12 is showing the BER performance of the ext-Hamming-based GLDPC code (with overall rate R ¼ 0:625) by the TSSA-BF algorithm compared to HD decoder BF algorithms in [7,22] and SD chase sub-decoder (number of LRPs p ¼ 2). The finite-length 1B-construction-GLDPC codes of block length N = 4096 is used, and the maximum number of iterations (I max ) is set to 20. It is noted that this algorithm outperforms the other HDD ones along various values of E b =N o with gain not <0.5 dB at the expense of a little increase in resources used by the algorithm.

Classification-based algorithm for BF decoding with initial soft information
This algorithm is a modern bit-flipping decoding approach [24]. It is established on taking advantage of the fast BF HDD method with the help of the data extracted from the AWGN channel.
However it exploits this data at only the start phase of the decoding intentionally to make a certain classification operation. This algorithm also improves its performance by adding an additional bit in the arriving messages at VNs from CNs as a technique to enhance the decision reliability at both VNs and GCNs. The main role of this additional bit is to benefit from the subcodes states as in [23] but with a distinct fashion. This approach allows for considerable enhancement in BER at the expense of additional resources at only the side of VNs. SDD is characterized by complexity and the need to a large amount of real calculations (according to the channel soft information) all during the whole decoding procedure. However, this algorithm (accounted as HDD) needs them only in the start phase, and all processed data thereafter are hard values. Therefore this technique could reduce a significant part of the computational complexity, which was noticed in [23].

Algorithm description
The trapping sets, producing unrepaired errors, form the major part of the error performance letdown of the bipartite graph-based codes. The goal here is to diminish the damaging effect of most of the generated sets even by inserting supplemental resources which will be discussed below in this section. The algorithm uses the soft channel values at the beginning of the decoding to classify the received symbols (VNs) by a predetermined threshold. Taking commonness into account and due to its simplicity, the extended Hamming code is studied inside the GLDPC codes. The extended Hamming code with increased d min d min ¼ 4 ð Þis powerful and suitable for constructing standard-relevant GLDPC codes. The ext-Hamming sub-decoders may produce errors in both cases, decoding success and failure. At the GCN sub-decoder failure, it cannot locate the places of errors. At the GCN sub-decoder success, the decoder errors may emerge from two reasons: the undiscovered errors (as the received word decoded to non-transmitted valid one (e ≥ 4), where e is the number of errors at the input of the local decoder) and the false repair (e > 2).
An additional bit is inserted next to the main bit in the message from the GCN to a connected VN. It acts as the decision power of GCN by raising the reliability from two to four levels. The GCN sub-decoder decodes the received word and forwards two bits (the main bit and the additional one) to every connected VN. If the main bit is seen as a decision (flip (1) or keep (0)), the additional one is seen as the decision power (strong (1) or weak (0)). The four reliability levels in descending arrangement are 0 þ (01), 0 À (00), 1 À (10), and 1 þ (11), corresponding to strong keep, weak keep, weak flip, and strong flip, respectively. This decoding contains two processes, the GCN processing and the VN processing, as will be explained below.

GCN processing
The three possible states, in which the ext-Hamming sub-decoder at a given GCN can be one of them, are defined as follows: 1. State 0: when the syndrome gives zero (i.e., the received sequence is a valid codeword).
2. State 1: is the case of one-error repair when the syndrome vector is one of the subcode parity-check matrix columns (i.e., error discovered and can be corrected). Therefore, it decodes to the right transmitted codeword or decodes to another valid codeword.
3. State 2: at the decoder failure (errors detected and cannot be corrected).
Using the same notations as in Figure 8, • If d l ð Þ c ¼ 1, it sends 1 þ (level 1) on the place b * (an assumed-error bit) and 0 À (level 3) to the rest of set elements W 0 c ð Þ. Elements of W 0 c ð Þ are given 0 À (not 0 þ ) assuming some errors may be involved (with e > 2) making the decoder perform a wrong repair (an assumed-correct bit is flipped).
• If d l ð Þ c ¼ 2, it sends 1 À (level 2) to all of W c ð Þ elements as they contain a set of errors (with e > 1) leading to a decoder failure (errors detected with no repair capability).
c , w i 2 ð Þ be the two bits which represent the outgoing decision message and its power, respectively, from GCN a to VN w i . Let V l ð Þ c , w i be the incoming binary bit value of the constituent codeword at c from VN w i .
The overall set of N hard demodulated sequence bits is Y ¼ y w ; w ¼ 1; 2; ⋯; N; È y w ∈ 0; 1 f gg as y w ¼ 1 2 sgn r w ð Þ þ 1 ð Þand r w is the soft value of the wth bit in the received sequence from AWGN channel. For any VN w, the initial values V 0 ð Þ c j w ¼ y w for j ¼ 1, 2. Therefore at any GCN c, the initial values V 0 ð Þ c , w i ¼ y w i for i ¼ 1, 2, ⋯, n. Table 4 illustrates an example for ext-Hamming (8,4) constituent decoder employed at GCN c (with n ¼ 8) at lth iteration.

VN processing
For any VN, it is represented by two bits. The main bit is the symbol binary value. The additional bit represents the initial reliability of the symbol value, (1) if a suspect bit or (0) if an assumed-correct bit, and the VN will use this extra information as will be discussed later. The codeword symbols which are represented by VNs are classified into two categories: most-reliable bits (MR) and least-reliable bits (LR). The classification is only initiated according to the soft information received through the channel based on a predetermined threshold.
For any transmitted codeword of length N, the wth code bit v w ∈ 0; 1 f g are mapped to x w ∈ À1; 1 f g, respectively, and transmitted over AWGN channel which is characterized by the probability density function (pdf) p r=x ð Þ given by where σ 2 is the variance of the zero-mean Gaussian noise n w that the channel adds to the transmitted value x w (so that r w ¼ x w þ n w ) [25].
As illustrated in Figure 13, let η o be the standard threshold on which the hard demodulator decision is based. For BPSK over AWGN channel, η o ¼ 0 and at this value Let δ r ð Þ be the absolute difference between the two probabilities as The received symbol is assumed to be accounted as LR bit if its value r w gets near to the zero point or η o (δ ¼ 0). The value of r with maximum difference δ max can be Table 4. Output messages at GCN c with ext- Hamming (8,4) decoder.
taken as a second point η m that the received symbol is accounted as MR bit if its value r w approaches it. The absolute of the second point |η m | is the same for both AEr w values as the two probability density functions are symmetric around the zero point. The equation δ 0 r ð Þ r¼η m ¼ 0 should be solved to get η m : then This equation can be solved numerically by Newton-Raphson method and for various values of σ 2 (0.1-0.9), η m ≈1:04.
The classification threshold η c for this algorithm is set to be in the middle between the two points. Therefore η c ¼ η o þη m 2 ¼ 0þ1:04 2 ¼ 0:52. Denote the initial reliability of the wth received bit as λ w . According to the algorithm, this bit is classified as MR (λ w ¼ 0) if |r w | ≥ η c ; else it is classified as LR (λ w ¼ 1).
Using column weight of two and four levels of reliability, there are 10 probable combinations of these incoming messages to VN w, w ¼ 1, 2, ⋯, N. These combinations are categorized into three subsets s i ; i ¼ 1; 2; 3 f g . For any VN w, its reliability state g l ð Þ w is set according to the arriving messages (belong to which subset). Motivated by TSSA-BF in [8] with inserting the new parameter λ w Figure 13.
The threshold η c over AWGN channel.
• The VN w with least reliability, g l ð Þ w ¼ 0, needs flipping immediately.
• For g l w ¼ 2 and, in the same time, λ w ¼ 1 (i.e., it is considered as LR bit), the VN will be flipped.
• Else, the VN is assumed a correct bit and kept without flipping.
By using the previously mentioned rules, the messages are renewed, and the algorithm proceeds until a zero overall syndrome output or it reaches a predefined number of iterations.
It is worth emphasizing that the GCN decoder does not output actual decoded word to its connected VNs. Instead, it sends a reliability signal (taking a value of four possible values) which is represented by two bits U l ð Þ c , w i 1 ð Þ and U l ð Þ c , w i 2 ð Þ. On the other hand, the VN has to take a decision (flip or keep) based on its incoming messages and its initial reliability λ w (MR or LR). The function of VN state counter γ l ð Þ w is to count a number of consecutive iterations with the same state g l ð Þ w (at this VN) up to this present iteration (l). Figures 14-16 show the block diagrams of the overall decoder, horizontal process, and vertical process, respectively.

Important notes on the algorithm
• The output messages from VN w to its two connected GCNs c j , j ¼ 1, 2 are the same (i.e., V l ð Þ • U l ð Þ is the outgoing message from GCN c to VN w i consisting of two bits representing the reliability level (one of four possible values 0 + , 0 À , 1 À , or 1 + ). On the other hand, V l ð Þ c j w is the outgoing message from VN w to GCN c j containing just the decoded symbol bit value.
• The GCN decoder does not output actual decoded words to its connected VNs.
Instead, it sends a reliability signal (taking a value of four possible values) which is represented by two bits U l ð Þ cw i 1 ð Þ and U l ð Þ cw i 2 ð Þ. On the other hand, the VN has to take a decision based on its incoming messages. The decision is flip or keep.
• The function of VN state counter γ l ð Þ w is to count the number of consecutive iterations with the same state (at this VN) up to this present iteration l ð Þ.
• The algorithm manages without the greater portion of the overhead of the algorithm in [23] which was specially located in the horizontal (GCN) process. Figure 17 shows the GLDPC BER performance using the (32,26,4) extended Hamming subcode by this decoding with respect to the bit-flipping algorithms in [7,22] and [23]. It is noticed that this algorithm surpasses the other ones at the cost of a slight increase in computational complexity resulting from the comparison operations made at the initial classification step. It is also noticed that as N increases, a slow improvement in the performance is achieved.
The predefined number of iterations (20) is found to be very sufficient for good performance as the additional iterations beyond this limit have no considerable difference in the performance and latency in the decoding process which should be avoided for fast decoding purposes.
Not similar to the conventional GLDPC HDD BF decoding, the received sequence soft values are utilized to make appropriate classification of the received bits (variable nodes) into two classes.  The algorithm not only achieves a better error performance but also requires less iterations than the other competent algorithms. In terms of the impacts of the soft information (from AWGN channel) on coding gain of the GLDPC, the algorithm is revealed to exhibit considerable performance to decoder complexity trade-off. The algorithm can be adapted to handle generalized and more robust subcodes with the capability to correct more errors to improve the performance.
As discussed in [24], the computational complexity is provided in terms of the average number of executed operations for this algorithm against the rather comparable TSSA-BF algorithm. It is noticed that the complexity of this decoder is reduced by more than 60%.

Simplified SDD algorithm over AWGN channels
The algorithm, in [26], serves to use the chase SD decoders as minimum as possible to lower their complexity and expedites the decoding procedures. This algorithm is a variant approach from a previous one by [27] to lower the complexity of turbo product code (TPC) with multiple-error correction BCH subcodes. The chase decoder at every row or column input sequence in the product code was used as it attempts to decrease the HDD operations executed on the test patterns (TPs) produced in the chase decoder. The algorithm, explained below, will benefit from the algorithm in [27] for more reduction in the complexity.
The introduced algorithm is the MP method for decoding GLDPC with the chase-II algorithm operated as a posteriori probability decoding on GCNs. It will use extended double-error BCH (with high error-correcting capability) as a subcode to obtain a better performance. For simplicity, all GCNs are represented with the same eBCH code of parameters n; k; d ð Þ. The overall block diagram of this algorithm is depicted in Figure 18.
As discussed before in Section 3 and using the same notations and considerations, the soft-output value of every decoded symbol of the subcode should be calculated, by Eqs. (3) or (4), to be sent back on the connected edges to the GLDPC VNs as followed by the MP algorithm in an iterative method to obtain a final decision after a certain number of iterations or a syndrome condition should be satisfied. W.r.t any given GCN c, the chase-II-based SISO decoder produces 2 p TPs by making a perturbation of the p LRPs in the demodulated word with length n (subcode word). Therefore 2 p HDDs should be performed to obtain a decided codeword. Therefore algorithm will get the syndromes of Y c .
According to the values of the syndromes as illustrated in Table 5, the algorithm estimates the number of errors contained in the sequence.
If there are no errors (e ¼ 0), it is likely (with high percentage) that the demodulated word is the valid transmitted one and the decoder will not do its task. If 0 < e ≤ 2, the algorithm may execute the HDD (Berlekamp-Massey algorithm) and outputs the decoding decision. In these two preceding cases, the soft-output values can be estimated as the decision is highly probable to be correct as follows:   where β is chosen to be evolved with the decoding iterations, β l ð Þ ¼ 0:4; 0:6; 0:8; 1; 1; 1; ⋯ ½ . If e > 2, the chase algorithm is needed to extract a decision codeword but will not decode a complete list of 2 p test patterns (TPs). The proposed algorithm in this case will benefit from the lowered-complexity TP-reduced algorithm in [27]. The amount of reduction in HDDs of the algorithm compared to the standard one is listed in Table 6.
The computational complexity of this algorithm is estimated by the number of hard decision decoding processes (Berlekamp-Massey algorithm) employed at GCNs. The (64,51) eBCH subcode is chosen with double-error correction capability to exploit the multiple calculated syndroms, while keeping a moderate code rate (R ffi 0.6). Therefore, for keeping this rate, only GLDPC codes with column weight (j ¼ 2) are considered. As shown in Figure 19, the number of HDDs in the decoder is calculated for two numbers of LRPs (p ¼ 3, p ¼ 4) and up to five iterations  Table 6.
The reduction of HDDs in the lowered-complexity chase-based decoding algorithm (SNR = 2 dB at I max ¼ 5). (I m ¼ 5). For clarification, the number of HDDs is normalized to the one of the conventional chase decoder. It is shown that a considerable reduction occurs especially after E b =N o ¼ 2 dB. The results show a significant lowering in the soft decoding operations executed at GCNs compared to conventional chase decoders with little wastage in the BER performance. This scheme is highly required in low error rate applications such as optical communication systems.