# A Joint Detection and Decoding Scheme for PC-SCMA System Based on Pruning Iteration
## 4 Computational Complexity  
In this section, we first explain the computational complexity of the C-JIDD, and then compare and analyze the complexity of the proposed joint algorithm PIC-JDD and the traditional S-JIDD algorithm.  
The C-JIDD algorithm needs to add a CRC check operation at the end of each round of iteration compared with the S-JIDD algorithm, only XOR operation is needed during the CRC check. In the process of joint iterative detection and decoding, CRC checks the decoding results of each iteration, and if the CRC check is passed, it will output the iteration directly and automatically. However, it is uncertain when the specific iteration passes the CRC check and exits. In addition, different numbers of XOR operations are required for different codewords. While, exiting the iteration in advance can save computation complexity brought by redundant iteration. For example, when the code length N = 256, the number of adders required per iteration is 5996, as shown in Table 1. Only one CRC check is added at the end of each iteration, and the maximum XOR operation required for CRC check is (N\(\times\)R + 8) \(\times\)G, where G denotes the length of generated polynomial and the value is 9, and \(R\) = 0.47 is the code rate. That is, the maximum XOR operation to be added into each iteration is 1152, which is 19.2% of the adder. Similarly, when \(N\) = 1024, the maximum XOR operation required for each round of CRC check is 26.4% of the adder. However, the addition and multiplication operations saved by exiting the iteration early are much larger than the added XOR operation. Therefore, we consider the complexity burden caused by CRC check can be ignored in this paper.  
Figure 7: Flowchart of the PIC-JDD.  
The complexity of joint detection and decoding algorithm for PC-SCMA is mainly affected by the updating process of the RNs and the length of polar code. Compared with the S-JIDD, the PIC-JDD decreases the computational complexity by eliminating the most stable branch, so that it no longer participates in RN updating, and dynamically shrinking the factor graph performed in the next iteration.  
Table 1 describes the complexity of the two algorithms in addition, multiplication, and comparison operations, where T denotes the maximum number of iterations and \(d_{f}\) is the number of users occupied in each RN.  
Figure 8 shows the complexity comparison between the PIC-JDD algorithm proposed in this paper and the S-JIDD algorithm when \(T=7\) and the code length \(N\) is 256 and 1024, respectively. It can be seen that the PIC-JDD algorithm has a significant reduction in addition and multiplication computations than S-JIDD. When \(N=256\), the number of adders in PIC-JDD and S-JIDD are 20,796 and 41,972, and when \(N=1024\), the number of multipliers are 66,048 and 87,808, respectively. The PIC-JDD saves about 50% adders and 24% multipliers. In addition, compared with the S-JIDD algorithm, a comparison operation is added in the pruning process in PIC-JDD, and the comparison times under both the two code lengths are 72, this is a relatively small computation. The reason why is that during the RN updating, the branch with the largest confidence stability in the previous iterations is pruned from the next iteration to avoid redundant update and which effectively reduces the computational complexity.