CORDIC算法详解(一) |
您所在的位置:网站首页 › r025老板烤箱旋转模式方法 › CORDIC算法详解(一) |
CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation Mode )
文章目录
CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation Mode )1 CORDIC 算法之圆周系统及其数学应用1.1 圆周系统之旋转模式( Rotation Mode )1.2 思考1.3 CORDIC算法应用1.3.1 目标旋转角度的正、 余弦函数值1.3.1 极坐标系向直角坐标系的转换
1.4 举例
CORDIC 算法之圆周系统及其数学应用结束
网上有很多类似的介绍,但是本文会结合实例进行介绍,尽量以最简单的语言进行解析。
CORDIC ( Coordinate Rotation Digital Computer ) 是坐标旋转数字计算机算法的简称,
由 Vloder• 于 1959 年在设计美国航空导航控制系统的过程中首先提出[1], 主要用于解决导航系统中三角函数、 反三角函数和开方等运算的实时计算问题。 1971 年, Walther 将圆周系统、 线性系统和双曲系统统一到一个 CORDIC 迭代方程里 , 从而提出了一种统一的CORDIC 算法形式[2]。
CORDIC 算法应用广泛, 如离散傅里叶变换 、 离散余弦变换、 离散 Hartley 变换、Chirp-Z 变换、 各种滤波以及矩阵的奇异值分解中都可应用 CORDIC 算法。 从广义上讲,CORDIC 算法提供了一种数学计算的逼近方法。 由于它最终可分解为一系列的加减和移位操作, 故非常适合硬件实现。 例如, 在工程领域可采用 CORDIC 算法实现直接数字频率合成器。 本节在阐述 CORDIC 算法三种旋转模式的基础上, 介绍了利用 CORDIC 算法计算三角函数、 反三角函数和复数求模等相关理论。 以此为依据, 阐述了基于 FPGA 的 CORDIC 算法的设计与实现及其工程应用。
整个系列分别从圆周系统、 线性系统和双曲系统及硬件实现进行分析,如下: CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation Mode ) CORDIC算法详解(二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode) CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用 CORDIC算法详解(四)- CORDIC 算法之双曲系统及其数学应用 CORDIC算法详解(五)- 统一的 CORDIC 算法形式 CORDIC算法详解(六)- CORDIC 算法的硬件实现 其中第五篇及第六篇后会放出相关参考资料及源码。 1 CORDIC 算法之圆周系统及其数学应用在圆周系统下, CORDIC 算法解决了三角函数的计算问题,其中圆周系统又分旋转模式和向量模式。 1.1 圆周系统之旋转模式( Rotation Mode )如图 3.69 所示, 在单位圆上, 向量 OP与X轴正半轴夹角为 α , 故P点坐标可表示为式(3.91): ![]()
这里定义 θ为目标旋转角度。 根据三角函数公式可将式 (3.92) 展开为: 对于伪旋转, 可将 θ分解为一系列的微小角度的和, 即:
(1)根据式 (3.99 ) 可确定一系列θi的值, 如表 3.17 所示, 还可确定目标旋转角度θ的最大值 θmax 和 最 小 值 θmin , 如式( 3.104 ) 所示。
经过 n(n–>∞)次微旋转, 得到的最终结果可表示为: 式中, 当 n 趋于无穷大时, An逼近 1.646760258。 根据式 (3.109 ) 可知, 令 x0=1/An且y0 = 0 可得目标旋转角度的正、 余弦函数值, 如图 3.73 所示。 此时, 初始化 z0 即为目标旋转角度 。 需要注意的是当目标旋转角度|θ|>π/2 时应先预处理 。 同样地, 由式 ( 3.109 ) 出发, 令 x0=r且y0 = 0,z0 =θ,则可以实现极坐标系向直角坐标系的转换, 如图 3.75 所示。 显然, 这里x0代表了极径, z0 代表了极角。 利用CORDIC算法,计算cosθ和sinθ,其中θ=π/4(迭代次数16) 解析: 最后得到的结果: x16=0.707095876358217y16=0.707117836980767证明算法思路正确。 CORDIC 算法之圆周系统及其数学应用结束 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |