当前位置:首页 > 工业控制 > 电子设计自动化

摘 要: 介绍了CORDIC算法的基本原理,分析了其具体计算方法。针对利用CORDIC流水线实现FFT蝶形运算耗费资源多的问题,依据CORDIC计算迭代系数的方法改进了CORDIC流水线的结构形式,使其适应FFT算法。选用 ALTERA 公司CycloneII系列的EP2C35F672C6 来实现整个FFT 处理器,并对设计进行了时序仿真和硬件仿真。通过比较,计算结果与设计基本一致。
关键词: CORDIC;FFT;Cyclone II;流水线

 坐标旋转计算机CORDIC(The Coordinate Rotational Digital Computer)算法是一种用于计算一些常用的基本运算函数和算术操作的循环迭代算法。其基本思想是用一系列与运算基数相关的角度的不断偏摆来逼近所需旋转的角度,从广义上讲它是一个数值型计算逼近的方法。由于这些固定的角度与计算基数有关,运算只有移位和加/减。若用传统的乘、除等计算方法,需要占用大量的硬件资源,甚至算法是难以实现的,这样就不能满足设计者的要求。CORDIC算法正是由此产生的,它仅在硬件电路上用到了移位和加/减,大大节约了硬件资源,使得这些算法在硬件上可以得到较好地实现,从而满足设计者的要求。根据它的迭代原理,CORDIC单元可以用流水线结构表示,使向量旋转并行处理,大大加快了蝶形运算的速度[1]。但是CORDIC运算单元的多级迭代也占用了大量的芯片资源,尤其是在使用多个蝶形进行FFT处理时,使用的资源是非常巨大的,为了尽量降低资源占用,对CORDIC流水线进行了结构上的改进。
1 CORDIC算法原理
1959年,VOLDER开发了一类计算三角函数、双曲函数的算法,其中包括指数和对数运算。此算法的基本思想是用一系列固定的与运算基数相关的角度不断偏摆从而逼近所需的角度。从广义上讲它是提供一个数值计算的逼近方法。由于这些固定的角度只与计算基数有关,运算只有移位和加减。CORDIC算法虽然可以实现很多基本函数,但一开始并没有引起人们很大的注意,只是CAGGETT用它来实现二进制和十进制的转换。整个60年代没什么进展,直到1971年WALTHER提出统一的CORDIC算法,加上VLSI技术的不断发展,CORDIC算法才越来越受到人们的重视,并展示出广泛的应用前景[2]。CORDIC算法已被广泛用作现代信号处理各种算法实现中的运算单元,诸如离散傅里叶变换、矩阵的分解、矩阵特征值的求解、场分解、线性预测参数的求解等。
如图1所示,一对直角坐标轴顺时针旋转角度A(点M相对于坐标轴逆时针旋转),点M的坐标从(x0,y0)变为(x,y)[3-6]。



为了满足FFT在速度上的要求,CORDIC可以设计成流水线的形式。将需要旋转的角度加到Z0数据通道,通过Z1与固定角度相加减产生所取的值。需要旋转的(x0,y0)向量在各级迭代中旋转方向。Zn通过多次迭代,趋近于零,向量旋转到相应角度。如果在FFT的蝶形单元中用CORDIC代替复乘单元,只需要将数据的实部和虚部分别加到x0和y0通道,将复乘系数作为角度从Z0处输入,达到了乘以的目的。实际应用中将FFT使用的角度值存储在ROM中,由地址发生器控制,在计算时将相应的旋转角度读入CORDIC中即可。使用CORDIC算法可以方便快捷地计算FFT蝶形,但是由于迭代次数多,导致耗费资源也比较多。
将CORDIC流水线形式进行改进,如图3所示,需要旋转的向量的实部和虚部分别加到X0和Y0数据通道上,系数输入到D触发器中与向量保持同步,用来控制向量在各级迭代中旋转的方向。向量经多次迭代旋转到相应角度[7-8]。

3 CORDIC的旋转系数
按照改进后CORDIC的结构,需要事先求出CORDIC的旋转系数。根据CORDIC 算法的迭代原理以及此结构的具体情况,使用 MATLAB 语言编写程序求出各级旋转系数,存在ROM中。时序仿真结果如图4所示。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