Distributed Generalized Low-Density Codes for Multiple Relay Cooperative Communications

As a class of pseudorandom error correcting codes, generalized low-density (GLD) codes exhibit excellent performance over both additive white Gaussian noise (AWGN) and Rayleigh fading channels. In this paper, distributed GLD codes are proposed for multiple relay cooperative communications. Speciﬁcally, using the partial error detecting and error correcting capabilities of the GLD code, each relay node decodes and forwards some of the constituent codes of the GLD code to cooperatively form a distributed GLD code, which can work e ﬀ ectively and keep a ﬁxed overall code rate when the number of relay nodes varies. Also, at relay nodes, a progressive processing procedure is proposed to reduce the complexity and adapt to the source-relay channel variations. At the destination, the soft information from di ﬀ erent paths is combined for the GLD decoder thus diversity gain and coding gain are achieved simultaneously. Simulation results verify that distributed GLD codes with various number of relay nodes can obtain signiﬁcant performance gains in quasistatic fading channels compared with the strategy without relays and the performance is further improved when more relays are employed.

Most of the cooperative strategies above are devised for the classical three-node relay channel model, that is, the network with only one relay. However, it has been theoretically revealed that the diversity gain increases when more relays participate in cooperation [14]. Moreover, in wireless relay networks, the number of relays participating in cooperation may vary from time to time due to the random mobility of nodes [15]. Therefore, the coding schemes should be easily adjusted when the relay number varies. Although distributed turbo codes can be extended to networks with different number of relays using multiple turbo codes [16], the overall code rate decreases with the increase of relay number [11]. In this paper, based on the DF relay protocol, a novel coding scheme is proposed for cooperative relay networks using generalized low-density (GLD) codes [17][18][19], which has a fixed overall code rate.
GLD codes were first introduced by Tanner in [17] and then were further investigated in [18][19][20]. GLD codes which make the generalization of Gallager's LDPC codes are constructed by replacing the parity-check constraints in LDPC codes with block code constraints. Similar to LDPC codes, GLD codes can also be iteratively decoded and exhibit excellent performance over both additive white Gaussian noise (AWGN) [18,19] and Rayleigh fading channels [20].
In the proposed scheme, each relay is only responsible for forwarding one or several constituent codes of GLD codes according to the number of available relays using the partial error detecting and error correcting capabilities of GLD codes. Unlike distributed turbo codes in [11], the overall code rate of distributed GLD codes is fixed when the relay number varies. Moreover, a progressive processing strategy is proposed for relay nodes, which allows partial decoding of the received codeword to reduce the complexity in good source-relay channel conditions and guarantees the robustness of the system in bad conditions. At the destination, a combiner is added to collect the soft information from different nodes for the GLD decoder and a little complexity is added to the destination node. The significant performance of distributed GLD codes over quasistatic fading channels is further verified by simulations.
The remainder of this paper is organized as follows. Section 2 briefly describes the system model of cooperative communications with multiple relays in a cluster. In Section 3, distributed GLD codes are proposed and the processing algorithms at relays and the destination are presented. Section 4 gives the simulation results of distributed GLD codes. The conclusions are drawn in Section 5.

