目录
简介
CORDIC,Coordinate Rotation Digital Computer, 坐标旋转数字计算方法
应用:计算三角函数,cos,sin,tan,或者计算旋转角
原理
问题:在下图中,C点的坐标是(x0,y0),AC与AD的夹角是48.71°,求D点的坐标。
解答:
这里的难点在于如何得到cos以及tan。
假设我们重新选择一点C',使AC'与AC之间的夹角是45°。由于tan45°=1,我们比较方便的得到C'的坐标为
由于C'与D还不足够接近,我们再次选择一个点,C'',使AC''与AC'之间的夹角是22.5°,由于tan22.5°=1/2,我们比较方便的从C'得到C''的坐标为
C''好像离D点更远了,我们继续执行以上操作,使新的点C'''与前一个点C''的夹角为11.25°。由于C''远离了D点,因此C''要顺时针旋转11.25°来得到C'''。
不断的迭代以上过程,旋转的角度分别为5.625°,2.8125°等等,我们就可以无限的逼近D点
这里,还有个cos联乘的问题没有解决,好消息是:
cos45*cos22.5*cos11.25*cos5.625*cos.... = 0.0672。
那么迭代多少次次才能够满足精度要求呢?看下图,大概12次左右就可以满足
硬件实现
每一拍需要两个移位器,三个加法器