## 3 Proposed Scheme
### CRC Interleaving Algorithm
#### 3.1.1 Related Definitions and Concepts  
**(a) Parameters and functions**  
The following explains the meaning of subsequent parameters or functions:  
1. \(CRC\): Cyclic redundancy code;  
2. \(k\): The length of each message packet (data block), called information bits. 3. \(n\): The length of the codeword. 4. Linear \((n,k)\) code: The codeword length is \(n\), a linear code containing information bits \(k\), and the check bit length is \(nk\). 5. \(g(x)\): Generating polynomial of CRC. 6. \(r\): The highest degree of \(CRC\) generated polynomial \(g(x)\). 7. \(m\): The order or period of the polynomial \(g(x)\), such that it is the smallest positive integer that is divisible by \(x^{m}-1\). 8. \(h(x)\): Parity check polynomial of the \(CRC\) code. 9. \(h_{i}\): The coefficient of the \(i_{th}\) item of \(h(x)\). 10. \(H\): Parity check matrix of the code. 11. \(h_{i,j}\): The element with the row number \(i\) and column number \(j\) of the matrix \(H\). 12. \(H_{c}\): The matrix after matrix transformation. 13. \(H_{cj}\): Column \(j\) of matrix \(H_{c}\). 14. \(f_{H}\big{(}H_{cj}\big{)}\): The corresponding column number of the \(j_{th}\) column of matrix \(H_{c}\) in the matrix \(H\). 15. \(b_{i}\): the \(i_{th}\) bit of information. 16. \(H[n-k,n]\): H is a matrix of \(n-k\) rows and \(n\) columns. **(b) Data block construction** \begin{table}
\begin{tabular}{l} \hline INPUT: \(info\_bits,g(x)\). \\ \hline
1. \(info\_bits\_crc=\)\(crc\_generator\big{(}info\_bits,g(x)\big{)}\); \\ \hline
2. \(info\_bits\_interleaved=\)\(crc\_interleave\big{(}info\_bits\_crc)\); \\ \hline
3. \(info\_encoded=\)\(polar\_encoding\big{(}info\_bits\_interleaved)\). \\ \hline OUTPUT: \(info\_encoded\). \\ \hline \end{tabular}
\end{table} 
Table 2: Device_A process. \begin{table}
\begin{tabular}{l} \hline INPUT: \(info\_encoded,g(x)\). \\ \hline
1. \(info\_partial\_ecoded=\)\(polar\_sc\_decoding\big{(}info\_encoded)\); \\ \hline
2. \(error\_syndrome=\)\(error\_detecting\big{(}info\_partial\_ecoded,g(x)\big{)}\); \\ \hline
3. \(info\_corrected=\)\(error\_correcting\big{(}error\_syndrome,info\_partial\_decoded)\); \\ \hline
4. \(info\_bits=\)\(crc\_deinterleave\big{(}info\_corrected)\). \\ \hline OUTPUT: \(info\_bits\). \\ \hline \end{tabular}
\end{table} 
Table 3: Device_B process. The form of the data block before the CRC interleaving process: The input data of CRC encoding are binary information sequences. These sequences are divided into fixed-length message groups (data blocks). The data generated after each message group (data block) are called after CRC encoding. Polynomial calculations are \(GF(2)\) performed on binary fields. After the redundant bit information is obtained after the message grouping operation, the original message grouping form is \([b_{n-1},b_{n-2},b_{n-3},\ldots,b_{n-k}b_{n-k-1},b_{n-k-2},\ldots,b_{0}]\), the first k bits are the information bits, and the last \(nk\) bits are the information check bits. **(c) Generating and parity check polynomial selection**  
The selection principle of the cyclic redundancy code generation polynomial \(g(x)\) is as follows: make the row vector Hamming weight of the cyclic redundancy code parity check matrix generated by the selected cyclic redundancy code polynomial as small as possible, so as to use as few bits as possible bit to determine whether there is an error in the check bit of the cyclic redundancy code. So, the cyclic redundancy code-generating polynomial should be selected such that it is \(g(x)\) the smallest positive integer that can be divisible. The deterministic \(CRC(n,k)\) parity check polynomial \(h(x)\) is as follows:  
\[h(x)=(x^{m}+1)\backslash g(x) \tag{8}\]  
**(d) Determine the parity check matrix H**  
**Hypothesis 1**.