SYSTEM MODEL
In this paper, we investigate the scenario that the source node transmits data to the distant destination aided by some nearby nodes as depicted in Figure 1. We may further assume that the source and relay nodes locate geographically in a small region forming a transmit cluster, and thus the quality of the channels from the source to relays is usually good. This is approximately equivalent to the cooperative network with multiple relays as presented in [15].
In this scenario, the cooperative relay group can be assigned by some central nodes or via some other distributed protocols. For example, the source node may send a "hello" message to the surrounding nodes and those nodes which respond properly verified according to some criteria form a transmit cluster as introduced in [15]. Once a cluster is formed, the relay set R is given. Let L denote the number of available relays in the set R, where L equals the cardinality of the set R denoted as |R|. Note that the cluster needs to be reformed after some time due to the random mobility of nodes. That is, the relay number L may vary from time to time in cooperative relay networks accordingly.
All the channels from nodes in the cluster to the distant destination are usually modeled as independent quasistatic Rayleigh fading channels. All the internode channels, that is, the channels between nodes in the same cluster, may be modeled as independent AWGN channels due to strong line of sight components [21], although this is not a critical element of the scheme. We assume that all the nodes transmit signals on orthogonal channels (e.g., CDMA, FDMA, or TDMA) and are constrained to the half-duplex mode.
We assume the source s transmits signals to the destination d aided by relay nodes in the set R. The cooperative relay protocol in this scenario is usually consisted of two phases as illustrated in Figure 1. At the source node s, let c = [c 1 , c 2 , . . . , c N ] denote the encoded bit vector, where N is the code length. Then it is modulated with the binary phase shift keying (BPSK) constellation to get In the first phase, the source s broadcasts its data x i , 1 ≤ i ≤ N and the received signal at the distant destination d is given by where P s is the power of each symbol from the source, h sd i is the Rayleigh fading coefficient of the channel from the source to the destination and η sd i denotes the AWGN with the variance σ 2 .
Simultaneously, the broadcast data from the source can also be received by relay nodes in the set R and the received signal of the relay l is denoted as where h sr i,l represents the fading gain of the path from the source node to the relay node l and η sr i,l is the AWGN. In the scenario of this paper, the internode channels are modeled as AWGN channels, that is, for the pair of nodes belong to the same cluster, h sr i,l = 1. Relay nodes decode the data and some error detecting codes such as cyclic redundancy check (CRC) or other linear block codes are used to verify the decoding results.
In the second phase, those relay nodes which decode the data correctly aid the source to forward data to the destination. Let x l i denote the signal transmitted by the relay l, which is received at the destination given by where P rd l is the power of each symbol from the relay l, h rd i,l is the Rayleigh fading coefficient of the channel from the relay l to the destination, and η rd i,l denotes the AWGN with the variance σ 2 l . We further assume that all the fading coefficients such as h sd i and h rd i,l are constant during a transmit frame and vary from frame to frame, that is, quasistatic fading channels. Various cooperative coding schemes can be designed to achieve performance gains over quasistatic fading channels by designing the transmit signals of the source and relay nodes. For fair comparison of different strategies, the total transmit power of each bit c i is usually fixed as

