# Improvement of Fast Simplified Successive-Cancellation Decoder for Polar Codes
## 3 Proposed Method
### Detailed Description  
Node state initialization: The constituent codes, i.e., the R-0, R-1, Rep, SPC, and R-other nodes, are identified on the decoding tree, offline. Let \(\boldsymbol{F}=[f_{1},f_{2},...,f_{N}]^{\text{T}}\) denote the frozen bit vector; if the \(i\) corresponds to a frozen bit index, \(f_{i}=1\), otherwise \(f_{i}=0\). The leaf node types correspond to the values of \(\boldsymbol{F}\). Apart from the leaf node level, recognition of the constituent code is based on the left and right child node types; the recognition is performed in order, from bottom to top, and left to right. Recognition using binary tree traversal alters the node flag until identifications are no longer obtained. The flag of each constituent node is set corresponding to the specialized processing at the root of the constituent codes. Algorithm 2 summarizes the initialization procedure of the node state in the decode tree. This step forms a Fast-SSC pruning tree. Figure 2(a) shows an example of a Fast-SSC pruned tree, which is transformed from Figure 2(b). This tree has significantly fewer nodes to operate on and visit than that of the SSC decoder. The Rep and SPC nodes are indicated by green stripes and cross-hatched orange, respectively. In Figure 2(a), the SPC and Rep nodes at \(d_{v}=3\) are equivalent, and the code length is 2. Recognition of the Rep and SPC nodes with greater code length is based on the case in which the Rep node length is 2. Once the decoding tree structure has been established, depth-first tree traversal decoding begins. For a code length of \(N=2^{m}\), the data structure of a binary decoding tree \(T\) is first generated. The nodes of the tree are created using a structure type in C++ programming, and its members include \(level,left,right,parent,index,length\), etc. The tree includes \(m+1\) node levels, indexed from depth \(d_{v}=m\) to \(d_{v}=0\). Each level \(d_{v}\) contains \(2^{d_{v}}\) nodes, and each node of level \(d_{v}\) contains \(2^{m-d_{v}}\) LLRs, and \(\mathbf{\kappa}_{v}\) and \(2^{m-d_{v}}\) binary values \(\mathbf{\beta}_{v}\). The details of the Fast-ISSC decoding algorithm are as follows. ```
0: Channel LLRs \(\mathbf{L}\)
0: Decoded codeword \(\hat{\mathbf{C}}\)
1: Node state initialization( )
2:\(T_{0}[0].\mathbf{\kappa}_{v}=\mathbf{L}\)
3:if\(Flag==1\)then
4:\(\mathbf{\beta}_{v}=0\) //R-0 nodes
5: Beta_compute( )
6:elseif\(Flag==2\)then
7:\(\mathbf{\alpha}_{v}\) is calculated as in Equations (1) or (2)
8:\(\mathbf{\beta}_{v}=\text{h}(\mathbf{\alpha}_{v})\) //R-1 nodes
9: Beta_compute( )
10:elseif\(Flag==6\) or \(Flag==4\)then
11:\(\mathbf{\alpha}_{v}\) is calculated as in Equations (1) or (2)//Rep nodes
12: the decoder output is calculated as in Equation (3)
13: Beta_compute( )
14:elseif\(Flag==5\)then
15:\(\mathbf{\alpha}_{v}\) is calculated as in Equations (1) or (2)//SPC nodes
16: the decoder output is calculated as in Equations (4)-(6)
17: Beta_compute( )
18:else
19:\(\mathbf{\alpha}_{v}\) is calculated as in Equations (1) or (2)//R-other nodes
20:\(Flag\_check=0\);
21: FC( )
22:if\(Flag\_check==1\)then
23:\(\mathbf{\beta}_{v}=\mathbf{\beta}_{v}\)
24: Beta_compute( )
25:else
26: Travel toward the next level of the decode tree
27:endif
28:endif
29: return The decoded codeword \(\hat{\mathbf{C}}=T_{0}[0].\mathbf{\beta}_{v}\). ```  
**Algorithm 1**Fast-ISSC decoder. Decoding process: The soft information, i.e., \(\mathbf{\kappa}_{v}\), of the root node is the decoder input, which is calculated from the received channel values. The flag of the current node is first judged: if it  
Figure 3: Example of Fast-ISSC pruned tree based on FC performance at R-other node for P(16, 8). corresponds to one of the R-0, R-1, Rep, or SPC codes, it follows the specialized decoding rule at the roots of these constituent codes; otherwise, the \(\mathbf{\beta}_{v}\) values of the R-other node and its leaf nodes are obtained via the R-1 node rule. Then, the FC is executed; this procedure is shown in Algorithm 3.