# Rateless Coded Uplink Transmission Design for Multi-User C-RAN
## 3 Rateless Coded Uplink Transmission Scheme
### Iterative Detecting and Decoding at the BBUI Pool  
Figure 2 shows the decoding graph corresponding to the iterative detector and decoder at the BBU pool. Square nodes represent check nodes, and circular nodes represent variable nodes which are also named as input nodes or output nodes, as shown in the figure. The left and right subgraphs in the upper part of the figure represent the Raptor decoding graph for the messages from user 1 and user 2, respectively. The input nodes and output nodes in the Raptor decoding graph represent the corresponding input bits (LDPC coded bits) and output bits (Raptor coded bits), respectively. For simplicity, each output node and the associated LT check node are regarded as a whole and referred to as \"output node\" in the following. The lower part of the figure is the multi-user detector. \(LLR^{a}[c_{i}]\) and \(LLR^{c}[c_{i}]\) denote the log-likelihood-ratio (LLR) of the output bits of user \(i\) exchanged between the MU detector and decoders. The MU detector calculates the LLRs of  
where \(\frac{P(c_{i}=0)}{P(c_{i}=1)}\) equals 1, and the value of \(\frac{P(c_{i^{\prime}}=0)}{P(c_{i^{\prime}}=1)}\) is 1 at the beginning of decoding and equals \(e^{LLR^{\prime}[c_{i^{\prime}}]}\) during the decoding iteration, in which \(LLR^{\prime}[c_{i^{\prime}}]\) is the soft output from the Raptor decoder for the other user \(i^{\prime}\) in the previous decoding iteration. Taking the case of \(i=1,\ c_{i}=0,\ c_{i^{\prime}}=1\) as an example, the conditional probability \(P(\hat{y}_{1},\hat{y}_{2}|c_{1}=0,c_{2}=1)\) in (6) is calculated as follows. Note that when fixing \(c_{i}=0,\ c_{i^{\prime}}=1\), the received signals \(y_{1}\) and \(y_{2}\) at the RRHs are Gaussian distributed. According to (5), we can derive:  
\[P(\hat{y}_{1},\hat{y}_{2}|c_{1}=0,c_{2}=1)=\int_{k_{11}}^{k_{12}}\frac{1}{\sqrt {2\pi o_{0}^{2}}}e^{-\frac{(x-k_{11}+k_{12})^{2}}{2\omega_{0}^{2}}}dx\cdot\int _{k_{21}}^{k_{22}}\frac{1}{\sqrt{2\pi o_{0}^{2}}}e^{-\frac{(x-k_{21}+k_{22})^ {2}}{2\omega_{0}^{2}}}dx, \tag{7}\]  
where the integral range \([k_{11},k_{12}]\) and \([k_{21},k_{22}]\) denote the quantization intervals that \(\hat{y}_{1}\) and \(\hat{y}_{2}\) represent according to (5), respectively. As an example, if \(\hat{y}_{1}=q_{11}\), the range for the first integral is \(\left(-\infty,\ -3\sqrt{D(y_{1})}+\Delta_{1}\right)\). The other three conditional probability terms can be calculated similarly. The iterative detecting and decoding is based on the BP algorithm [41], where'messages' are interchanged along the edges between variable nodes and check nodes. Each'message' along the edge is the LLR of the corresponding variable node (representing either the input bits or the output bits), which is connected by this edge. The whole decoding process can be divided into two stages. In the first stage, the decoding iteration is performed on the entire decoding graph (including the MU detector), until the mean LLR of the input nodes of both users exceed a predetermined threshold \(m_{th}\), which is the minimum requirement for successfully decoding the rate \(R_{p}\) LDPC precoder and can be derived using the method in [31]. In the second stage, decoding iteration is performed individually on the LDPC decoding graph of each user to remove the residual errors. The detailed procedure of the first decoding stage is given in the following. For the iteration \(l\), firstly, message passing is performed on the Raptor decoding graph of user 1, which is shown in step 1 to step 6. _Step 1_: The message transferred from an input node \(i\) to an LDPC check node \(c\) is given by:  
\[m_{ic}^{(l)}=\sum\
olimits_{o}m_{oi}^{(l-1)}, \tag{8}\]  
where \(m_{oi}^{(l-1)}\) is the message from the LT output node of user 1 to the input node in the previous round \(l-1\).