GLD codes and distributed GLD codes
In this part, generalized low-density codes are introduced and distributed GLD codes are proposed for the cooperative networks with multiple relays. Following the construction in [17][18][19], GLD codes are defined using a sparse matrix H constructed by replacing each row in a sparse parity-check matrix, which indeed defines an LDPC code, with n − k rows including one copy of the parity-check matrix H 0 of the constituent code C 0 (n, k). Here, C 0 (n, k) is usually a block code of code length n and information bit length k, such as BCH code and Reed-Solomon (RS) code.
For an (N, J, n) GLD code with code length N, the matrix H consists of J submatrices H 1 , . . . , H J , where H j+1 = π j (H 1 ) and π j , j = 1, . . . , J − 1 denote pseudorandom column permutations, that is, bit-level interleavers [19] as illustrated in Figure 2. Therefore, an (N, J, n) GLD code C can be considered as the intersection of J supercodes C 1 , . . . , C J , that is, C = ∩ J j=1 C j , where C 1 = C 0 ⊕ · · · ⊕ C 0 and C j+1 = π j (C 1 ). Therefore, the code rate of (N, J, n) GLD codes is The parity-check matrix H of GLD code is rearranged using Gaussian elimination method to get the systematic form, and then the generator matrix G is achieved. Using the generator matrix G, information bits are encoded. GLD codes can be iteratively decoded based on the soft-input soft-output (SISO) decoders of constituent codes [22,23]. Specifically, the first supercode C 1 is decoded using N/n SISO decoders executed in parallel, for it is composed of N/n constituent codes. Then the extrinsic messages of coded bits are interleaved and fed to the decoder of the second supercode C 2 as the priori information. Thus, excellent performance is obtained by iterating the process above for each supercode [19], that is, In the following, distributed GLD codes are devised for cooperative relay networks using (N, 2, n) GLD codes, for the performance of GLD codes with J = 2 is asymptotically good as shown in [19]. In order to make the description more general, we still employ (N, J, n) to denote the GLD code in the following.
In the proposed scheme, the source node encodes the data using an (N, J, n) GLD encoder and then broadcasts modulated symbols to the sink and simultaneously to all the relay nodes in the first phase. Then, the GLD code is decoded and forwarded in a distributed manner by relay nodes using its partial error detecting and error correcting capabilities. Specifically, the protocol assigns n l , 1 ≤ l ≤ L, different constituent codes of the GLD code to the relay l, according to the relay number L in the cluster. Since an (N, J, n) GLD code consists of J·N/n constituent codes, we configure n l to satisfy L l=1 n l = J·N n .
In order to efficiently use the transmit power, we assume L ≤ J·N/n and one constituent code is only allocated to one relay in this scheme. Then each relay decodes the constituent codes for which it is responsible. The decoding results of constituent codes which are decoded correctly are forwarded to the destination by the associated relays in the second phase. Note that relay nodes do not reencode the data, which reduces the complexity of relay nodes compared with distributed turbo codes in [11].
In this way, all the constituent codes forwarded by the relays construct a distributed GLD code. If all the constituent codes are forwarded successfully, each code symbol x i , 1 ≤ i ≤ N, is indeed forwarded J times by J relays which constitute a relay set R(c i ) ⊆ R for the associated code bit c i , where |R(c i )| = J. Therefore, J copies of the bit c i from relays in the R(c i ) can be combined with the copy from the source to achieve diversity gain at the destination.
One advantage of the proposed scheme is that it can be adaptive to the variation of the relay number L by simply adjusting n l . Note that, for each code bit c i , the total power consumed by the source and the associated relays in R(c i ) is fixed as P when the relay number L varies. Moreover, contrary to distributed turbo codes [11], the overall code rate R of the system is independent of the relay number L and given as follows: Therefore, the scheme is quite suitable for the cooperative networks where the number of active relay nodes may vary from time to time. In contrast, the distributed turbo codes may increase the traffic of the network when more relays are employed to improve the performance. Another advantage of the proposed scheme is that each relay node is only responsible for relaying one or Input Hard decision decoding for C 0 The ith iterative decoding for GLD several constituent codes to the destination according to the assignment of the protocol. In this way, each relay only consumes a little energy to relay data and significant diversity gain can be achieved at the destination, for the fading at different locations may vary. In general, the constituent codes are uniformly allocated to the available relay nodes in the set R so as to balance the power consumption and data payload of each relay node. Also, the same quality of each bit is achieved in this way. This also gives us a hint to improve the system performance by allowing the relays, which are lucky to experience good channel conditions to the destination, to forward more constituent codes than others with some adaptive protocols. This adaptive strategy will not be included in this paper. The other design aspects and advantages of distributed GLD codes will be addressed in the following parts.

