首页 理论教育 CORDIC理论算法与优化探讨

CORDIC理论算法与优化探讨

时间:2023-06-15 理论教育 版权反馈
【摘要】:Ki的乘积可以在整个系统的任何部分处理,或者可以直接作为系统处理的增益。CORDIC算法有旋转模式和向量化模式。CORDIC算法旋转模式的差分方程为式中因此,旋转模式的最终结果为在向量化模式中,CORDIC将输入的任意向量通过旋转一系列的预定角度,最终使向量与x轴对齐。上面描述的CORDIC算法可以用来直接或者间接的计算三角函数值、反三角函数值、向量的幅值以及笛卡儿坐标和极坐标的变换等,下面分别介绍。

CORDIC理论算法与优化探讨

CORDIC的相关算法包括旋转(rotation)模式和向量化(vectoring)模式。假设在笛卡儿坐标下有向量(xy),按图4-1所示的方向旋转角度φ得到向量(x1y1),则二者的关系为

978-7-111-42984-5-Chapter04-1.jpg

式(4-1)可进一步写为

978-7-111-42984-5-Chapter04-2.jpg

式(4-2)中,设tanφ=±2-i,则tanφxy的乘积相当于对当前坐标进行移位。由此可知,假设要旋转任意角度θ,则整个过程如图4-2所示,先经过旋转多个预设的角度αi,最后才到达θ角位置,其表达式为

978-7-111-42984-5-Chapter04-3.jpg

式中,di表示旋转方向;αi表示旋转大小值;n表示旋转次数。

978-7-111-42984-5-Chapter04-4.jpg

图4-1 笛卡儿坐标下向量的旋转

978-7-111-42984-5-Chapter04-5.jpg

图4-2 使用连续的预定角度对向量旋转

由于每次旋转的角度为预定义的值,所以cosαi也为常数,因此旋转任意角度θ的每次迭代处理可写成

978-7-111-42984-5-Chapter04-6.jpg

式中,978-7-111-42984-5-Chapter04-7.jpg

如果将比例常数Ki从迭代方程中去掉,则式(4-4)的方程就仅有移位加(shift-add)运算。Ki的乘积可以在整个系统的任何部分处理(不一定在CORDIC中完成),或者可以直接作为系统处理的增益。在式(4-4)中,当i趋近无穷的时候,Ki取得极限0.6037。所以,整个系统的增益An近似为1.647。当然,An实际值为

978-7-111-42984-5-Chapter04-8.jpg

下面引入一个辅助变量zi,为每次旋转预定角度的累加值,并且用来决定下次旋转的方向。则有

zi+1=zi-di·arctan(2-i) (4-6)

式中,di表示旋转方向。

CORDIC算法有旋转模式和向量化模式。在旋转模式中对向量指定旋转的角度,角度累加器初始值为需要旋转的角度值。在整个迭代过程中,旋转的方向用于减小角度累加器中剩余的角度值。所以,旋转方向由每一步迭代后的剩余角度的符号确定。CORDIC算法旋转模式的差分方程为

978-7-111-42984-5-Chapter04-9.jpg(www.xing528.com)

式中

978-7-111-42984-5-Chapter04-10.jpg

因此,旋转模式的最终结果为

978-7-111-42984-5-Chapter04-11.jpg

在向量化模式中,CORDIC将输入的任意向量通过旋转一系列的预定角度,最终使向量与x轴对齐。向量化模式的结果为所有旋转的角度的累加值以及输入向量定标后的幅度值(结果在x分量中),分量y的符号用于决定下一次的旋转方向。角度累加器初始值为0,整个迭代结束后,其值为最终旋转的角度值。向量化模式的差分方程为

978-7-111-42984-5-Chapter04-12.jpg

式中

978-7-111-42984-5-Chapter04-13.jpg

因此,向量化模式的最终结果为

978-7-111-42984-5-Chapter04-14.jpg

在上面描述的CORDIC算法中,不管旋转模式还是向量化模式,第一次迭代时用的正切值为978-7-111-42984-5-Chapter04-15.jpg,所以整个旋转的角度都限定为978-7-111-42984-5-Chapter04-16.jpg。如果令初始旋转的角度为±π/2,则CORDIC算法可以实现大于π/2的旋转角度,则有

978-7-111-42984-5-Chapter04-17.jpg

式中

978-7-111-42984-5-Chapter04-18.jpg

此外,也可用下式的初始旋转公式替代式(4-11),即

978-7-111-42984-5-Chapter04-19.jpg

式中

978-7-111-42984-5-Chapter04-20.jpg

式(4-12)的初始旋转角为π或者0,同样可以实现大于π/2的旋转角度。

上面描述的CORDIC算法可以用来直接或者间接的计算三角函数值、反三角函数值、向量的幅值以及笛卡儿坐标和极坐标的变换等,下面分别介绍。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