Abstract
We introduce a doublelayer code based on the combination of a lowdensity paritycheck (LDPC) code with the multipleinput multipleoutput (MIMO) system, where the decoding can be done in both inneriteration and outeriteration manners. The present code, called lowdensity MIMO code (LDMC), has a doublelayer structure, that is, one layer defines subcodes that are embedded in each transmission vector and another glues these subcodes together. It supports inner iterations inside the LDPC decoder and outeriterations between detectors and decoders, simultaneously. It can also achieve the desired design rates due to the full rank of the deployed paritycheck matrix. Simulations show that the LDMC performs favorably over the MIMO systems.
1. Introduction
Multipleinput multipleoutput (MIMO) transmission has been identified as one of the most practical methods to combat fading and to increase the capacity of wireless channels in the recent years [1–3]. In order to ensure a desired quality of transmission, an outer error correction code can be employed additionally to decrease the occurring errors in imperfect channels. In this case, an appropriate lowdensity paritycheck (LDPC) code [4–7] may be elegantly used for MIMO channels. Actually, the decoding of LDPC codes over MIMO channels can be well dealt with an iterative manner, where probabilistic information should be exchanged iteratively between MIMO detector and LDPC decoder. At the receiver, the detector has to calculate the maximum posteriori probability for each bit. One possible realization of this calculation is called sphere decoder [8]. Much effort has been taken to reduce the complexity of the detection process by introducing constraints in space and/or time. A modified sphere decoder was proposed in [6], which sacrifices performance to reduce the complexity of detection.
The complexity of the MIMO detector depends on the number of bits mapped to a transmission vector (symbols) transmitted simultaneously via multiple antennas. In order to reduce its complexity, the lowdensity MIMO code (LDMC) was presented with the constraints for each transmitting vector [4, 5, 9]. For an LDMC, the paritycheck matrix has to be divided into two layers. One layer defines subcodes which are embedded in each transmitting vector, and another glues these subcodes together. The goal of the doublelayer structure is that the first layer reduces the complexity of the decoder, while the second layer has to be handed by an outer decoder. Unfortunately, the doublelayer structure of the original LDMC only supports the outeriterations and it cannot bolster the inneriterations inside the decoder. This limits the performance and the flexibility of the decoding at the receiver. It seems that a systematic LDMC design that stands by both outeriterations and inneriterations for doublelayer decoder still remains an open problem.
In this paper, we introduce a novel doublelayer decoder for a benefit of the LDMC design criterion over MIMO channels. One advantage of this structure is that the yielded paritycheck matrix of an LDMC has full rank and hence can achieve the desired code rates. Another is that the present LDMC can be decoded with low complexity since it supports both inneriterations and outiterations at the receiver.
This paper is organized as follows. In Section 2, we introduce the LDPC coded MIMO channels. Some properties of the LDMC are presented for the benefits of the construction. Section 3 describes the conventional LDPC code with multiple paritycheck (MPC) encoders. After that an LDMC based on the MPC encoder is designed in Section 4. Simulation results are given in Section 5. Finally, Section 6 concludes this paper.
2. System Model
At the output of the LDPC encoder, the encoded bits, , are mapped into a group of constellation symbols , where each symbol is taken out of constellations of size . The sequence of constellation symbols is passed to the transmit filter, and then sent through transmit antennas. At the receiver, the detector has to calculate the maximum posteriori probability for each bit, and this probability will be passed to the LDPC decoder for iterative decoding. After a finite number of inneriterations in the LDPC decoder, hard decisions, which are the estimated codewords, are made at the decoder. Soft information from the LDPC decoder is then passed back to the MIMO detector to produce the updated probabilities. The loop between the LDPC decoder and the MIMO detector is called outeriteration.
We consider a MIMO communication system with transmit antennas and receive antennas. The MIMO channel model is described as where is the complex received signal vector, is the channel fading matrix with independent entries that are complex Gaussian distributed with zero mean and unit variance, is the complex white Gaussian noise with variance per dimension, is the complex transmitted signal vector that satisfies the componentwise energy constraint , and the notation represents the total transmitted power. The channel information is assumed to be known to the receiver but not the transmitter.
Let denote a set of transmitted bits, which exclude the th bit while is a vector of components containing the symbols corresponding to and . For a given received signal vector , we perform the bitwise detection [10] to determine the posteriori probability of bit , , by calculating or its loglikelihood ratio where denotes the norm square of a vector, the subscript denotes the message passed from the MIMO detector to the LDPC decoder, and denotes the message from the LDPC decoder to the MIMO detector.
The remaining problem of this iterative decoding is the complexity of the MIMO detection. Next, we will show that the complexity of the MIMO detection can be reduced by introducing some constraints in the paritycheck matrix of the LDPC codes, which are also called the LDMCs.
The LDMC is a kind of the linear block codes that can be described with a paritycheck matrix of the size , subject to the constraint . The LDMC paritycheck matrix can be described by two layers with The first layer is a sparse paritycheck matrix, and the second layer defines multiple independent subcodes. Each subcode corresponding to has a block length no more than .
As the aforementioned structure, each transmission vector carries bits. For the transmission, it has to be guaranteed that all bits of a subcode corresponding to should be transmitted within one transmission vector. Thus, each transmission vector carries an embedded code corresponding to . The action of is to glue all embedded codes together. Since the matrix is sparse and the embedded codes corresponding to the paritycheck matrix define code constraints to each MIMO transmission vector, the overallcoding process is called the LDMC coding scheme or LDMC.
To enhance the performance of the LDMC coding scheme, we need to reduce the complexity of the MIMO detecting and the LDPC decoding in the combined MIMO transmission system, while keeping the overall data rate and the capacity approaching communication performance. As described, a straightforward approach is to embed constraints for the involved bits within one transmission vector. A simple constraint on several bits is a single paritycheck (SPC) constraint. Namely, the matrix would become the paritycheck matrix of an SPC code. Thus if we constraint the involved information bits in one SPC constraint, the overall possibility of detection is . Furthermore, if we constraint in paritycheck constraints embedded within one transmission vector, the overall possibility of detection will downscale to .
In order to encode efficiently, a quasicyclic structure was proposed for the paritycheck matrix of LDMCs [4, 5]. In the quasicyclic structure, the sparse matrix consists of cyclicpermutation matrices and zero matrices. Since the subcodes in transmission vectors are independent and should not be connected to each other, as shown in (4), the second layer consists of only identity matrices and zero matrices. Therefore, has no cyclicpermutation structure. Consequently, the flexibility of may be reduced, which results in many short cycles. Therefore, is only employed in the detection, not in the decoding. Since alone is too sparse to be applied in the iterative decoding, there is no inner iterations in the decoder in [5]. Therefore, how to address the design of inner iterations in the LDMC is still a retained problem. In the next section, we will propose a simple LDMC to solve this problem.
3. LDPC Code Based on Multiple ParityCheck Codes
Recently, Baldi et al. have proposed an LDPC coding scheme on the basis of multiple serially concatenated multiple paritycheck (MSCMPC) codes [11]. This code offers flexible code rate and code length with low encoding complexity. Let , , and denote code length, information length, and paritycheck length of the th MPC component code, respectively. The encoder of the th MPC component code can be implemented as SPC encoders. The matrix cells of the th encoder are filled in columnwise order. The first cells, with mod , are unused. The parity bit is calculated by XORing the elements of the row, which is stored in the last column, at the same row. We obtain a paritycheck matrix for the th component code, consisting of a row of identity matrices of size , and the first columns are shortened. The yielded matrix forms a blockrow of the paritycheck matrix of the MSCMPC code. The MSCMPC code has information length , paritycheck length and the code length can be viewed as LDPC codes.
If an interleaver is inserted before each MPC encoder, an LDPC code can be constructed with larger girths [12]. The paritycheck matrix can be designed in columnwise or rowwise to avoid short cycles. In the next section, we will introduce a modified progress edgegrowth algorithm (PEG) to construct see Algorithm 1. Each component matrix has row weight in rows, row weight in the remaining rows. Also, it has column weigh one in columns and column weight zero in the remaining columns. The interleaver of the th MPC encoder is constructed according to the structure of designed paritycheck matrix .

