推荐星级:
- 1
- 2
- 3
- 4
- 5
多模式CORDIC算法结构改进与实现
资料介绍
本文对计算反正余弦函数的CORDIC算法的迭代结构进行了改进,并在此基础上完成多模式CORDIC算法的实现.通过重新设定初始旋转向量避免了前两级迭代,通过修改向量旋转方向的判决条件对原算法的误差进行了校正,在增加了很少资源的情况下将正余弦运算和反正余弦运算统一到同样的迭代结构中并予以实现.实现结果表明改进后的算法反正余弦运算结果有更高的运算精度,在两种运算函数都需要的应用中能够有效减少的硬件资源占用.
部分文件列表
文件名 | 大小 |
多模式CORDIC算法结构改进与实现.pdf | 2M |
部分页面预览
(完整内容请下载后查看)2
Vol. 46 No. 2
Feb. 2018
第
期
电
子
学
报
2018
2
ACTA ELECTRONICA SINICA
年
月
CORDIC
多模式
算法结构改进与实现
1,2
2
2
2
, , ,
刘小宁 谢宜壮 陈 禾 李炳沂
( 1.
,
航天东方红卫星有限公司 北京
100094; 2.
,
北京理工大学嵌入式实时信息处理技术北京市重点实验室 北京
100081)
:
CORDIC
,
算法的迭代结构进行了改进 并在此基础上完成多模式
CORDIC
算
摘
要
本文对计算反正余弦函数的
. ,
法的实现 通过重新设定初始旋转向量避免了前两级迭代 通过修改向量旋转方向的判决条件对原算法的误差进行了校
, .
正 在增加了很少资源的情况下将正余弦运算和反正余弦运算统一到同样的迭代结构中并予以实现 实现结果表明改进
,
后的算法反正余弦运算结果有更高的运算精度 在两种运算函数都需要的应用中能够有效减少的硬件资源占用
.
:
;
;
;
关键词
中图分类号
URL: http: / /www. ejournal. org. cn
多模式 坐标旋转数字计算 双迭代法 三角函数
:
TN331
:
A
: 0372-2112 ( 2018) 02-0495-06
DOI: 10. 3969 /j. issn. 0372-2112. 2018. 02. 032
文献标识码
文章编号
电子学报
Improvement and Implementation of Multi-mode Architecture
for CORDIC Algorithm
1,2
2
2
2
LIU Xiao-ning ,XIE Yi-zhuang ,CHEN He ,LI Bing-yi
( 1. DFH Satellite co. ,Ltd. ,Beijing 100094,China;
2. Beijing Key Laboratory of Embedded Real-time Information Processing Technology,Beijing Institute of Technology,Beijing 100081,China)
Abstract: This paper improves the iterative structure of the CORDIC algorithm,and implements a multi-mode
CORDIC algorithm. We reset the initial rotation to avoid the first two stage iterations and fix the error of the original algo-
rithm by modify the judgment condition which determine the rotation direction of the vector. In the case of increasing few
hardware resources,the sine,cosine,arcsine and arccosine operations are unified to the same iterative structure and be real-
ized. The results show that the improved algorithm has higher accuracy and the hardware resources utilization can be effec-
tively reduced in the application that need both of the two kinds of functions.
Key words: multi-mode; coordinate rotation digital computer( CORDIC) ; double iteration algorithm; trigonometric func-
tions
、 ,
余弦 反正切等多种超越函数 由于在计算反正余弦函
1
引言
,
数时需要对向量旋转带来的增益进行补偿 进而引入
( coordinate rotation digital com-
坐标旋转数字计算
, ,
乘法和平方根运算 增加了硬件实现难度 因此常规的
puter,CORDIC)
J. Volder
1959
等人于
算法是
航空控制系统的设计中提出来的
CORDIC
年在美国
J. Walther
CORDIC
.
算法不适合于反正余弦函数的运算 文献
[9]
[1]
,1971
年
CORDIC
,
算法实现了反正弦运算 但是由于
利用传统的
[2]
,
提出了统一的
的几十年得到不断的改进和优化
优势在于通过简单的移位和加减法运算就能实现包括
算法实现结构
该算法在随后
没有对旋转因子进行补偿可以计算的角度范围有限而
[3 ~ 6]
. CORDIC
算法的
. [10]
且结果不精确 文献 提出了的免缩放因子的双步
CORDIC
,
算法 但并不适用于反正余弦函数的运
旋转
.
三角函数在内的一些复杂的超越函数 由于该算法是
. [12] T. Lang
算 文献 中
CORDIC
给出了利用常规 迭代
, 、
一种规则化的算法 它满足了硬件对算法的模块化 规
,
结构进行反正余弦运算的方法 但是需要引入乘法运
, ,
则化的要求 是硬件与算法相结合的一种优化方案 因
. [13] C. Mazenc
算 文献 中
CORDIC
等人对常规 算法的
[6 ~ 8]
.
而被广泛应用于各种工程实现
, ,
迭代结构进行了改进 提出了双迭法 能够用来计算反
CORDIC
常规的
算法的迭代结构可以用来计算正
,
正弦和反余弦函数 但是需要进行改进和优化
.
: 2015-06-09;
: 2015-11-20;
:
责任编辑 蓝红杰
收稿日期
修回日期
:
基金项目 国家
863
( No. 2011AA120202) ;
( No. D020205)
国家科技重大专项
高技术研究发展计划
496
2018
年
电
子
学
报
CORDIC
, .
下减少了前两级迭代 从而达到了缩减硬件资源的目的
由于计算正余弦函数的常规
算法和计算
,
反正余弦函数的双迭代法的结构不同 因此在两种函
, ( 3)
由于反正弦函数是奇函数 公式 可以做如下
,
数都需要计算的算法实现中 计算这两种三角函数需
:
修改
,
要分别占据硬件资源 这样会造成过多的硬件资源消
x = 1,y = 0,z = 0,t = abs( t)
0
0
0
0
. [13]
耗 本文首先对文献 中的双迭代法进行了资源的
d = sign( x ) if y
i
t
else - sign( x )
i
≤
i
i
i
2
,
优化和误差的校正 然后将正余弦函数和反正余弦函
- i
1
- d ·2
i
x
x
i + 1
i
i
=
( 5)
,
数运算统一到双迭代法的迭代结构中 最后将改进后
- i
[
]
[
] [
]
y
d ·2
i
1
y
i + 1
FPGA
.
上采用流水结构进行硬件实现 改进后
的算法在
- 1 - i
z
= z + 2·d ·tan
i
2
i + 1
i
,
的算法具有正余弦和反正余弦两种工作模式 用户可
- 2i
t
= t + t ·2
i
,
以根据需求对算法功能进行实时切换 因此在实际应
i + 1
i
- 1
CORDIC
= sin t = sign( t) ·z
用中相比使用两个单独的
运算核能够有效节
反正弦函数的结果由 θ
( x ,y )
会一直在第一象限和第二象限旋
计
i + 1
.
.
省硬件资源占用面积
算得出 向量
i
i
,
转 向量旋转过程中
y
z
.
一直会是正值
和
i
i
2
CORDIC
算法优化与改进
( 5)
,
可以得出 初始向量
( x ,y )
0
X
为
由公式
轴上的
0
2. 1
双迭代法
. 1 ,
单位向量 如图 所示 在第一级迭代中
,d
的值必然为
0
-1
-0
CORDIC
常规的
算法迭代结构在计算反正余弦函
1, ( x ,y )
向量
0
2* tan ( 2 ) = 90°,
这样
会逆时针旋转
0
, ,
数时 为了补偿向量旋转带来的增益 会引入乘法和平
( x ,y )
1
Y
.
则为 轴上的一个向量 在第二级迭代中 由于
1
,
. 、
方根运算 平方根运算无法用简单的加法 减法或者移
[-90°,90°],
目标角所在区间为 因此
d = -1,( x ,y )
会
1
1
1
-1
-1
. C. Mazenc
[13]
在文献 中提出了双迭代
位操作来代替
2* tan ( 2 ) .
,
由此可以得知 无论目标角
顺时针旋转
“Double Iteration Algorithm”,
法 双迭代法的主要优势在
,
多大 前两级迭代的向量旋转方式是固定不变的
.
于将随着向量旋转而变化的参数由
- 1 - i
- 2i
t
= t /cos( tan
i
2
) = t
1 + 2
i
槡
( 1)
i + 1
变成了
2
- 1 - i
- 2i
t
= t /cos ( tan
i
2
) = t ( 1 + 2
i
)
( 2)
i + 1
这样乘法和平方根运算就变成了加法和移位运
( 3)
.
算 双迭代法的迭代关系如公式
.
所示
x = 1,y = 0,z = 0,t = t
0
0
0
0
d = sign( x ) if y t ,else-sign( x )
≤
i
i
i
i
i
2
- i
1
- d ·2
i
x
x
i + 1
i
i
=
( 3)
- i
[
]
[
] [
]
y
d ·2
i
1
y
i + 1
- 1 - i
, t [- 1,1], ( x ,
根据以上分析 对于任意的 ∈ 向量
0
z
= z + 2·d ·tan
i
2
i + 1
i
y )
0
( x ,y ) .
这
2
经过前两级旋转后总会得到固定的向量
- 2i
2
t
= t + t ·2
i
i + 1
i
,
样 通过将初始向量变为和
( x ,y )
2
,
同方向的单位向量
2
( 3)
,
的迭代关系 输入参数的反正弦值可
按照公式
,
就可以将前两级迭代省略掉 从而减少了前两级迭代
- 1
= sin t = z
由 θ
弦值的转换关系
,
得到 反余弦值可由反正弦值和反余
i + 1
.
所占用的硬件资源
修改后的迭代公式如下
x = 0. 1,y = 0,z = 0,t = abs( t)
- 1
- 1
cos t = /2 - sin
π
t
.
得到 对于双迭代
:
,
法 函数的收敛域为
:
2
2
0
0
∞
∞
-1 -i
-1 -i
θ ∈
[
]
- 2
tan 2 ,2
tan 2
∑
∑
- 1
0
- 1
1
( 4)
i = 0
i = 0
z = 2·tan 2 - 2 tan
0
2
[- 3. 486,3. 486]
≈
2
- i
1
- d ·2
i
x
x
i + 1
i
i
, t [- 1,1],
因此 对于任何的 ∈ 都可通过双迭代法
=
( 6)
- i
[
]
[
] [
]
y
d ·2
i
1
y
i + 1
.
求得其反正余弦值
2. 2
迭代级数优化
- 1 - i
z
= z + 2·d ·tan
i
2
i + 1
i
- 2i
,
在实际工程应用中 使用流水结构实现
CORDIC
算
t
= t + t ·2
i
i + 1
i
, .
法时 每一级迭代都需要占据硬件资源 本文通过研究双
2. 3
误差校正
双迭代法通过改进原有的
,
迭代法的向量旋转趋势 在不影响算法结果精度的前提
CORDIC
算法给出了计
全部评论(0)