国内外研究动态。早在1959年,J。Volder 等人就在在美国航空控制系统的设计[1]中提出了该算法,由于CORDIC 算法本身十分具有优越性,所以随后它一直被广大学者关注。等到1971年 J。S。Walther提出了统一的CORDIC算法形式,他提出了通一的圆周、线性和双曲线模型,从而得到了统一的CORDIC迭代方程[2],进一步简化了算法的模型,从而使得同一套硬件设备可以实现同时多种运算功能,这大大提高了该算法的实用性。在1980年,Haviland和Tuszynski用一个迭代程序来计算圆周函数、线性函数和双曲线函数,并在此的基础上,设计并研发了一个CORDIC 处理器[3]。迭代的次数决定了运算的时间和精度,为了进一步提高算法的速度,学者们在提高CORDIC性能上做了许多深入的研究。到了1993年,Duprat 和 Muller进一步讨论了用冗余数字系统来描述符号位的可行性,采用了分支跳跃的方式来提高算法的速度;在2004年又有人提出了一种改良的CORDIC算法,其采用并行结构[4],相比之前的算法,这极地大提高了CORDIC算法的迭代速度,并且在一定程度上,达到了很高的精度。76987
我们国家在CORDIC算法方面,有众多学者在相关领域进行研究,并且形成了一定的规模,(1991年)中国科学院声学所的胡国荣,1997年成都电科大的《基于CORDIC的无开方GIVENS旋转处理方法》[5],1999年北理工李滔、石晶林和韩秋月的《基于CORDIC算法的雷达信号坐标变换处理器》[6][7],还有2001年南大谈宜育[8]的《一种基于CORDIC算法的坐标变换电路》、成都电科大的甘露[9]、2006年秦开掣和阎啸[10]及西北工大的丘伟和刘诗斌[11]也先后在CORDIC算法的应用方面,提出了许多算法和结构的实现,都在一定程度上提高了原始CORDIC算法的速度和效率,还拓宽了CORDIC算法的应用领域。论文网
不难发现,高精度、高进制、高吞吐率是CORDIC算法的未来发展趋势。
目前,大家都比较关注如何去改善CORDIC算法的性能,曾有人提出可预测方向的正余弦产生器,其基本原理是:设总的迭代次数为 N ,在圆周模型下,前 N /3 次迭代每次的基本角度值为 ,在 迭代后2N/3 次中, 近似为,所以,后 2N/3 次迭代的旋转极性是可以预测的,而可以换算成以 为基础的多项式,而 的第一项为 ,与 之间存在着一个相对差值,并且可计算出来。所以,只要列出一个 与 之间的差值表,前 N/3 次迭代就能够预测旋转极性。[12] 另外,还有一些国内学者通过推导经典CORDIC算法公式的矩阵表现形式,从而提出了表格驱动的CORDIC算法[13]。也即将随意给定的 N次迭代过程变换换成简单的矩阵来计算,然后将N个这样的2×2矩阵相乘。这种方式不仅适合软件实现,而且也适合硬件实现,基本思想是:由符号预测原理可以知道,系数的符号可提前预测出来,再根据预测出来的符号,判断矩阵系数的大小,将系数矩阵建成一个表,然后,系数矩阵的值可以通过矩阵乘法单元计算出[14]。这样,整个系数矩阵的值都被预先计算好存储在表格里面,然后在计算的时候,通过查表快速又直接获得系数矩阵的值,这大大提高了计算的速度。
选题意义。在工程设计和科学计算中,求三角函数的值是一种非常重要的运算,当下许多领域都涉及到了函数的运算,科学技术要发展的话,肯定需要学术领域的创新,我们在三角函数、解二次方程、数字图像处理、统计误差、数学低维建模、概率学、等学科领域中会经常使用到求三角函数。科学技术水平高速发展的同时,高速度和高精度的运算形式,在处理一些较为复杂的问题上显得尤为重要,因此计算的精度和速度就很有必要。如:正余弦函数产生器就有很广泛的应用,尽管只是简单的函数输出,但在数字振荡器和移动通信中却是不可或缺的,而且也要通过函数实现来控制机器人的运动轨迹。我们都知道,在普通的硬件算法设计里面,就算是一些基本的函数运算,像:三角函数,指数对数函数等各种函数,也都十分耗费硬件资源,这大大降低了实现的价值。而且,在此基础上,三角函数等函数的计算过程也是比较复杂的,故而其运算速度也较其他运算低得多,尤其是很难在硬件上实现。所以,是否有一种算法,能够做到相对方便且耗费资源相较少的硬件实现,从而提高这些复杂函数的运算速度,那么,工程师们致力于寻找的算法就是CODIC,从该算法问世至今,它是业界所公认的较为优秀的算法。