标准CORDIC旋转的收敛区域为≈±99.7°。为了克服这个限制,在做任何旋转之前,块使用这个算法将输入映射到[0,π/4]范围。
如果abs(x) > abs(y) input_mapped = [abs(x), abs(y)];Else input_mapped = [abs(y), abs(x)];结束
在每次迭代时,块将矢量旋转到实轴。当旋转为逆时针时
y是负的,什么时候顺时针
y是正的。
象限映射通过减少CORDIC管道阶段的数量来节省硬件资源并减少延迟。CORDIC增益因子,Kn,因此不包括n = 0,或因为(π/ 4)学期
在CORDIC迭代完成后,块将角度调整回原来的位置。首先,它调整角度到π/4的正确边。
如果abs(x) > abs(y) angle_unmapped = CORDIC_out;else angle_unmapped = (pi/2) - CORDIC_out;结束
然后,块将角度翻转到原始象限。
If (x < 0) If (y < 0) output_angle = - PI + angle_unmapped;Else output_angle = PI - angle_unmapped;Else if (y<0) output_angle = -angle_unmapped;