cordic 算法

cordic 算法cordic 算法知道正弦和余弦值 求反正切 即角度 采用用不断的旋转求出对应的正弦余弦值 是一种近似求解发 旋转的角度很讲求 每次旋转的角度必须使得正切值近似等于 1 2 N 旋转的目的是让 Y 轴趋近与 0 把每次旋转的角度累加 即得到旋转的角度和即为正切值 比如 Y 轴旋转 45 度 则值减小 1 2 nbsp nbsp nbsp 再旋转 26 56505 再减少 1 4 nbsp nbsp 再旋转角度 14 03624

cordic 算法知道正弦和余弦值,求反正切,即角度。

采用用不断的旋转求出对应的正弦余弦值,是一种近似求解发。

旋转的角度很讲求,每次旋转的角度必须使得 正切值近似等于 1/(2^N)。旋转的目的是让Y轴趋近与0。把每次旋转的角度累加,即得到旋转的角度和即为正切值。

比如Y轴旋转45度,则值减小1/2;

   再旋转26.56505°,再减少1/4;

   再旋转角度14.03624º,再减少1/8; 依次减少1/16, 1/32……,最后Y轴的值无限小,趋近于0 。

比如X=1, Y=1,的角度,角度是45°。经过一次旋转,要使得Y=0,这个角度必须是45°。

 

cordic 算法

 

 

 

 

 

如上图cordic 算法

如图中,直角坐标系中点(X0,Y0)逆时钟旋转角度θ,变换成坐标(X1,Y1),那么用X0,Y0,以及θ的三角函数,如果表示X1,Y1呢?

cordic 算法

请想象,如果坐标也旋转角度θ,那么X1,Y1的坐标依然是(X0,Y0)。接着往下看:

cordic 算法

看完以上这副图,就该明白这个等式了:

再把这个式子化成正切函数。

 

cordic 算法

 

Cordic 算法的思想是通过迭代的方法,不断的旋转特定的角度(这个特定的角度就是使得 Y为上次的1/2),使得累计旋转的角度的和无限接近某一设定的角度,

每次旋转的角度的θ = arctan( 1/(2^n) );

cordic 算法

具体迭代如下表:Z0 =30°,Y0=0,X0 = 0.6073

输入30°,经过9次迭代后, Z0 = 0,Y0=0.5006, X0 = 0.8657

cordic 算法

y ‘1= 0.607 ⋅ (+1 ) ⋅ 1 + 0 = 0.607

 通过Cordic算法后,得到y9=0.5006 (=sin(30°))

                                 x9=0.8657 (=cos(30°))

所以也可以用cordic算法求出正切值的。

 

或者求反正切值:

cordic 算法

计算公式:

cordic 算法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210327.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:49
下一篇 2026年3月19日 上午7:49


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号