## 2 System Model
### MAP Turbo Decoding  
As shown in Figure 3, the turbo decoder performs decoding processes by exploiting a maximum a posteriori (MAP) algorithm, where the received signal sequence is demultiplexed into three sequences [25]: the systematic sequence \(y^{s}\) and two parity sequences \(y^{p1}\) and \(y^{p2}\). One SISO decoder utilizes \(y^{s}\) and \(y^{p1}\) (or \(y^{p2}\)) as inputs and computes the log-likelihood ratio (LLR) of each information bit based on the trellis structure in Figure 3c, which is defined for the \(k\)-th information bit \(u_{k}\), as  
\[ \begin{split} L(\tilde{u}_{k})&=\log\frac{P(u_{k} =1|y)}{P(u_{k}=-1|y)}\\ &=\log\left(\frac{\sum_{u_{k}=1}\tilde{u}_{k}\Sigma_{1}(s^{\prime })\bar{\beta}_{k}(s)\overline{\gamma}_{k}(s^{\prime},s)}{\sum_{u_{k}=1} \overline{\gamma}_{k}\tilde{u}_{k}\Sigma_{1}(s^{\prime})\bar{\beta}_{k}(s) \overline{\gamma}_{k}(s^{\prime},s)}\right)\end{split}  \tag{4}\]  
where \(\widetilde{u}_{k}(s)\), \(\bar{\beta}_{k}(s)\), and \(\widetilde{\gamma}_{k}(s^{\prime},s)\) denote the forward, backward and branch metrics, respectively. The \(s\) and \(s^{\prime}\) indexes are associated with trellis steps \(k\) and \(k-1\), respectively. The  
Figure 2: System model of LTE based uplink NB-IoT systems. MAP algorithm traverses in both the forward and backward directions to obtain state metrics \(\widetilde{\alpha}_{k}(s)\) and \(\beta_{k}(s)\), respectively. In the \(k\)-th stage, the transmission value from the \(s^{\prime}\) state to the \(s\) state is denoted by \(\widetilde{\gamma}_{k}(s^{\prime},s)\). The \(\widetilde{\alpha}_{k}(s)\widetilde{\beta}_{k}(s)\), and \(\widetilde{\gamma}_{k}(s^{\prime},s)\) matrices are computed as  
\[\widetilde{\alpha}_{k}(s)=\sum_{s^{\prime}}\widetilde{\gamma}_{k}\big{(}s^{ \prime},s\big{)}\widetilde{\alpha}_{k-1}\big{(}s^{\prime}\big{)} \tag{5}\]  
\[\widetilde{\beta}_{k-1}\big{(}s^{\prime}\big{)}=\sum_{s}\widetilde{\gamma}_{ k}\big{(}s^{\prime},s\big{)}\widetilde{\beta}_{k}(s) \tag{6}\]  
\[\widetilde{\gamma}_{k}\big{(}s^{\prime},s\big{)}=\exp\bigg{[}\frac{1}{2}L_{e}( u_{k})u_{k}+\frac{1}{2}L_{c}X_{k}^{s}u_{k}+\frac{1}{2}L_{c}X_{k}^{p}c_{k} \bigg{]} \tag{7}\]  
where \(L_{e}(u_{k})\) denotes the extrinsic LLR value of \(u_{k}\), \(L_{c}\) is the channel reliability measure and \(X_{k}^{s}\) and \(X_{k}^{p}\) are the transmitted bits of \(x_{k}^{S}\) and \(x_{k}^{p}\), respectively. Due to the high computational complexity of the MAP algorithm, which is a result of exponential and multiplication calculations, usually, an equivalent logarithmic form is applied, where multiplication is changed to an addition. Therefore, the equivalent equations in (5)-(7) can be rewritten in the following [14] matrices computed as  
\[\alpha_{k}(s)=\log\Bigl{[}\sum_{s^{\prime}}\exp\big{(}\gamma_{k}^{\prime} \big{(}s^{\prime},s\big{)}+\alpha_{k-1}\big{(}s^{\prime}\big{)}\big{)}\Bigr{]} \tag{8}\]  
\[\beta_{k-1}\big{(}s^{\prime}\big{)}=\log\Bigl{[}\sum_{s}\exp\big{(}\gamma_{k} ^{\prime}\big{(}s^{\prime},s\big{)}+\beta_{k}(s)\big{)}\Bigr{]} \tag{9}\]  
\[\gamma_{k}^{\prime}\big{(}s^{\prime},s\big{)}=\frac{1}{2}L_{e}(u_{k})u_{k}+ \frac{1}{2}L_{c}X_{k}^{s}u_{k}+\frac{1}{2}L_{c}X_{k}^{p}c_{k} \tag{10}\]  
where the quantities \(\widetilde{\alpha}_{k}(s),\widetilde{\beta}_{k}(s)\), and \(\widetilde{\gamma}_{k}(s^{\prime},s)\) are defined in the following [26]  
\[\alpha_{k}(s)=\log(\widetilde{\alpha}_{k}(s)) \tag{11}\]  
\[\beta_{k}(s)=\log\Bigl{(}\widetilde{\beta}_{k}(s)\Bigr{)} \tag{12}\]  
\[\gamma_{k}^{\prime}\big{(}s^{\prime},s\big{)}=\log\bigl{(}\widetilde{\gamma}_ {k}\big{(}s^{\prime},s\big{)}\bigr{)} \tag{13}\]  
The above-stated logarithmic computation of the SISO MAP decoding algorithm is utilized to make the hardware implementation of the algorithm realizable. The \(\gamma^{\prime}\) values are easily achieved through a few numbers of additions that are stable in hardware.