Progressive decoding for relay nodes
Generally speaking, the internode channels in the same cluster can be modeled as AWGN channels and are usually of high quality. For example, the channels between different receiving nodes in the same cluster are modeled as error-free channels in [24]. In order to reduce the decoding complexity and adapt well to the channel variations, a progressive decoding strategy is proposed for relay nodes as illustrated in Figure 3 using the partial error detecting and correcting capabilities of the GLD code. Let us take the scenario in which one relay node forwards one constituent code C 0 as an example and the process can be summarized as follows. First, decode the constituent code C 0 (n, k) using a hard decision algorithm based on the received n symbols and obtain the hard decision C 0 of the codeword. Then, use the parity check matrix H 0 to verify whether the codeword is correct or not. If H 0 · C 0 = 0, the decoder stops and C 0 is forwarded to the destination. Otherwise, this codeword will be decoded utilizing a maximum a posteriori (MAP) decoder, that is, BCJR algorithm [22,23]. Similarly, the check criterion is employed to check the decoding results after MAP decoding. If H 0 · C 0 = 0, the relay stops decoding and forwards C 0 to the destination. Otherwise, the relay will execute iterative decoding for the whole GLD code based on all the N symbols from the source. During the iterative decoding, the same check criterion is executed after each iteration. Once the check result is correct or the iteration reaches the maximum times I max , the decoding process stops.
Theoretically, undetected errors will be incurred by the checking criterion, but this is ignored in this paper due to the good internode channels in a cluster and the good error detecting capability of the constituent code. In addition, the probability of decoding failure at relays may be very low attributed to the significant performance of GLD codes.

Processing at the destination
In the proposed scheme, several independent copies associated with one symbol are obtained from the source and relay nodes, and then the signals from different paths are combined before they are inputted into the GLD decoder at the destination. With the scheme, the coding gain and diversity gain are achieved with a little additional complexity compared with strategies without relays.
For each bit c i in a GLD codeword, its log-likelihood ratio (LLR) can be denoted as where the set Y rd Since all the paths are independent, we have In (8), L sd (c i ) is the LLR from the source node to the destination given by The LLR from the relay l, l ∈ R(c i ), to the destination is denoted as Therefore, the receiver structure is depicted in Figure 4.
C. Han and W. Wu

5
In the receiver, fading factors and the parameters of Gaussian noise of each channel to the destination need to be estimated before the combination of soft information. If BPSK modulation is adopted in the system as described above, the LLR from the source to the destination can be given as follows: and the LLR from the relay l, l ∈ R(c i ), to the destination is Then, the combined LLRs are sent to the GLD decoder for iterative decoding. In this way, the diversity and coding gain are achieved using distributed GLD codes with low complexity at the destination. Specifically, the trellis-based MAP algorithm [22,23] can be employed to decode the constituent codes in parallel for the GLD code. Compared with multiple turbo codes [16], the decoding latency of GLD codes is shorter due to the parallel decoding of N/n constituent codes in each supercode. Moreover, in the proposed scheme, the destination node always needs to decode the (N, J, n) GLD code even when the relay number L varies. However, in distributed turbo codes, the receiver needs to decode the multiple turbo code with L + 1 constituent RSC codes. Here, the code length of the multiple turbo code also increases with the relay number L, which is usually much longer than the (N, J, n) GLD code length N. Therefore, the complexity and decoding latency of the proposed scheme can be greatly reduced compared with distributed turbo codes especially when L is large.
In conclusion, Section 3 presents a novel strategy using distributed GLD codes for multiple relay cooperative communications. Firstly, it is a flexible scheme which can adapt well to cooperative networks with different number of relays. Secondly, the complexity of relay nodes is low, for the progressive decoding algorithm allows partial decoding of the GLD code and no reencoding process is needed. When there are many relays, the power consumption can be approximately balanced for each relay node, which is quite essential for relays especially in wireless sensor networks. At last, the diversity gain and coding gain are achieved with a little additional complexity compared with the strategy without relay.

