[发明专利]一种基于CORDIC算法实现反正切计算的方法在审
申请号: | 202210521919.X | 申请日: | 2022-05-13 |
公开(公告)号: | CN114816333A | 公开(公告)日: | 2022-07-29 |
发明(设计)人: | 刘贵鹏;邓文;杨建红;李凯辰;张智帅;严君杰 | 申请(专利权)人: | 兰州大学 |
主分类号: | G06F7/548 | 分类号: | G06F7/548;G06F17/16 |
代理公司: | 兰州振华专利代理有限责任公司 62102 | 代理人: | 张晋 |
地址: | 730000 甘肃*** | 国省代码: | 甘肃;62 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cordic 算法 实现 正切 计算 方法 | ||
1.一种基于CORDIC算法实现反正切计算的方法,其特征在于,所述方法首先将输入的(x,y)依次经过象限预处理模块和绝对值预处理模块进行处理,然后再经过CORDIC算法模块进行迭代计算以实现反正切计算;
所述象限预处理模块首先对输入的(x,y)进行判断,看是否需要对其进行转换,确保完成该步骤后的输入值位于第一象限内;
所述绝对值预处理模块首先使上述经过象限预处理模块的(x,y)分别对应出二进制数,根据其二进制位数判断x和y的绝对值是否同时满足小于等于其最大绝对值,且大于其最大绝对值的一半;若不满足上述条件,则同时将x和y放大一倍,继续判断,只至满足上述条件。
2.根据权利要求1所述的基于CORDIC算法实现反正切计算的方法,其特征在于,所述输入的(x,y)中的x和y均用有符号数来表示。
3.根据权利要求2所述的基于CORDIC算法实现反正切计算的方法,其特征在于,所述绝对值预处理模块的具体处理过程为:
1)设所述x和y对应的二进制位数分别为m和n,则x和y的绝对值最大分别为2(m-1)和2(n-1);
2)判断x的绝对值是否大于2(m-2)且小于等于2(m-1),同时y的绝对值是否大于2(n-2),且小于等于2(n-1);
3)若满足步骤2),则x,y保持不变;若不满足步骤2),则转入下述步骤4);
4)将x和y同时放大一倍,并得到放大后x和y的绝对值;
5)重复步骤2)、3)、4),直至满足步骤2)。
4.根据权利要求3所述的基于CORDIC算法实现反正切计算的方法,其特征在于,所述x和y对应的二进制位数均为16位,需判断x和y的绝对值是否均大于16384且小于等于32768;若满足上述条件,则x和y保持不变;若不满足则将x和y同时放大一倍,并继续将其绝对值与16384和32768比较,如果依旧不满足大于16384且小于等于32768,则继续放大,直至x和y的绝对值均大于16384且小于等于32768。
5.根据权利要求4所述的基于CORDIC算法实现反正切计算的方法,其特征在于,所述象限预处理模块的具体处理过程为:若(x,y)在第一象限,则数据保持不变;若(x,y)在第二象限,将(x,y)预处理为(y,-x),即顺时针旋转90°;若(x,y)在第三象限,将(x,y)预处理为(-x,-y),即顺时针旋转180°;若(x,y)在第四象限,将(x,y)预处理为(-y,x),即顺时针旋转270°。
6.根据权利要求5所述的基于CORDIC算法实现反正切计算的方法,其特征在于,所述CORDIC算法模块具体进行15次迭代计算以实现基于FPGA的反正切计算。
7.根据权利要求6所述的基于CORDIC算法实现反正切计算的方法,其特征在于,所述CORDIC算法模块的具体处理过程为:
将向量(x,y)进行旋转,每次旋转固定角度θi,旋转方向为di=sign(y(i)),旋转的目标是x轴,进行N次迭代,则有反正切角:
旋转角度θi满足:
2-i=tanθi (2)
简化后的迭代移位相加算法的迭代方程为:
通过N次迭代后的z就是反正切计算的结算,即:
z=arctan(y/x) (4)。
8.根据权利要求7所述的基于CORDIC算法实现反正切计算的方法,其特征在于,所述方法的计算范围为0°~360°。
9.根据权利要求8所述的基于CORDIC算法实现反正切计算的方法,其特征在于,所述方法的计算误差≤0.01°。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于兰州大学,未经兰州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210521919.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:短路保护电路及显示装置
- 下一篇:参比电极的处理方法和三电极锂离子电池