Fast- and Low-Complexity atan2(a,b) Approximation [Tips and Tricks]
Vicente E. Torres, Javier Valls, Richard G. Lyons · IEEE Signal Processing Magazine · 2017
We propose a full-quadrant algorithm for the computation of the arc tangent of a complex number c = b +ja, particularly suitable for implementations in hardware, e.g., FPGA, ASIC, etc., where there is no penalty incurred when accessing a LUT. The second stage of the method we propose could be applied to other low-complexity algorithms for the approximation of the atan2 function, but for a given accuracy there is a tradeoff between the complexity of the approximation used for the first stage and the required storage resources used in the second stage. As we have shown, algorithms with a smaller first derivative of their error curve are best suited for improving the accuracy by the addition of a second-stage LUT. Because our proposed method can be easily improved by increasing the size of a memory when higher accuracy is needed, it is an attractive arctan method in high-speed applications where moderate accuracy is required (e.g., in systems where the precision of the measured a and b variables is, say, 14 bits or fewer).