# Research and Implementation of High-Efficiency and Low-Complexity LDPC Coding Algorithm
## 4 LDPC Decoding Algorithm  
### Log-Likelihood Ratio-Belief Propagation (LLR-BP) Algorithm  
The LDPC soft-decision decoding algorithm with the BP algorithm serving as the basic algorithm affords a short operation time, high resource utilization rate, and high decoding throughput rate. The iterative message of the BP algorithm is generally expressed in the form of probability or LLR. The advantage of the LLR-BP algorithm over the probability-based BP algorithm lies in transforming many multiplication operations into additive operations, thus considerably relieving the implementation complexity of decoding while preserving the decoding performance [5; 18; 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29]. This paper introduces the min-sum decoding algorithm (MSA), based on the LLR-BP algorithm, and combines it with the high-efficiency and low-complexity coding algorithm to complete the design and implementation of a coder-decoder (codec). The input information of the decoder after AWGN channel transmission was set as \(y_{i}=(y_{1},y_{2},\cdots,y_{n})\) and \(y_{i}=x_{i}+n_{i}\), where \(x_{i}(i=1,\cdots,n)\) represents a symbol sequence, with the CW \(c_{i}\) having a value of \(\{0,1\}\) that is mapped into \(\{+1,-1\}\). \(n_{i}\) denotes the AWGB with a mean value of \(0\) and variance of \(\sigma^{2}\). In the \(k\)-th decoding iteration, \(\lambda_{n}^{(k)}\) denotes the posterior LLR of the input data \(n\)-th bit, \(\lambda_{mn}^{(k)}\) is the information transmitted from \(n\) to \(m\), and \(\Lambda_{mn}^{(k)}\) is the information transmitted from \(m\) to \(n\). The implementation flow of the LLR-BP algorithm is presented below: \begin{table}
\begin{tabular}{c c} \hline \hline
**Operating Steps** & **Complexity** \\ \hline \(Au^{T}\) & \(O(n)\) \\ \(Cu^{T}\) & \(O(n)\) \\ \(T^{-1}Au^{T}\) & \(O(n)\) \\ \(ET^{-1}Au^{T}\) & \(O(n)\) \\ \((ET^{-1}A+C)u^{T}\) & \(O(n)\) \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Operational complexity analysis table of \(p_{1}\). \begin{table}
\begin{tabular}{c c} \hline \hline
**Operating Steps** & **Complexity** \\ \hline \(Au^{T}\) & \(O(n)\) \\ \(Bp_{1}^{T}\) & \(O(n)\) \\ \(Au^{T}+Bp_{1}^{T}\) & \(O(n)\) \\ \(T^{-1}(Au^{T}+Bp_{1}^{T})\) & \(O(n)\) \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Operational complexity analysis table of \(p_{2}\). 1 Initiation: \(n\in\{1,2,\cdots,N\}\), \(\lambda_{mn}^{(0)}=\lambda_{n}^{(0)}\), \(m\in M(n)\), and \(\lambda_{mn}^{(0)}=\lambda_{n}^{(0)}\), \(m\in M(n)\) are initialized. The initial LLR received by the decoder after channel transmission is expressed as:  
\[\lambda_{n}^{(0)}=\log\frac{p(x_{i}=0|y_{i})}{p(x_{i}=1|y_{i})}=\frac{2y_{i}}{ \sigma^{2}} \tag{26}\]  
In Equation (26), \(\lambda_{n}^{(0)}\) is the initial value of \(n\), \(M(n)\) represents the set of all \(m\) connected to \(n\), and \(N(m)\) is the set of all \(n\) connected to \(m\). 2 Updating the check nodes: For each \(n\) and \(n\in N(m)\), the following equation is calculated:  
\[\Lambda_{mn}^{(k)}=\left(\underset{n^{\prime}\in N(m)\backslash n}{\Pi}sign \Big{(}\lambda_{mn^{\prime}}^{(k-1)}\Big{)}\right)\Phi^{-1}\left(\underset{n^ {\prime}\in N(m)\backslash n}{\Sigma}\Phi\Big{(}\Big{|}\lambda_{mn^{\prime}}^ {(k-1)}\Big{|}\Big{)}\right) \tag{27}\]  
In Equation (27), the functions \(sign(x)\) and \(\Phi(x)\) are defined as:  
\[sign(x)= \begin{cases}+1&x\geq 0\\ -1&x<0\end{cases}  \tag{28}\]  
\[\Phi(x)=\Phi^{-1}(x)=\lg\left(\frac{e^{x}+1}{e^{x}-1}\right)x>0 \tag{29}\]  
where \(N(m)\backslash n\) denotes that the set of all variable nodes after \(n\) is deleted from the set \(N(m)\), and \(M(n)\backslash m\) denotes that the set of all check nodes after \(m\) is deleted from the set \(M(n)\).