^{1}

^{1}

Low-density parity-check code (LDPC) not only has good performance approaching the Shannon limit, but also has low decoding complexity and flexible structure. It is a research hot-spot in the field of channel coding in recent years and has a wide range of application prospects in optical communication systems. In this paper, the decoding aspects and performance of LDPC codes are analyzed and compared according to the bit error rate (BER) of LDPC codes. The computer simulation was carried out under additive white Gaussian noise (AWGN) channel and binary phase shift keying (BPSK) modulation. Through theoretical analysis and simulation results, this paper explores the way of multi-rate LDPC decoding.

Since the end of the 20^{th} century, with the development and growth of the Internet, people’s demand for data services is increasing, such as online video, audio, game entertainment and other multimedia services. How to improve the capacity and speed has become an urgent task. There are two effective methods to improve the data bandwidth: one is through high-order phase modulation; the other is through channel multiplexing technology. However, as the modulation order increases and the channel multiplexing density increases, the transmission distance of high-speed optical fiber communication systems will also be severely limited, which is manifested in the increase of the BER in the information. One solution is to use better forward error correction (FEC) coding techniques such as LDPC code [

LDPC code is a kind of linear block code invented by R. Gallager in 1962. Its decoding is based on sparse matrix and has low computational complexity. It is relatively easy to implement in hardware, and can perform parallel iterative operation to save decoding time. Therefore, LDPC code is more suitable for large capacity communication system. Besides, the rate of LDPC code is adjustable and flexible in practical application. Therefore, multi-rate LDPC decoding in optical communication system has important theoretical and application value [

LDPC code is a kind of ( n , k ) linear block code defined by sparse parity check matrix H. The parity check matrix H is an m × n matrix, most of its elements are “0”, only a few “1”, m = n − k . A binary vector c = ( c 1 , c 2 , ⋯ , c n ) is a codeword when H ∗ c T = 0 . Usually ( n , w c , w r ) is used to represent a binary regular LDPC code. Among them, n represents the code length; w c represents the column weight which means the number of “1” contained in each column; w r represents the row weight which means the number of “1” contained in each row. For the check matrix, each row of it corresponds to a check equation, each column corresponds to one bit of the codeword, n represents the code length, m represents the check bit length, and n − m represents the information bit length [

LDPC codes can also be represented by Tanner graph. This method was first proposed by Tanner. In Tanner graph, there are two kinds of nodes: variable nodes and check nodes, which correspond to the columns and rows of the check matrix respectively. Any variable node in the Tanner graph has the number of branches consistent with the column weight of check matrix; similarly, any check node has the number of branches consistent with the row weight of the check matrix.

The LDPC decoding algorithm has developed into many variants so far. Based on the decision method, it can be divided into two categories. The first category is the hard decision decoding algorithm: Bitflipping (BF); the second category is the soft decision decoding. Algorithm: Message Passing (MP). The calculation unit and storage unit requirements of the BF algorithm are very low, but the performance is poor and the error correction capability is limited. The hard decision decoding algorithm has the characteristics of low decoding complexity and easy hardware implementation. It is simpler in hardware design, but its decoding performance is poor in bit error rate and has limited error correction capabilities. Therefore, hard decision Decoding algorithms are gradually replaced by soft-decision decoding algorithms.

The Belief Propagation (BP) algorithm is proposed on the basis of the hard decision decoding algorithm, but exponential and logarithmic functions need to be used in the decoding process, which is complicated in operation and difficult to implement in hardware. In order to facilitate hardware implementation, the BP algorithm can be simplified into a minimum sum (MS) algorithm.

LDPC iterative decoding is updated and corrected according to the log-likelihood ratio (LLR) information received by the channel and the check relationship between channel information { f n }. v n represents the variable node corresponding to the nth column, c m represents the check node corresponding to the mth row. Define M ( n ) = { m : h m n } = 1 as the set of check nodes connected to the variable node, N ( m ) = { n : h m n } = 1 as the set of variable nodes connected to the check node. C m n i t e r and V m n i t e r respectively represent the LLR transferred from v n to c m and the LLR transferred from c m to v n during the i-th iteration [

The corresponding algorithm is described as follows:

1) Initialization: set the initial values of all C m n i t e r , V m n i t e r and iteration counter iter to 0, and the initial value of v n to the received likelihood information.

2) Check node update: update the information of v n connected with c m according to the principle of information transmission. The update formula is as follows: sdadasd

V m n i t e r = ∏ n ' ∈ N ( m \ n ) s i g n ( C m ' n i t e r ) ⋅ ∂ ⋅ min n ' ∈ N ( m \ n ) | C m ' n i t e r | (1)

3) Variable node update: Pass the information of c m connected to v n to the variable node, and update with the information carried by v n itself:

