## 3 Code Roots Recognition and Generator Polynomial Reconstruction
### Discussion of the Element \(\alpha^{2^{\pi}-1}\)  
Up to now, we have estimated the code roots from the set \(\left\{\alpha^{1},\alpha^{2},\cdots,\alpha^{2^{\pi}-2}\right\}\) but the element \(\alpha^{2^{\pi}-1}\) is ignored. To verify whether the element \(\alpha^{2^{\pi}-1}=1\) is a root of the code, a method is calculating the LLR \(L\left(\alpha^{2^{\pi}-1}\right)\) according to its MPCM:  
\[H_{{}_{\min}}(\alpha^{2^{\pi}-1})=\left(\left(\alpha^{2^{\pi}-1}\right)^{\pi- 1-l_{{}_{\pi}}}\quad\left(\alpha^{2^{\pi}-1}\right)^{\pi-2-l_{{}_{\pi}}}\quad \cdots\quad\left(\alpha^{2^{\pi}-1}\right)^{1}\quad 1\right) \tag{26}\]  
But obviously, we have \(H_{{}_{\min}}(\alpha^{2^{\pi}-1})=Hb_{{}_{\min}}(\alpha^{2^{\pi}-1})=Hb_{{}_{ \min\_a}}(\alpha^{2^{\pi}-1})=\left(1\quad 1\quad\cdots\quad 1\right)\), because \(\alpha^{2^{\pi}-1}=1\). The MPCM is an overall-ones vector which provides very little information for the calculation of the LLR. We propose to create a new MPCM for the element \(\alpha^{2^{\pi}-1}\) simply by the NOT of the minimal check matrix of one of the estimated roots. To get high reliability, we choose the root that has the highest LLR. The parity check matrix of a code, which has \(k+1\) roots include \(\alpha^{2^{\pi}-1}\), has a form as shown in Equation (27):  
rules based on different primitive polynomials are not the same. However, we propose a theorem that a binary cyclic codeword based on a primitive polynomial is also a valid binary cyclic codeword based on another primitive polynomial. According to this, we can choose any one primitive polynomial \(p(x)\) randomly and estimate the code length and code roots based on \(p(x)\). Then, we can recognize the actual primitive polynomial according to the root properties of the BCH codes. **Theorem 1**: A binary cyclic codeword \(C_{r}\), which is encoded based on a primitive polynomial \(p_{\rm i}(x)\) over \({\rm GF}(2^{m})\), is also a valid binary cyclic codeword based on another primitive polynomial \(p_{2}(x)\) over \({\rm GF}(2^{m})\) with the same number of code roots. **Proof**. The coefficients of a generator polynomial \(g(x)\) of a binary cyclic code is in \({\rm GF}(2)\) and can be factored into the product of some minimal polynomials over \({\rm GF}(2)\):  
\[g(x)=m_{1}(x)m_{2}(x)\cdots m_{p}(x) \tag{32}\]  
Let \({\rm GF}_{1}(2^{m})\) and \({\rm GF}_{2}(2^{m})\) be extension fields based on two different primitive polynomials \(p_{1}(x)\) and \(p_{2}(x)\), respectively, then \({\rm GF}_{1}(2^{m})\) and \({\rm GF}_{2}(2^{m})\) have the same structure. Each minimal polynomial \(m_{i}(x)\)\((1\leq i\leq p)\) can be factored in the extension fields \({\rm GF}_{1}(2^{m})\) and \({\rm GF}_{2}(2^{m})\) both. We define \(\alpha\) and \(\beta\) to be the roots of \(p_{1}(x)\) and \(p_{2}(x)\), respectively. According to Theorem 2.18 in [36], let \(e1\) and \(e2\) be the smallest integers such that \(\alpha^{2^{m}}=1\) and \(\beta^{2^{m}2}=1\), respectively, then we have:  
\[m_{i}(x)=\prod_{j=0}^{e1-1}\left(x+\alpha^{2^{j}}\right)=\prod_{j=0}^{e2-1} \left(x+\beta^{2^{j}}\right) \tag{33}\]  
Since a minimal polynomial has only one distinct root, then according to Equation (33), we have \(e1=e2\), _i.e.,_ each minimal polynomial has the same number of conjugate roots, even if it is based on different primitive polynomials. Consequently, a codeword, which is based on a primitive polynomial \(p_{\rm i}(x)\), is also a valid codeword based on any other primitive polynomial \(p_{2}(x)\), and the number of code roots and error-correcting capabilities are the same. Therefore, when recognizing the parameters of a binary cyclic code, we can just randomly choose a primitive polynomial provisionally. In order to reduce the computational complexity, we recommend choosing the primitive polynomial with the smallest number of terms.