# Efficient CORDIC Iteration Design of LiDAR Sensors' Point-Cloud Map Reconstruction Technology +
## 3 Proposed Method
### COordinate Rotation DIgital Computer (CORDIC) Iterative Reduction Algorithm  
The traditional CORDIC algorithm is tedious and time consuming. However, if the look-up table method is used, the area will become larger. A larger area is less suitable for circuits that require a small size or high speed. In this paper, a new method of angle selection is proposed. We use the rotation input angle in the formula to rotate to the end, which must be close to zero to pre-select the desired iteration angle to reduce the number of iterations. From the last formula derived from the traditional algorithm, it can be known that X and Y represent the values of COS and SIN, respectively. The angle to be searched for is the input angle Z, and each rotation will use a fixed angle of \(\theta\). For example, the first input angle will increase or decrease the angle by 45 degrees. The second time will increase or decrease the angle by 26 degrees. To select the desired angle, we use the angle Z that we are looking for, and the result of the final sum needs to approach zero, as shown in Figure 5. Table 3 shows a list of traditional CORDIC algorithm rules. The traditional CORDIC algorithm has a number of rotations \(i\), and the degree of addition and subtraction angles is \(\theta\). X and Y are closer to the values of the angle sought after each operation. That is to say, the rotation angle selection of Z is the key to the number of iterations. Therefore, the number of iterations \(i\) can be changed by changing the addition and subtraction angle calculation of the angle Z at the beginning. It can be known from the traditional algorithm formula that the number of iterations can be changed by changing the angle selection mode of Z. This paper uses this feature to compare the input  
Figure 4: Three-dimensional point-cloud map. Figure 5: The rotation direction of the traditional COordinate Rotation DIgital Computer (CORDIC) algorithm. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**i** & \(\theta\) & **i** & \(\theta\) \\ \hline
0 & 45.00000000 & 8 & 0.223810500 \\
1 & 26.565051177 & 9 & 0.111905677 \\
2 &  
angle Z to the highest bit of the fixed input \(\theta\) angle. When the highest bit of the Z angle is greater than or equal to the highest bit, the Z angle will subtract the \(\theta\) angle. If this condition is not true, it will continue to compare the highest bit of the \(\theta\) angle of the next fixed input. It will first compare the maximum specific angle of the input and the highest bit of 4, and then compare the highest level of the input angle of the next order, and compare them sequentially (Table 3). When the angle is input and compared, the input angle and the fixed angle are added and subtracted. If the remaining residual value is less than the minimum angle of the fixed \(\theta\) angle after the calculation, the loop is jumped out. If the final residual value is 0.001, then the loop is jumped out of. If the condition is not met, the angle comparison will be restarted until the residual value is less than 0.001. Taking the actual input angle as an example, suppose that there is an input angle Z of 30 degrees, and under this condition, the result of Z must approach zero. According to the flow chart, first, the highest bit value of the input angle is 3, and the highest bit value of the fixed \(\theta\) angle is 4. Because the highest bit value 3 of the input angle is less than the highest bit value of the fixed comparison angle 4, the condition is not true. Therefore, the highest value of the input angle will be compared to the highest value of the next input fixed \(\theta\) angle value 2. After the angle comparison condition is true, the input angle of 30 degrees will be reduced by the fixed angle of 26.565051177 degrees, and the remainder is 3.343948823 degrees. At this time, the input angle value 3 will be re-compared with the fixed angles of 45 degrees, 26 degrees, and 14 degrees. Since these values are all tens of decimals, the condition will not be true.