一种改进CORDIC算法的研究与实现

2011-01-10 03:37段素蓉
关键词:变流器风力流水

段素蓉

(西南交通大学信息科学与技术学院,四川成都 610031)

0 引 言

三角函数的坐标旋转数字计算机(Coordinate Rotation Digital Computer,CORDIC)算法最早是由Volder于1959年提出,主要应用于实时导航的数字处理[1],通过扩展,该方法现已应用于众多领域,如风力发电、航空航天、雷达信号处理、图像处理、数字滤波以及通信设备等[2-4].

基本CORDIC算法的思路为:设定一个旋转角度,经过多步旋转迭代,最终计算出三角函数值.该方法由于迭代公式的选取限制了最大旋转角度,所以旋转角度不能覆盖整个周期(-π~+π),导致部分角度计算出的三角函数值偏差较大,在应用中存在较大误差[5-8].本文利用三角函数的对称性,对输入角度进行了预处理,把角度限制在基本CORDIC算法能正确计算的范围内,再对迭代结果进行后处理,实现了完整周期(-π~+π)的三角函数计算.算法采用18级流水线结构实现,具有转换速度快,精度高,占用资源少等特点.

1 CORDIC算法原理及改进

1.1 CORDIC算法原理

假设在直角坐标系下有向量(Xi,Yi),按图1所示的方向旋转角度θ得到向量(Xj,Yj),则二者关系为,

图1 坐标旋转图

使用迭代的方法,坐标需要旋转的角度可通过多步旋转叠加完成(见图2).根据多步旋转叠加完成

图2 多次旋转叠加示意图

平面坐标旋转,则式(1)可进一步转化为,

假设,tanθn= Sn/22,则,θn= Snarctan(1/2n).这里,Sn={-1;+1},当Sn=-1时,表示向量逆时针旋转,否则为顺时针旋转.式(2)中的cosθn= cos(arctan(1/2n)).随着旋转次数的增加,该式收敛为一个常数,k≈0.607253.如果令 Y的初始分量为0,X的初始分量为单位1,则有,

当 n→∞时,CORDIC公式的输出变为,

1.2 改进CORDIC算法设计

基本CORDIC算法旋转角度总和为,即最大角度覆盖范围约为-99.88°≤θ≤99.88°.利用三角函数的对称性,可把输入角度限制在{-90°~90°},原理如下:

(1)若,θ≥0°,则θ′=θ-90°,否则,θ′=θ+ 90°,所以有,-90°≤θ′≤90°.

(2)根据三角函数变换公式,

2 改进CORDIC算法实现及仿真测试

2.1 改进CORDIC算法的实现

改进CORDIC算法采用18级流水结构,各级间组合逻辑处理复杂度适中,处理速度快,能够满足风力发电变流器的控制系统坐标变换处理实时性要求.设计分为3个模块.

(1)输入角度预处理模块.若输入角度符号位为0,则减去90°,否则加上90°.设计中采用17 bit有符号数表示输入角度.该模块使用1级流水处理.

(2)基本CORDIC迭代模块.迭代过程采用15级流水结构(见图3),内部使用17 bit有符号变量,保证了运算精度高且运算过程不发生溢出,迭代中的乘法(1/2n)采用移位实现.该模块使用15级流水处理.

图3 CORDIC算法流水线结构框图

(3)迭代结果后处理模块.将输入角度符号位延时16级,与迭代结果对齐,根据延时后的符号位及式(6)对结果进行处理,同时对结果进行饱和处理,最后输出16 bit有符号的三角函数值.该模块使用2级流水处理.

图4 改进前的CORDIC迭代三角函数值

2.2 改进CORDIC算法仿真验证

(1)改进前后三角函数值仿真对比(输入角度为-π~+π).

图5 改进后的CORDIC迭代三角函数值

CORDIC算法改进前后三角函数值仿真对比如图4、图5所示.从图4、图5可以看出,改进后的CORDIC算法可以覆盖完整周期(-π~+π)的三角函数计算,从而满足了信号处理的需求.

(2)改进CORDIC算法精度对比.

改进前后CORDIC算法精度对比如表1所示.从表1的对比结果可以看出,改进CORDIC算法采用18级流水结构,内部使用17 bit有符号数进行计算,得到的结果精度高,误差小于0.01%,完全可以满足风力发电变流器的控制系统坐标变换处理的精度要求.

表1 改进型CORDIC算法仿真对照表

3 结 语

改进CORDIC算法克服了基本CORDIC算法不能覆盖完整周期的三角函数计算的缺点,由于改进CORDIC算法采用18级流水线结构,且内部采用17 bit有符号定点数计算,保证了转换速度快,运算结果精度高,易于用FPG A实现.仿真测试表明,改进CORDIC算法完全能满足风力发电变流器系统控制中坐标变换处理的精度要求.

[1]Volder J E.The CORDIC Trigonometric Computing Technique [J].IRE Trans Electronic Computers,1959,8(3):330-334.

[2]Walther J S.A Unified Algorithm for Elementary Functions[C]// AFIPS71’Spring Joint Computer Conference.New Y ork:ACM Press,1971:379-385.

[3]徐国库,陈禾.基于CORDIC算法的坐标变换电路的FPG A实现[J].微电子技术,2010,39(10):108-110.

[4]陈嫦娥,毛承雄.多相交流系统的PARK变换[J].高电压技术,2008,34(11):2475-2482.

[5]王敏,薛忠杰.基于改进Cordic算法的NCO设计[J].电视技术,2011,35(5):30-33.

[6]汤文亮.基于CORDIC算法的高速高精度DDS研究与实现[J].制造业自动化,2011,33(3):104-106.

[7]文婧媛,徐欣峰.基于CORDIC算法的高速可配置FFT的FPG A实现[J].微电子学与计算机,2010,27(3):24-28.

[8]何晓华,谢建精,郭洪志,等.基于扩展收敛域CORDIC算法的FM信号数字化解调实现[J].电子技术应用,2010, 36(1)53-56.

猜你喜欢
变流器风力流水
海上漂浮式风力发电机关键技术研究
流水
流水有心
大型风力发电设备润滑概要
中压一体化储能变流器的设计
基于背靠背变流器的并网控制研究
前身寄予流水,几世修到莲花?
改进PR控制在直驱风机变流器中的应用
电流型PWM变流器在串级调速中的应用
落红只逐东流水