# Investigation of IEEE 802.16e LDPC Code Application in PM-DQPSK System
## 2 IEEE 802.16e Standard LDPC Code Construction  
### Construction of IEEE 802.16e Standard H-Matrix  
With the continuous development of coherent optical communication technology, LDPC codes have been widely adopted in optical fiber communication systems, especially the PM-DQPSK system, which heavily depends on error control coding techniques to improve the quality and reliability of data transmission. LDPC codes stand out for their excellent performance close to the Shannon limit, which has the remarkable advantage of consistently low BER. This characteristic makes LDPC codes an indispensable part of optical fiber communications, and they play an important role in advancing the quality and efficiency of communication [13]. LDPC codes have also emerged as a crucial tool in ensuring reliable and high-performance data transmission over long distances in optical fiber communication systems.  
The defined LDPC code in IEEE802.16e standard is a quasi-circular irregular LDPC code, in which different code rates have different check matrices \(H\). \(H_{b}\) is the base checksum matrix of \(H\), and \(H\) is obtained by extending its base checksum matrix \(H_{b}\), where \(H_{b}\) is a matrix with \(m_{b}\) rows and \(n_{b}\) columns.  
\[H_{b}=\left[(H_{b1})_{m_{b}\times(n_{b}-m_{b})}|(H_{b2})_{m_{b}\times m_{b}}\right] \tag{1}\]  
According to the IEEE802.16e standard, the length of \(n_{b}\) is fixed to \(24\), while the length of \(m_{b}\) varies with the code rate. \(H_{b1}\) in Equation (1) corresponds to the information bits, which is a matrix of size \(m_{b}\times(n_{b}-m_{b})\), and \(H_{b2}\) is a matrix with both rows and columns being \(m_{b}\). Among them, the first column of \(H_{b2}\) has \(h(1)\), \(h(r)\), and \(h(m_{b})\) as non-negative integers with \(h(1)=h(m_{b})\). \(r\) ranges from \(2\leq r\leq m_{b}-1\); the exact value is specified by the IEEE802.16e standard. The matrix \(H_{b2}\) can be formed into a quasi-bi-diagonal structure in all rows except the first column, and the values on both quasi-diagonals are \(0\), and all other positions are \(-1\). The elemental composition of \(H_{b2}\) is shown in Equation (2).  
\[H_{b2}=\left[\begin{array}{ccccccccc}h(1)&0&&&&\\ -1&0&0&&&&\\ \vdots&&0&0&&-1\\ &&&0&\ddots&&\\ h(r)&&\ddots&\ddots&&\\ -1&&&\ddots&0&\\ \vdots&&-1&&0&0\\ -1&&&&0&0\\ h(m_{b})&&&&0\end{array}\right] \tag{2}\]  
\(H_{b}\) can be extended by the operation of \(m_{b}q\times n_{b}q\) to obtain the check matrix \(H\), where \(q\) is called the expansion factor [14]. There are 19 values of \(q\), corresponding to 19 code lengths; the minimum is 24, the maximum is 96, and \(H_{b}\) is extended according to the rules [15]. The element of \(H_{b}\) in position \((i,j)\) is \(q(i,j)\),  
\[q(i,j)=\left\{\begin{array}{ll}q(i,j),&q(i,j)\leq 0,\\ \left[\frac{q(i,j)\times z}{96}\right],&q(i,j)>0.\end{array}\right. \tag{3}\]  
After updating, if \(q(i,j)\) is \(-1\), the replacement is to be performed with the zero matrix of row \(z\) and column \(z\), while if \(q(i,j)\) is a non-negative integer, the replacement is to be performed with the matrix of \(z\) rows and \(z\) columns, and this matrix of \(z\) rows and \(z\) columns is obtained by cycling right from \(q(i,j)\). After replacing all the values inside the base-check matrix \(H_{b}\) with the matrix of \(z\) rows and \(z\) columns, the corresponding check matrix \(H\) of the LDPC codes at various code lengths and code rates can be obtained.