SIMULATION RESULTS
In this section, the performance of the proposed scheme is simulated and compared with other cooperative coding schemes. In the simulations, the (420, 2, 15) GLD code is employed, which takes (15,11) BCH codes as constituent codes and has a code rate of R = 7/15.
Firstly, we evaluate the progressive processing at relay nodes. In Figure 5, the bit error rate (BER) performance of the (15,11) BCH code with hard decision decoding, MAP decoding and the (420, 2, 15) GLD code under different Combiner GLD decoder L(c i ) Figure 4: The receiver structure at the destination. iterations over AWGN channel is compared, for internode channels in a cluster are usually modeled as AWGN channels. Here, the horizontal axis E s /N 0 denotes the signal-to-noise ratio (SNR) of symbols after encoding and modulation. It is illustrated that proper decoding schemes in the progressive processing may be chosen according to source-relay channel conditions.
Secondly, the performance of distributed GLD codes is simulated under different conditions. In the following, we assume the internode channels in the same cluster are perfect as in [11,24]. The source and relay nodes face independent and identically distributed quasistatic Rayleigh fading channels toward the distant destination. Here, the source and each relay use the same energy to transmit each symbol. If the transmit power of each symbol is P, the source broadcasts the symbol using P/3 and the two relay nodes related to this symbol share the remainder 2P/3, for each symbol is relayed twice by two relays in the designed distributed GLD code. If there is not any relay node, that is, L = 0, all the transmit power P is allocated to the source node. Therefore, the comparison is fair and the overall code rate of the system is R = 7/45. The GLD decoder iterates 10 times at the receiver. We simulate scenarios with or without source-destination path. When the source-destination path does not exist, the BER performance of distributed GLD codes with different number of relays is illustrated in Figure 6. The horizontal axis in Figure 6 is E b /N 0 denoting the SNR of information bits and horizontal axes in performance figures below are the same. Seen from Figure 6, distributed GLD codes can significantly improve the system performance and the BER performance can be further improved as the relay number increases. Especially, when L = 56, the distributed GLD code can achieve about 35 dB gain at a BER of 10 −5 over the scheme without relay. In the scheme with 56 relays, each relay only needs to forward a single (15,11) BCH codeword, that is, 15 symbols. Therefore, a little latency, complexity, and power consumption are incurred for each relay node.
When the source-destination path is included, Figure 7 shows the BER performance under different number of relay nodes. The performance can also be improved as the relay number increases. Take the scheme with two relays as an example, in which each relay indeed forwards one supercode of the GLD code, and it can achieve about 25 dB gain over the scheme without relay node at a BER of 10 −5 .
The performance of distributed GLD codes with and without the source-destination path is further compared in Figure 8. It is shown that the source-destination path can improve the performance for the system with the same number of relay nodes, especially when L is small, such as L = 2, 4. However, as the relay number increases, the gap decreases. This may be because that when L is small, the diversity from the source-destination path is prominent in the overall performance.
Thirdly, the performance of the proposed scheme is further compared with other two cooperative coding schemes when the source-destination path exists. First, Figure 9  compares the performance of distributed GLD codes and distributed turbo codes. In the simulations, the rate 1/2(7, 5) 8 recursive systematic convolutional (RSC) codes are used at the source and all the relay nodes to construct the distributed turbo code following [11]. Specifically, the source broadcasts the RSC code with the code length of 420 bits equal to the length of GLD code at the source and each relay node only transmits the parity-check bits of its own RSC code. For fair comparison, four relay nodes are used to construct the distributed turbo code with the overall rate R = 1/6 which is approximately equal to 7/45 in the distributed GLD code. The transmit power is allocated to the source and relay nodes according to the same rule as in the distributed GLD code. Considering the complexity of the receiver, we choose the soft-output Viterbi algorithm (SOVA) to decode each RSC code for the multiple turbo code at the destination. In Figure 9, it is illustrated that distributed GLD codes outperform the distributed turbo code. Here, the destination node in distributed GLD codes always needs to decode the (420, 2, 15) GLD code for different relay number L. However, in distributed turbo codes, the receiver needs to decode the multiple turbo code of the code length 420 × (1 + L/2) bits, which consists of L + 1 constituent (7, 5) 8 RSC codes. The complexity and decoding latency of the proposed scheme can be greatly reduced compared with distributed turbo codes especially when L is large. In addition, distributed GLD codes may be used to provide different quality of service (QoS) by employing different number of relays while the network traffic is constant, for they can easily adapt to the variation of the relay number and keep a fixed overall code rate.
Then, Figure 10 compares the proposed scheme with another relaying coding scheme using turbo codes working in the similar manner as GLD codes, which is called turbo multiple relay (TMR) scheme in this paper. In TMR scheme, the source node broadcasts a rate 1/2 turbo code using the rate 1/2(7, 5) 8 RSC codes as constituent codes. The turbo code length is 420 bits and the codeword is also forwarded twice by relay nodes to achieve the overall rate R = 1/6. It is observed that TMR scheme exhibits a little better 15  performance in the waterfall region while it is worse in the error floor region. In fact, TMR scheme has some flaws. For example, the relay is difficult to just decode and detect part of the codeword while the proposed scheme can ingeniously use the intrinsic partial error detecting and error correcting capabilities of the GLD code. At last, different power allocation strategies on distributed GLD codes are investigated. In the simulations above, the powers allocated to the source and the two associated relays is P/3 and 2P/3, respectively, thus each symbol from either the source or each relay has the same power level. In practical situations, the destination node is usually located far from the source while the relay nodes surround the source in a cluster. When the large-scale path loss is considered, the power levels at relay nodes may be much higher than at the destination. Thus, the unequal power allocation (UPA) may be considered to further improve the performance of distributed GLD codes.
Consider a network topology as illustrated in Figure 11. Here, the transmit cluster is limited in a region with the radius of 50 meters and the destination is 250 meters away from the source node, similar to the configuration in [25]. Generally, relay nodes are uniformly distributed within the cluster. However, we simplify the situation with the assumption that all the relay nodes in the cluster are in a circle with radium of 50 meters and 250 meters away from the destination and the source is at the center of the circle. We assume that the average large-scale path loss is expressed as a function of the separation distance using a path loss exponent γ = 2. Therefore, we allocate transmit power 2P/25 to the source and let the two associated relays share the remainder 23P/25 for each symbol. In this way, the received E b /N 0 of the relay node can be still about 6.4 dB higher than at the destination and thus the reliability of internode channels in the cluster can still be guaranteed.  Figure 12 shows the BER performance of distributed GLD codes with UPA. It is obvious that the sourcedestination path still improves the performance for the system with the same number of relay nodes, especially when L is small, such as L = 2. However, compared with Figure 8, the improvement gap of the source-destination path in the UPA scheme is narrower especially when L is large, such as L = 14, 56. For the systems with many relays, the diversity of the source-destination path can be almost ignored.
When the source-destination path does not exist, the performance of distributed GLD codes with two power allocation schemes is compared in Figure 13. It is seen that the UPA strategy with P s = 2P/25 can improve the performance over the scheme with P s = P/3 when the system has the same number of relays. Furthermore, for different relay number L, the improvement gaps of the UPA strategy are all about 1.3 dB at a BER of 10 −5 .
When the source-destination path is included, the BER performance of distributed GLD codes with two different power allocation strategies is compared in Figure 14. It is very interesting that when L is small, such as 2 and 4, the UPA scheme suffers performance loss compared with the scheme with P s = P/3. However, when L is large, such as 14 and 56, the UPA scheme contrarily exhibits better performance compared with the scheme with P s = P/3. This may be because when L is small, the UPA scheme lowers the effectiveness of the diversity due to the source-destination path while it enforces the effectiveness of relays for large L such as 56 and 14.

CONCLUSION
Distributed generalized low-density codes are constructed for multiple relay cooperative communications. The proposed scheme can adapt well to the variation of the relay number in the wireless relay network while the overall code rate of the system is fixed. In the scheme, each relay is responsible for forwarding one or several constituent codes of the GLD code, thus the complexity and power consumption of each relay node are quite limited. Moreover, a progressive decoding strategy is proposed for relay nodes to further reduce the complexity and adapt to the source-relay channel variations. At the destination, the soft information is first combined and then iterative decoding is performed for GLD codes to achieve the coding gain and diversity gain. The significant performance improvements have also been verified by simulations over quasistatic fading channels.
In the future, the performance can still be further improved by allocating constituent codes and transmit power elaborately to different relay nodes considering their distance to the destination and channel variations.