# Minimum Distance Optimization with Chord Edge Growth for High Girth Non-Binary LDPC Codes
## 4 Complexity Analysis and Design Examples
### Complexity Analysis
This is due to the fact that the column weight of the LDPC code is generally smaller than the row weight, so the number of cycles that are related to a column is smaller than the number of cycles related to a row. The total number of cycles that need FRC check is shown in the legend part of Figure 6. It can be seen that, when compared with the iterative and row-wise optimization method, the proposed method reduces the number of cycles requiring the FRC check from 6634 to 884. Above, the complexity of the proposed method is analyzed in terms of the number of candidate configurations for each chord edge and the number of cycles that require the FRC check. Combining these two aspects, the number of FRC checks is counted, as shown in the Figure 7. The number of FRC checks performed while using the proposed method is quite small. For the example given, a total of 477,688 FRC checks are required for completing one time optimization of the entire parity-check matrix using the scheme proposed by [PERSON] et al. [15], while only 11,810 FRC checks are required using the proposed progressive chord edge growth method. Therefore, the proposed method has much lower complexity. Figure 5: The number of candidate configurations for each chord edge/row. Using the above analysis steps, the design complexity of the proposed method for higher code rate NB-LDPC codes is further analyzed. Table 1 shows the complexity of the optimization for the NB-LDPC code with a code rate of 3/4 and code length of 96 symbols. The row weight \(d_{c}\) and column weight \(d_{v}\) of the adopted base matrix are eight and two, respectively. First, using the method proposed by [PERSON] et al. (2015), the number of candidate configurations for non-zero elements in each row is the number of permutations of \(d_{c}\) elements. For the case of \(d_{c}=8\), there are 40,320 permutations. The number of rows of the base matrix is 24, and the number of permutations for all rows is 40,320 \(\times\) 24, which is, 967,680. The non-zero elements of 72 chord edges need to be configured while using the proposed scheme; however, the total number of candidate configurations is less than the iterative and row-wise method. Subsequently, the number of cycles that need to perform FRC check is compared. In the manner of progressive chord edge growth, the cycles for each added chord edge are different. Using the row-wise optimization, there are a large number of cycles that are repeatedly processed when considering that the cycles are in the entire graph. Therefore, fewer cycles need to be checked  
Figure 6: The number of cycles that require the FRC check for each chord edge/row. Figure 7: The number of FRC checks for each chord edge/row. using the proposed method. Finally, Table 1 lists the number of FRC checks. The number of FRC checks for each row or each chord edge is the result of multiplying the number of cycles to be processed and the number of candidate configurations for each row or each chord edge. It can be seen that more FRC checks are required for the case of a larger check node degree, and the number of FRC checks using the proposed method is lower than that of the iterative and row-wise optimization. In general, for the design of NB-LDPC codes with arbitrary code length and code rate, it is difficult to accurately calculate the number of candidate configurations for non-zero elements in each row or chord edge without specific operations. Nevertheless, the application of truncation can prevent a sharp increase in the number of candidate configurations. As far as the cycles are concerned, the number of related cycles while using the proposed scheme is less than that of the iterative and row-wise optimization, due to the idea of progressive chord edge growth avoiding the repeated processing of cycles. Therefore, the proposed method has lower complexity, even if the number of chord edges is larger than that of rows in the case of high code rate.