# Investigation of IEEE 802.16e LDPC Code Application in PM-DQPSK System
## 2 IEEE 802.16e Standard LDPC Code Construction
### LDPC Decoding Algorithm  
The belief propagation (BP) decoding algorithm is an iterative algorithm for LDPC decoding, which effectively refines the estimation of codeword bits by iteratively exchanging messages between variable and check nodes. This iterative process enables the algorithm to converge to reliable codeword estimates, even amidst noise or errors in the received data [17].  
Secondly, BP decoding boasts low computational complexity, rendering it feasible for real-time applications in communication systems. Additionally, it harnesses the inherent redundancy within LDPC code structures to achieve high levels of error correction performance, closely approaching the theoretical Shannon limit. Furthermore, the versatility and adaptability of BP decoding allow for customization to suit specific system requirements and constraints. These collective benefits position BP decoding as a preferred method for LDPC code decoding across various modern communication systems. The following describes the step-by-step process of the BP decoding algorithm in detail [18].  
Step 1: Initialization. Before starting the iteration, the code initializes the LLR (log-likelihood ratio) information from variable nodes to check nodes (LLRQ) and from check nodes to variable nodes (LLRR), as well as the received channel information. The LLR information is computed based on the received channel information and external information, which is initially set to zero.  
Step 2: Message passing. Communication between variable nodes and check nodes. Based on the received codewords and extrinsic information from neighboring nodes, the log-likelihood ratio (LLR) is calculated, and then the external information of the nodes is updated according to the LLR calculation. For each variable node, the LLR of the transmitted bits is calculated based on the received codewords and the extrinsic information from neighboring checking nodes, and then the extrinsic information of the checking nodes is updated by taking into account the syndrome information and the previous extrinsic information from neighboring variable nodes.  
Step 3: Check for convergence. After each iteration, the code checks whether the codewords have converged, either by comparing them with the previous codewords or by reaching the maximum number of iterations. If the decoding process has not converged, it continues iterating; otherwise, it proceeds to the next step.  
Step 4: Decision. In accordance with the eventual extrinsic information, a decision is made for each bit of the decoded codewords. Based on the final LLR information, decisions are made for each bit to determine the final decoding result. In this step, the sign of the LLR values is compared to determine the value of each bit: if the LLR is negative, the decoded result is 1; otherwise, it is 0.  
Step 5: Output. The final decoded codewords are the result of the BP decoding algorithm.  
The BP decoding algorithm iteratively refines the estimation of the codeword bits by exchanging messages between variable nodes and check nodes. This iterative refinement process enables the algorithm to progressively converge towards a reliable estimate of the codewords, even when the received codewords are affected by noise or errors. Through this iterative exchange of messages, the algorithm effectively leverages the redundancy inherent in the LDPC code structure to improve the accuracy of the decoded information.