# Low-Complexity High-Throughput QC-LDPC Decoder for 5G New Radio Wireless Communication
## 2 5G New Radio LDPC Codes
### 5G New Radio QC-LDPC Characteristics  
As stated before, QC-LDPC codes play a significant role in 5G NR communications and have been deployed as the error correction coding scheme for the 5G eMBB data channel in 3 GPP standard meeting. Figure 1 shows the general structure of the base graph for the NR QC-LDPC codes. The columns are composed of three parts: information columns, core parity columns, and extension parity columns. The rows are divided into two parts: core check rows and extension check rows. As can be observed, the base matrix is partitioned into five submatrices, namely, \(A\), \(B\), \(O\), \(C\), and \(I\)[17]. Submatrix \(A\) corresponds to systematic bits. In addition, \(B\) corresponds to the first set of parity bits and is a square matrix with a dual-diagonal structure: its first column is of weight 3, whereas the submatrixis composed of other columns after the first column has an upper dual-diagonal structure. Submatrix \(O\) is an all-zero matrix. For the efficient support of Incremental Redundancy Hybrid Automatic Repeat Request (IR-HARQ), a single parity-check (SPC)-based extension is used to support lower rates, as shown in Figure 1. Submatrix \(C\) corresponds to SPC rows, and \(I\) is an identity matrix that corresponds to the second set of parity bits, i.e., the SPC extension. The combination of \(A\) and \(B\) is referred to as the kernel, and the other parts (\(O\), \(C\), and \(I\)) are referred to as extensions. This code structure is similar to the Raptor-like extension, as described in [15]. The 3 GPP has finalized two types of rate-compatible base graphs for the channel coding, naming BG1 and BG2. Base graphs BG1 and BG2 have relatively similar structures. However, BG1 is designed for larger block lengths (\(500\leq K\leq 8448\)) and higher rates (\(1/3\leq R\leq 8/9\)), whereas BG2 is deployed for smaller block lengths (\(40\leq K\leq 2560\)) and lower rates (\(1/5\leq R\leq 2/3\)). The actual base graph usage and the definition of the two base matrices are provided in the NR standard specification TS 38.212 [15]. The base graph that supports \(K_{max}\) should support the following set of shift sizes \(Z\), where \(Z=a\times 2^{j}\) for \(a\in\{2,3,5,7,9,11,13,15\}\), and \(0\leq j\leq 7\). The number of shift coefficient designs for both base graphs BG1 and BG2 is 8. All lift sizes are categorized into eight sets based on parameter \(a\), where \(a\) is used for the definition of the lifting-size \(a\times 2^{j}\). Table 1 presents the set of shift coefficients. \begin{table}
\begin{tabular}{c c} \hline \hline
**Exponent Matrix** & **Lifting Size Set** \\ \hline Set 1 & \(Z=2\times 2^{j},j=0,1,2,3,4,5,6,7\) \\ Set 2 & \(Z=3\times 2^{j},j=0,1,2,3,4,5,6,7\) \\ Set 3 & \(Z=5\times 2^{j},j=0,1,2,3,4,5,6\) \\ Set 4 & \(Z=7\times 2^{j},j=0,1,2,3,4,5\) \\ Set 5 & \(Z=9\times 2^{j},j=0,1,2,3,4,5\) \\ Set 6 & \(Z=11\times 2^{j},j=0,1,2,3,4,5\) \\ Set 7 & \(Z=13\times 2^{j},j=0,1,2,3,4\) \\ Set 8 & \(Z=15\times 2^{j},j=0,1,2,3,4\) \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Relationship between exponent matrices and sets of lifting size. Figure 1: Sketch of base parity-check structure for the 5G new radio (NR) quasi-cyclic low-density parity-check (QC-LDPC) codes. The shift value \(P_{m,n}\) can be calculated using the function \(P_{m,n}=f(V_{m,n},Z)\), where \(V_{m,n}\) is the shift coefficient of the \((m,n)\)th element in the corresponding shift design. The function \(f\) is defined as Equation (4), in which \(mod\) denotes the modulo arithmetic. \[P_{m,n}=f(V_{m,n},z)= \begin{cases}-1&\text{if }V_{m,n}=-1\\ mod(V_{m,n},z)&else\end{cases}  \tag{4}\]  
The five steps for constructing the parity-check matrix of the \((N,K)\) QC-LDPC code with a target information block size \(K\) and code rate \(R=K/N\) are listed below. For a base graph, let \(k_{b}\) denote the number of information circulant columns; thus, if the lifting size is \(Z\), \(K=Z\times k_{b}\) nominally.