[发明专利]CORDIC算法的优化方法在审
申请号: | 201710041104.0 | 申请日: | 2017-01-17 |
公开(公告)号: | CN106814990A | 公开(公告)日: | 2017-06-09 |
发明(设计)人: | 汪辉;史凯杰;田犁;章琦;汪宁 | 申请(专利权)人: | 中国科学院上海高等研究院 |
主分类号: | G06F7/544 | 分类号: | G06F7/544 |
代理公司: | 上海光华专利事务所31219 | 代理人: | 余明伟 |
地址: | 201210 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | cordic 算法 优化 方法 | ||
技术领域
本发明属于数字处理技术领域,特别是涉及一种CORDIC算法的优化方法。
背景技术
坐标旋转数字式计算机(Coordinate Rotation Digital Computer)算法,是J.D.Volder1于1959年首次提出。在上个世纪五十年代,在大型实际计算机中的实行移位相加受到了当时技术的限制,所以使用CORDIC变得非常必要。到了七十年代,Hewlett Packard和其他公司出产了手持式计算器,许多计算器使用内部一个CORDIC单元来计算所有的三角函数。随着八十年代高速乘法器与带有大存储量的通用处理器的出现,CORDIC算法变得无关紧要了。然而在二十一世纪的今天,对于FPGA来说,CORDIC一定是DSP应用中(诸如多输入多输出(MIMO),波束形成以其他自适应系统)计算三角函数的备选技术。
CORDIC算法的基本思想是通过一系列固定的、与运算基数相关的角度不断偏摆以逼近所需的旋转角度。为了扩展可解决的基本函数个数,1971年J.Walther提出了统一CORDIC算法(The Unified Cordic Algorithms),把圆周旋转、双曲旋转和直线旋转统一到同一个迭代方程里,因此可以通过选择不同的m值(如图1 CORDIC算法的操作模式m所示)来实现多种不同的计算功能,设计通用的CORDIC芯片。
CORDIC算法可计算的函数包括乘、除、平方根、正弦、余弦、反正切、向量旋转(即复数乘法)、坐标转换、指数运算以及FFT、DHT、DFT、DCT、DST等技术函数。通常完成这些变换通过两类方法:第一类是专用硬件电路或专用数字信号处理器,通常采用比较或查表的方法,这类方法一般来说运算结构精度低、芯片面积大,更为关键的是设计的灵活性差;第二类则采用软件编程的方法,由于这些变换均是非线性变换,完成一次运算需要运行较多的程序,运算速度较低。上述两种方法在精度、速度、简单性和效率方面都不能兼顾,难以满足现代高速实时信号处理的要求。相比之下,CORDIC算法很好地兼顾了这几方面,非常适合FPGA的实现。对于传统的硬件算法设计中既耗时又占用面积大的乘、除等基本数学函数运算,CORDIC算法将其分解成为一些简单的且在硬件中容易实现的基本算法,如加法、移位等,使得这些算法在硬件上可以很好的实现。此外,该算法是一种规则化的算法,它满足了硬件对算法的模块化、规则化的要求,因此CORDIC算法可以充分发挥硬件的优势,利用硬件的资源,从而实现硬件与算法相结合的一种优化方法。
目前CORDIC算法存在的主要问题:(1)CORDIC算法主要可通过迭代结构和流水线结构来实现。迭代结构使用一个算法单元,将输出反馈到输入反复迭代计算。这种结构节省计算资源,可以实现可调算法精度,但是运行速度慢;流水线结构是将迭代结构展开采用n个算法单元,这将大大提高系统速度,每增加一次迭代精度提高一位,理论上可以通过增加迭代次数无限制提高精度,但是精度受流水线级数的限制,要提高精度必须增加流水线级数,而随着流水线级数的增加,系统面积成指数级增长。(2)CORDIC算法在每一级迭代中都需要在表ROM中取出事先预存好的arctan(2-i)值。但是随着运算字长的扩大,ROM表的容量成指数增长,系统所占资源急剧加大,每次访问ROM表也会降低系统速度。(3)传统CORDIC算法的旋转角度覆盖的角度只有-99.88°~99.88°,为了确保算法收敛,其所有旋转角度之和必须大于实际需要旋转的角度,因此无法覆盖整个周期0°≤θ≤360°。
由于CORDIC算法本身的局限性,曾提出过多种改进和优化措施,主要技术总结如下:(1)增加多次的迭代,使得算法旋转覆盖的角度范围达到一个完整的周期[0,2π]。(2)跳过不必要的旋转。跳过输入相位值中为0的位对应的旋转,减少了迭代次数,并且只有正向旋转。对于特殊角度,例如π/4,通过很少次数的旋转就己经达到该角度,即可不再进行后面的旋转。(3)用几位最高有效数字来决定旋转的方向。然而以上种技术主要针对CORDIC算法角度覆盖范围和运算速度方面的局限性对其进行改进,有效地优化了传统的CORDIC算法。但是,每种改进方法也同时引入了一些新的问题,例如方法1中校正因子为变量,很难确定其值;方法2不能显著的减少迭代次数方法;方法3能有效的减少迭代次数,但是会引起比例因子的变化。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院上海高等研究院,未经中国科学院上海高等研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710041104.0/2.html,转载请声明来源钻瓜专利网。