Theorem 1 (fullrank criteria). The paritycheck matrices of LDPC codes on the basis of the MPC encoders are of full rank, and hence they can achieve the desired code rates.
Proof. If all the rows of the component paritycheck are summed, respectively, a vector will be obtained with the first elements are ones and the remaining elements are zeros. Then it is obvious that any row of cannot be obtained by a linear combination of the other rows in . Therefore, we can get the desired code rate .
Theorem 2 (lowcomplexity criteria). The encoding complexity of the LDPC code on the basis of the MPC encoders is upper bounded by and lower bounded by , respectively.
Proof. We evaluate the computation complexity of the encoding processing. There are three cases of encoding processing [13]. If the th component encoder generates the parity bits in parallel, the th component encoder determines parity bits with XOR operations. In this case, XOR operations are required to obtain all the parity bits. The encoding processing is accomplished from the 1st MPC component encoder to the th MPC component encoder in steps. If the th component encoder generates the parity bits in serial, the th component encoder determines parity bits serially with XOR operations. In this case, XOR operations are required to obtain all the parity bits. Therefore, the encoding processing is completed from the 1st SPC encoder to the th SPC encoder in steps. If the encoding processing is a combination of the abovementioned two cases, the complexity and encoding time is lower bounded by the parallel case and upper bounded by the serial case.
4. LDMCs Based on MPC Codes
To illustrate the doublelayer structure of the LDMC, we propose a simple LDMC as an example in this section.
We consider a paritycheck matrix given by where the subscript “T” denotes the transpose of the matrix. This is a paritycheck matrix that corresponds to an LDPC code of length 12, where are the information bits and are the parity bits. It is by no means a good LDPC code, which is nothing more than a simple example. The paritycheck matrix in (5) can be divided into three submatrices, that is, , , . In each column of (), there is only one “1” element. Due to the special structure of the three submatrices , and , we define and . Therefore, we first obtain the parity bits from , then the parity bits from , and the parity bits from . The encoding processing of this code includes three steps as follows.
Step 1. Given the information bits , compute the parity bits based on the last two columns of the third paritycheck matrix .
Step 2. Given the information bits along with the yielded parity bits in Step 1, compute the parity bits based on the ninth column and the tenth column of the second paritycheck matrix .
Step 3. Given the information bits along with the previous parity bits , compute the parity bits based on the seventh column and the eighth column of the first paritycheck matrix .
Now we transmit this code through a MIMO system with two transmit antennas and 8PSK modulation scheme. Each transmission vector carries 6 bits which results in possibilities reflecting all bit possibilities. However, because of the paritycheck constraints in , that is, where denotes the XOR operation, we can divide the code word into two transmission vectors, that is, and . Each transmission vector contains one paritycheck constraint. This results in possibilities. Therefore, the present LDPC code is an LDMC in essence. In this code, the first layer that glues the subcodes is and the second layer that defines the subcode is . Note that we can transform into the diagonal form by column permutations, which results in the paritycheck matrix It is obvious that the first transformed layer is a sparse paritycheck matrix and the second layer can generate two unconnected subcodes corresponding to .
We note that if we let and , in a similar way we calculate the parity bits from , then the parity bits from , and the parity bits from . Therefore, the equivalent constructions of this code can be described as the following.
Step E1
given the information bits , compute the parity bits based on .
Step E2
given the information bits along with the yielded parity bits , compute the parity bits based on .
Step E3
given the information bits along with the previous parity bits , compute the parity bits based on .
According to the aforementioned LDMC construction based on three matrices , the proposed design approach can be generalized with block matrices .
Theorem 3. The LDPC code on the basis of the MPC component encoder in (4) is an LDMC, where with and . Generally, the first layer can be selected as and the second layer can be selected as , .
Proof. The present LDMC is a straightforward extending of the LDMC given in (5). Therefore, the proof of this theorem can be derived in a similar way, which is omitted for simplicity.
For simplicity, we consider the LDMC with and . We note that there are SPC constraints in the paritycheck matrix that has row weight in the first rows and row weight in the remaining rows. Each subcode involves SPC constraints. We divide SPC constraints into separate subgroups. At the transmitter, each transmission vector involves one of the subgroups. Then the overall possibilities for the MIMO detection is downscaled from to . The larger means the smaller complexity of the MIMO detection. Namely, let , and then it is obvious that the larger implies the smaller complexity of the MIMO detection. Since , the optimal block length of the subcode is
In addition, the paritycheck matrix of the present LDMCs should satisfy the following two constraints: (1)the part of contains the lower triangular pattern; (2)in each column of , , of , there is only one “1” element.
The first constraint ensures that the present LDMC is linear encodable [14]. The second constraint guarantees that the parity bits can be generated by the paritycheck constraints, simultaneously, in the th component encoder corresponding to the matrix [11–13]. Observing two constraints, the paritycheck matrix of the LDMC can be efficiently designed with the modified progress edgegrowth (PEG) algorithm.
Remark 4. In the present algorithm, lines 1–5 and lines 2021 are used to ensure that the paritycheck matrix has row weight in rows and row weight in the remaining rows, which are required for the design of paritycheck matrix of an LDMC with a doublelayer structure. Line 14 and line 17 are used to guarantee that is a lower triangular matrix, which is for the desired code rate. Since there is no interleaver in front of the first component encoder, line 15 is used to ensure that consists of identity matrices with the first columns eliminated, as shown in (5). Due to this special structure, the LDPC decoding can be well performed with low complexity.
Remark 5. Since is obtained from the modified PEG algorithm, the girth of and can be enlarged, simultaneously [12]. Therefore, the matrix can be used in both detection and inner iteration. Consequently, we can perform multiple out iterations between MIMO detector and LDPC decoder at the receiver. In each out iteration, the MIMO detection is performed once followed by a number of inner iterations of LDPC decoding. The decoding process is halted if the decoder converges to a valid code or a maximum number of iterations is reached. It is obvious that the proposed doublelayer LDMC is different from the quasicyclic LDMC [4], where the PEG algorithm is based on the permuted identity matrices.
5. Simulations
So far, we have constructed an LDMC with the modified PEG algorithm in the previous section. In order to simulate the proposed LDMC denoted with simplicity, it is assumed that the block length of the LDMC is and the code rate is 0.5. The numbers of the component encoder are 5 and 6, respectively, that is, . Some parameters are given as follows: (1), , , , , , and ;(2), , , , , , , and .
The simulation results are in terms of the frame error rate (FER) with the iterative decoding. We make use of the QPSK modulation and the 16QAM modulation transmissions over a MIMO channels, as shown in Figures 1 and 2. Therefore, the block length of transmission vector is 8 with . We simulate the proposed codes in two ways. For one hand, we perform 3 outer iterations and 50 inner iterations, shown in Figure 1, for both and . For another, we perform 50 outer iterations and no inner iteration. For a fair comparison, we have also simulated the original LDMCs with a minor modification in [5]. The part which involves a paritycheck matrix [5], is replaced with the matrix which involves 4 paritycheck constraints of length 4. Each transmission vector of length 8 involves 2 SPC constraints. This modified code is denoted by . The performance curve of is illustrated with 50 outer iterations and no inner iteration.
It is shown in Figure 2 that three LDMCs, , , , can downscale overall possibilities of the MIMO detection from 2^{8} to 2^{6}. The proposed two codes and perform the similar performances as that of the original LDMC when no inner iteration is applied in the LDPC decoder. However, since the present LDMCs support inner iterations in the LDPC decoder, we can improve the performance of these codes by increasing several inner iterations in the LDPC decoder.
6. Conclusion
A doublelayer structure LDMC is introduced with the LDPC decoder and the MIMO detector. It provides both inner iterations and outer iterations at the receiver, which gives more flexibility for detecting and decoding than that of the original LDMC. The advantage of the doublelayer LDMC is that the paritycheck matrix has the full rank to achieve the desired code rate, which can be efficiently employed in a modified PEG algorithm. The present LDMC also reduces the complexity of the MIMO detection due to the lowdensity of the paritycheck matrix. Simulations show that the performance of the LDMC is enhanced with the increasing inner iterations in the LDPC decoder.
Acknowledgments
This work was supported by the National Natural Science Foundation of China (60902044), the Ph.D. Program Foundation of Ministry of Education of China (20090162120070), and the World Class University R322010000200140 NRF, Korea.