# Windowed Joint Detection and Decoding with IR-HARQ for Asynchronous SCMA Systems
## 3 Windowed Joint Detection and Decoding Algorithm
### Windowed Joint Detection and Decoding Algorithm  
As described in Section 3.1, the incremental decoders at a specific time unit \(t\) depend not only on the detector at that time unit but also on the detectors at previous time units. This is because redundant parity bits are transmitted at different time units. To ensure accuracy, it is necessary to have iterations between the decoder and detector at the same time unit, as well as joint iterations between the decoder at the current time unit and the detectors at the previous time units. Figure 2: Transmission mechanism of asynchronous SCMA-oriented IR-HARQ scheme. The decoding diagram of the windowed joint detection and decoding algorithm is shown in Figure 3. Assuming that the maximum number of transmissions for an information block is \(D_{\text{max}}=4\) and the window size is \(w=3\). For simplicity, each decoder is represented by DEC\({}_{j}\), \(j=1,\dots,J\), and the block length received at a one-time unit is \(I\). The slashed rectangles in the diagram depict the blocks that have been successfully decoded. The log-likelihood ratio (LLR) values of these decoded blocks remain constant during the iteration between the detector and decoder. The other colored rectangles represent the undecoded blocks. For example, and as shown in Figure 3, for DEC\({}_{1}\), four blocks from time unit \(t\) to \(t-3\) are decoded by an RC-LDPC decoder DEC\({}_{1}\). The resulting extrinsic information \(\mathbf{L}_{\text{DEC}_{1},I}^{\epsilon},\mathbf{L}_{\text{DEC}_{1},I-1}^{ \epsilon},\dots,\mathbf{L}_{\text{DEC}_{1},I-w+1}^{\epsilon}\) is transmitted to detectors MUD\({}_{t}\), MUD\({}_{t-1}\),..., MUD\({}_{t-w+1}\), respectively. Similarly, for DEC\({}_{2}\), two blocks (block\({}_{t-2},\)block\({}_{t-3}\)) are decoded by an RC-LDPC decoder DEC\({}_{2}\). The extrinsic information \(\mathbf{L}_{\text{DEC}_{2},I-2}^{\epsilon}\) is transmitted to the MUD\({}_{t-2}\). (Because the current window size is \(3\), \(\mathbf{L}_{\text{DEC}_{2},I-3}^{\epsilon}\) will not be transmitted to MUD\({}_{t-3}\).) The sliding window joint detection and decoding algorithm works as follows. When the channel information is received at time unit \(t\), the MUD (referred to as MUD\({}_{t}\)) performs the message-passing algorithm (MPA) detection and generates the extrinsic LLR information \(\mathbf{L}_{\text{MUD},t}^{\epsilon}\). This information is then exchanged with the DECs. After receiving the LLRs \(\mathbf{L}_{\text{MUD},t}^{\epsilon}\) from MUD\({}_{t}\), the decoders DEC\({}_{t},t=1,2,\dots,J\), perform the incremental decoding (step 2 in Figure 3a). (The length of different decoders in the DEC is different because some users decode more new information symbols due to their good channel conditions.) The extrinsic LLRs, \(\mathbf{L}_{\text{DEC}}^{\epsilon,w}=\left\{\mathbf{L}_{\text{DEC},t}^{ \epsilon},\mathbf{L}_{\text{DEC},t-1}^{\epsilon},\dots,\mathbf{L}_{\text{DEC },t-w+1}^{\epsilon}\right\}\), are generated and delivered to MUD\({}_{i}\), \(i=t,t-1,\dots,t-w+1\) as the a priori information written by  
\[\mathbf{L}_{\text{MUD},s}^{a}=\mathbf{L}_{\text{DEC},s}^{\epsilon},\ \ s=t,t-1,\dots,t-w+1. \tag{6}\]  
It is obvious that the window size is \(w\leq D_{\text{max}}\). Then, \(w\) MUDs work separately and deliver the resulting extrinsic information \(\mathbf{L}_{\text{MUD}}^{\epsilon,w}=\left\{\mathbf{L}_{\text{MUD},t}^{ \epsilon},\mathbf{L}_{\text{MUD},t-1}^{\epsilon},\dots,\mathbf{L}_{\text{MUD },t-w+1}^{\epsilon}\right\}\) to the DEC as  
\[\mathbf{L}_{\text{DEC},s}^{a}=\mathbf{L}_{\text{MUD},s}^{\epsilon},\ \ s=t,t-1,\dots,t-w+1. \tag{7}\]  
Upon receiving the extrinsic LLRs from MUD\({}_{i}\), \(i=t,t-1,\dots,t-w+1\), the DEC performs incremental decoding and sends back the new extrinsic information to the \(w\) MUDs according to (6). This iteration process continues until the maximum number Iter\({}_{\text{out}}\) is achieved. The detailed windowed joint detection and decoding algorithm is given in Algorithm 1.