# Soft Iterative Decoding Algorithms for Rateless Codes in Satellite Systems
## 3 Efficient Soft Iterative Decoding Algorithms for HARQ with Rateless Codes in Satellite Systems
### HARQ with Rateless LDPC Codes
#### 3.2.2 Soft Iterative Decoding Algorithms
After every iteration of estimating \(\omega_{t,i}\) and \(\mu_{i,t}\), the soft output from LT decoding, \(\lambda_{i}^{(\text{LT})}\), is estimated as follows:  
\[\lambda_{i}^{(\text{LT})}=\sum_{t\in R_{i}}(\omega_{t,i}+\mu_{i,t}). \tag{8}\]  
Then, the parity check equation is established using the hard decision values of the soft output as follows, in order to determine whether the decoding process needs to be continued:  
\[\bigoplus_{i\in C_{t}}\hat{c}_{i}=0,\ 1\leq t\leq n-k, \tag{9}\]  
where \(\hat{c}_{i}\)s is the hard decision of \(\lambda_{i}^{(\text{LT})}\)s. If the above parity check equation is satisfied, the decoding process for the LT code will stop here. Otherwise, the soft outputs are used to update soft information on the bit nodes by setting \(\lambda_{i}^{(\text{R})}=\lambda_{i}^{(\text{LT})}\), and also they are used to initiate the decoding process in the LDPC decoder. In other words, soft information from bit to check node is initialized as follows:  
\[v_{i,t^{\prime}}=\lambda_{i}^{(\text{R})},\ t^{\prime}\in N_{i}. \tag{10}\]  
Then, soft information exchanges are made by estimating the following equations alternatively. \[w_{t^{\prime},i}=2\tan^{-1}\left(\prod_{s\in E_{t^{\prime}},s\
eq i}\tanh \frac{v_{s,t^{\prime}}}{2}\right), \tag{11}\]  
\[r_{i}=\log\left(\frac{\Pr(c_{i}=1|\gamma_{i})}{\Pr(c_{i}=0|\gamma_{i})}\right). \tag{4}\]0  
where \(E_{t^{\prime}}\) is the set of indices for the bit nodes connecting to check node \(t^{\prime}\), and \(N_{i}\) is the set of indices for the check nodes connecting to bit node \(i\). After every alternative estimation of the above two equations, the soft output from the LDPC decoder:  
\[r_{i}=\log\left(\frac{\Pr(c_{i}=1|\gamma_{i})}{\Pr(c_{i}=0|\gamma_{i})}\right). \tag{4}\]1  
and the following parity check equation is estimated. \[r_{i}=\log\left(\frac{\Pr(c_{i}=1|\gamma_{i})}{\Pr(c_{i}=0|\gamma_{i})}\right). \tag{4}\]2  
where \(\hat{I}_{i}\) is the hard decision of the soft output and \(\mathbf{H}^{T}\) is the transpose of the parity check matrix, \(\mathbf{H}\), for the LDPC code. If the parity check equation is satisfied, then the decoding stops by producing the final decoded information. On the other hand, if the maximum number of iterations is not reached, then the final soft output is used to update soft information on the bit nodes, i.e., \(\lambda_{i}^{(\text{R})}=\lambda_{i}^{(\text{LDPC})}\), and next joint iteration from LT decoding is repeated. A complexity reduced algorithm in the log-domain with a correction factor can be applied to both of the component codes DVBS2-LDPC [16] by replacing Equations (6) and (11) with Equations (15) and (16), respectively. \[r_{i}=\log\left(\frac{\Pr(c_{i}=1|\gamma_{i})}{\Pr(c_{i}=0|\gamma_{i})}\right). \tag{4}\]3  
\[r_{i}=\log\left(\frac{\Pr(c_{i}=1|\gamma_{i})}{\Pr(c_{i}=0|\gamma_{i})}\right). \tag{4}\]4  
where \(\Phi(a,b)=\text{sign}(a)\text{sign}(b)\text{min}(|a|,|b|)+\text{LUT}_{g}(a,b)\), and \(\text{LUT}_{g}(a,b)\) is a correction factor that is expressed as \(\text{LUT}_{g}(a,b)=\log(1+e^{-|a+b|})-\log(1+e^{-|a-b|})\). The above joint decoding process can be processed in parallel in order to accelerate the processing speed. Figure 4 shows the flow chart of the parallel decoding algorithm. In this method, the LT and LDPC decoders perform soft message exchanging processes in parallel. While steps 1-0 to 1-2 in the flowchart are performed in the LT decoder, steps 2-0 to 2-2 can be performed in the LDPC decoder. Afterwards, if step 3-3 for soft output estimation is performed as follows, then the decoding speed can be doubled. \[r_{i}=\log\left(\frac{\Pr(c_{i}=1|\gamma_{i})}{\Pr(c_{i}=0|\gamma_{i})}\right). \tag{4}\]5  
Afterwards, the hard decision on this soft output is used for the parity check in Equation (14). The decoding process will be continued if the parity check equation is not satisfied, by updating soft estimations on the bit nodes using the soft output, i.e.