C m n i t e r = f n + ∑ m ' ∈ M ( m ) V m ' n i t e r (2)

4) Result decision verification: the data in the updated data node is judged, and the judgment result is verified according to the check matrix. If the verification result is satisfied, or the iteration counter iter reaches the predetermined maximum value, the iteration is stopped and the result is output as the final result; otherwise, the iteration is continued according to steps 2) and 3), and the value of ITER counter is increased by 1. The flowchart is shown in

In the actual application process, in order to meet the needs of different scenarios, most communication systems choose different types and parameters of LDPC codes according to different scenarios. Generally, except for some special LDPC codes, LDPC codes with different types and parameters have different decoder structures. In this case, the system often needs to integrate multiple LDPC decoders, which limits the utilization of hardware resources. Therefore, according to the actual needs of users, it is necessary to design a LDPC decoder which can flexibly configure the code length and code rate according to the actual channel conditions.

In 2.1, we introduced Tanner graph. There are two types of nodes in Tanner graph, namely variable node and verification node. According to the decoding algorithm introduced in 2.2, LDPC code decoding is realized by iteratively transferring information between the two types of nodes. Since the calculation process of each variable node is independent of other variable nodes, and the calculation process of each check node is also independent of other verification nodes, we naturally think of mapping the Tanner diagram of LDPC code directly

to the hardware structure.

The hardware structure mapped is shown in

For an LDPC code with a certain code length and code rate, the minimum value module and the sum module in the decoder structure have a fixed number of data involved in the operation. When the code length or code rate of the LDPC code is smaller, it corresponds to fewer storage units in the hardware structure, that is to say, the total number of storage units in the figure is r ⋅ c , and the storage units involved in the actual decoding process is not more than m ⋅ n ( m < r , n < c ). At this time, the number of input data ports preset by the corresponding NFUs corresponds to r and c, respectively. Therefore, in the implementation process, the decoder with a larger memory array can be configured by invalidating some input terminals in the NFUs module to achieve the purpose of decoder multiplexing [

For matrices, especially sparse matrices, MATLAB has more function instructions and extremely rich drawing functions, which can show the simulation results more vividly, so we rely on MATLAB for research.

The process is shown in

is C = ( c 1 , c 2 , ⋯ , c k ) , and the output code word of LDPC code encoder is X = ( x 1 , x 2 , ⋯ , x n ) . Then, through BPSK modulation, the transmission code word is S = ( s 1 , s 2 , ⋯ , s n ) . The transmitted code word S passes through the AGWN channel with mean value of 0 and variance of σ , and then demodulated by BPSK demodulator and decoded by LDPC decoder. The code word received by LDPC decoder is y n = s n + w n . w n is the additive white Gaussian noise in the channel, and the decoded code word obtained by LDPC decoder is X ∧ ⌢ . By comparing C and X ∧ ⌢ , the BER of transmission is obtained [

The simulation results under different iterations are shown in

bit error rate will be correspondingly lower.

The simulation results of different algorithms under the same number of iterations are shown in

In this paper, the principle of the multi-rate decoding of LDPC codes in optical communication system is analyzed in depth. On this basis, the simulation based on MATLAB shows that the corresponding multi-rate decoding can be realized by using the MS algorithm and selecting the appropriate iteration times.

The authors declare no conflicts of interest regarding the publication of this paper.

Jin, W.H. and Liu, C.W. (2020) Research of Multi-Rate LDPC Decoding in Optical Communication System. Optics and Photonics Journal, 10, 174-181. https://doi.org/10.4236/opj.2020.106019