一种覆盖全圆周角度的单精度浮点三角函数的实现方法

文档序号:6587226阅读:167来源:国知局
专利名称:一种覆盖全圆周角度的单精度浮点三角函数的实现方法
技术领域
本发明属于数字信号处理领域,具体涉及一种小面积单精度浮点三角函数的实现方法。
背景技术
现代数字信号处理对运算的精度以及动态范围提出了越来越高的要求,单精度浮点三角函数运算也被越来越多的使用。坐标旋转数字计算(CORDIC)从运算本身入手,将复杂的三角函数运算分解为简单的加减法和移位运算,使得三角函数运算很容易在硬件上实现。目前,国内外对单精度浮点三角函数的实现也做很多的研究,在经典CORDIC算法的基础上根据自己的需要进行了一些改进,并将其运用到实际运算中。然而针对单精度浮点三角函数,其在应用中主要存在两个缺点,一是经典CORDIC算法的角度覆盖范围不够,只能达到[-99.88°,99.88° ];二是基于浮点运算单元的CORDIC算法会占用很多的逻辑资源,占用面积大、工作频率不高。因此如何使得CORDIC算法能够适用于任意输入的角度值,并且改进计算过程中出现的占用面积较大的缺点是亟待解决的问题。

发明内容
有鉴于此,本发明提供了一种小面积单精度浮点三角函数的实现方法,解决了经典CORDIC算法的角度覆盖范围不够和逻辑资源占用过多的问题,扩大了角度覆盖范围,有效的缩减了逻辑资源, 提高了工作频率。为达到上述发明目的,本发明的技术方案为:包括如下步骤:步骤一、预处理模块C0RDIC_PRE接收输入的单精度浮点数据,采用如下方法将单精度浮点数据转换到[-η 4,π 4]范围内,并转换为高精度定点数据,将得到的高精度定点数据输入至迭代运算模块C0RDIC_C0RE ;若输入数据为任意范围的单精度浮点数据格式的角度值Θ,分如下两种情况进行角度范围转换,并将转换后的Θ通过将单精度浮点数据转换为高精度定点数据;若Θ处于[-2 31,2 31]的范围内,将Θ以JI/2或31为单位进行旋转,旋转至[-JI 4,31 4]范围内,记录所旋转的角度;若Θ处于(2 Ji,Co ) U (- Oo ; -2 Ji)范围内,则将Θ加上或者减去2η π,n为整数,使0转换至[-2π,23 ]范围之内,将转换后的Θ再次以Ji/2或π为单位进行旋转,旋转至[_π4, π 4]范围内,记录所旋转的角度;若输入数据为任意范围的向量(x,y),将(x,y)变换到半径为I的圆周内,获得向量,1'),然后将向量,1')旋转至[-H 4,π 4]圆周范围内,记录所旋转的角度;将单精度浮点数据转换为高精度定点数据;步骤二、C0RDIC_C0RE对输入其中的数据采用高精度定点运算完成CORDIC算法迭代运算;将结果输入至后处理模块CORDIC_POST ;步骤三、C0RDIC_P0ST针对对输入其中的数据,按照不同情况进行处理:若需要计算正余弦函数值,则输入至C0RDIC_P0ST中的为同一个角度的正弦值和余弦值,则在C0RDIC_P0ST中依据C0RDIC_PRE中记录的所旋转的角度,按照正余弦函数值的变换关系进行数据恢复;其中数据恢复的方法如下:若所记录的旋转角度为/2,则根据正余弦函数变换关系
权利要求
1.一种覆盖全圆周角度的单精度浮点三角函数的实现方法,其特征在于,包括如下步骤: 步骤一、预处理模块CORDIC_PRE接收输入的单精度浮点数据,采用如下方法将单精度浮点数据转换到[-η/4,π/4]范围内,并转换为高精度定点数据,将得到的高精度定点数据输入至迭代运算模块CORDIC_CORE ; 若输入数据为任意范围的单精度浮点数据格式的角度值Θ,分如下两种情况进行角度范围转换,并将转换后的Θ通过将单精度浮点数据的指数部分指定为127实现单精度浮点数据到高精度定点数据的转换; 若Θ处于[-2 π,2 π ]的范围内,将Θ以Ji /2或π为单位进行旋转,旋转至[-π/4,Jr/4]范围内,记录所旋转的角度; 若Θ处于(2 31,OO ) U (_ °°,-2 31)范围内,则将Θ加上或者减去2η 31,η为整数,使0转换至[-2π,23 ]范围之内,将转换后的Θ再次以Ji/2或π为单位进行旋转,旋转至[-π/4, 31/4]范围内,记录所旋转的角度; 若输入数据为任意范围的向量(x,y),将(x,y)变换到半径为I的圆周内,获得向量U' ,Y'),然后将向量,1')旋转至[-H/4,π/4]圆周范围内,记录所旋转的角度;将单精度浮点数据转换为高精度定点数据; 步骤二、C0RDIC_C0RE对输入其中的数据采用高精度定点运算完成CORDIC算法迭代运算;将结果输入至后处理模块C0RDIC_P0ST ; 步骤三、C0RDIC_P0ST针对对输入其中的数据,按照不同情况进行处理: 若需要计算正余弦函数值,则输入至C0RDIC_P0ST中的为同一个角度的正弦值和余弦值,则在C0RDIC_P0ST中依据CORDIC_PRE中记录的所旋转的角度,按照正余弦函数值的变换关系进行数据恢复; 所述数据恢复的方法如下: 若所记录的旋转角度为-η/2,则根据正余弦函数变换关系
2.如权利要求1所述的一种覆盖全圆周角度的单精度浮点三角函数的实现方法,其特征在于,在步骤一中,所述记录所旋转的角度的具体方法为: 按如下方式划分角度区间:[-π/4,31/4]作为第一区间,(π/4,3 π/4]为第二区间,(3 π /4,-3 π /4]为第三区间,(_3 π /4:,-π /4)为第四区间 若输入数据为任意范围的单精度浮点数据格式的角度值Θ,将不属于[_2π,2π]的范围内的Θ转换至[-2 31,2 31 ]范围内,则对于Θ处于[-2 31,2 31 ]的范围内的情况,仅记录Θ所处的角度区间即可得到所旋转的角度;同样若输入数据为任意范围的向量(x,y),将(x,y)变换到半径为I的圆周内,获得向量,Y'),仅记录,Y')所处的角度区间即可得到所旋转的角度; 若角度Θ或者向量(X ' ,yr )处于第一区间,则所旋转的角度为零; 若角度Θ或者向量(X' ,y')处于第二区间,则所旋转的角度为-π/2; 若角度Θ或者向量(X ' ,yr )处于第三区间,则所旋转的角度为土 π ; 若角度Θ或者向量 (X' ,y')处于第四区间,则所旋转的角度为+π/2。
全文摘要
本发明公开了一种覆盖全圆周角度的单精度浮点三角函数的实现方法,本发明属于数字信号处理领域。包括如下步骤:一、预处理模块CORDIC_PRE接收输入的单精度浮点数据,记录原始数据的象限信息,将单精度浮点数据转换到设定角度范围内,并转换为高精度定点数据,将得到的高精度定点数据输入至迭代运算模块CORDIC_CORE;二、CORDIC_CORE对输入其中的数据采用高精度定点运算完成CORDIC算法迭代运算;将结果输入至后处理模块CORDIC_POST;三、CORDIC_POST针对对输入其中的数据,依据CORDIC_PRE中记录的象限信息,对所要求计算的正余弦函数值或者角度值进行象限恢复;将恢复后的数据转换成精度浮点数据并输出。本发明适用于CORDIC算法的实际运算。
文档编号G06F7/544GK103150137SQ20131006587
公开日2013年6月12日 申请日期2013年3月1日 优先权日2013年3月1日
发明者陈禾, 陈冬, 于文月, 谢宜壮, 曾涛, 龙腾 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1