CN104536720B - 基于fpga的待测角三角函数值的测算方法及系统 - Google Patents

基于fpga的待测角三角函数值的测算方法及系统 Download PDF

Info

Publication number
CN104536720B
CN104536720B CN201410805911.1A CN201410805911A CN104536720B CN 104536720 B CN104536720 B CN 104536720B CN 201410805911 A CN201410805911 A CN 201410805911A CN 104536720 B CN104536720 B CN 104536720B
Authority
CN
China
Prior art keywords
value
trigonometric function
curve
angle
angle value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410805911.1A
Other languages
English (en)
Other versions
CN104536720A (zh
Inventor
朱冬冬
潘再生
施明
施一明
童庆
王薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo zhongkong Microelectronics Co.,Ltd.
Original Assignee
ZHEJIANG SUPCON RESEARCH Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZHEJIANG SUPCON RESEARCH Co Ltd filed Critical ZHEJIANG SUPCON RESEARCH Co Ltd
Priority to CN201410805911.1A priority Critical patent/CN104536720B/zh
Publication of CN104536720A publication Critical patent/CN104536720A/zh
Application granted granted Critical
Publication of CN104536720B publication Critical patent/CN104536720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明提供了一种基于FPGA的待测角三角函数值的测算方法及系统,该方法包括如下步骤:S1:检测得到任意待测角度的弧度值,并确认所需三角函数的类型;S2:将步骤S1得到的数值和类型应用到预设的转换关系表,得到转换后角度值及符号标识;S3:仿真对应的三角函数曲线,依次在该三角函数曲线上取若干定点,依据这些定点依次得到若干连续的拟合曲线,从而获得若干拟合曲线各自的函数式;S4:将所述转换后角度值定位于其中一个拟合曲线的范围内;S5:将步骤S2中得到的所述转换后角度值代入到步骤S4中定位的拟合曲线的函数式中,得到三角函数的数值;S6:依据所述符号标识确定该三角函数数值的正负,最终得到三角函数值。

Description

基于FPGA的待测角三角函数值的测算方法及系统
技术领域
本发明涉及工业控制中角度测算过程,尤其涉及一种基于FPGA的待测角三角函数值的测算方法及系统。
背景技术
硬件三角函数的运算是指在FPGA或SOC系统上实现三角函数的数值计算,如正弦函数sinx、余弦函数cosx、正切函数tanx、余切函数cotx等。一般这种基于硬件系统的运算结果无法直接调用硬件的相关IP核获得,必须转换成基本的加减乘除运算间接计算获得。目前,硬件三角函数的实现方法主要分为三种:
(1)基于多项式展开的数值逼近法
三角函数可以利用泰勒级数等方式进行多项式展开,从而将抽象的三角函数计算转化为基本的数学运算,比如:
(2)基于CORDIC算法的数值逼近法
CORDIC算法运用坐标旋转和递归原理,将运算转化成硬件的移位和加减操作,计算常用函数值,如sinx,cosx,sinhx,coshx等。坐标旋转最初产生的是二维的函数,进一步引入变量后扩展,得到三维的函数,接着利用查表、移位以及加减法等简单运算,在硬件上简便地实现三角函数的运算。
(3)基于查表法的复杂函数数值逼近法
基于查表法的复杂函数数值逼近法实现硬件三角函数也有多种,比如基于查找表采用三次Bezier函数的硬件三角函数计算。它是一种适用于图形处理器、基于查表法、采用三次Bezier函数分段逼近的基本三角函数求值器。
以上3种常用的方法虽然都能在硬件系统中计算相应的三角函数值,但是存在一些问题。第(1)种基于多项式展开的数值逼近法,对于每一种三角函数运算所需要的基本运算较多,特别是需要调用多次的乘法和除法,比较耗费硬件逻辑资源。特别当所需求的计算精度较高时,运算量将非常庞大。
第(2)种基于CORDIC算法的数值逼近法,比较容易实现较高精度的硬件三角函数运算,但是同时也将需要多次迭代并存储多个迭代值,需要耗费较大的硬件逻辑资源。另外,基于CORDIC算法的数值逼近法无法直接计算正切和余切等基本三角函数值,也无法直接支持任意输入角度的计算,需要调用浮点数基本运算单元,则在需要完整硬件三角函数类型支持下硬件消耗也会相对较大。
第(3)种基于查表法的复杂函数数值逼近法,一般查找表比较庞大且基本运算步骤较多。就如基于三次Bezier函数的正弦函数sinx计算为例,在[0,π/2]内的计算就需要存储208个32位二进制值,同时计算过程也比较复杂,至少需要调用1次浮点数加法、7次浮点数减法和3次浮点数除法,这在硬件消耗和计算周期上均没有优势。
发明内容
本发明要解决的技术问题是如何节约三角函数值测算的硬件资源消耗和计算周期。
为了解决这一技术问题,本发明提供了一种基于FPGA的待测角三角函数值的测算方法,包括如下步骤:
S1:检测得到任意待测角度的弧度值,并确认所需三角函数的类型;
S2:将步骤S1得到的数值和类型应用到预设的转换关系表,得到转换后角度值及符号标识;
所述转换关系表用以:
将原待测角度的数值转换到预设的造表区间内,得到所述转换后角度值;
设定一个符号标识,该符号标识用以确定三角函数值的正负;
S3:仿真对应的三角函数曲线,依次在该三角函数曲线上取若干定点,依据这些定点依次得到若干连续的拟合曲线,从而获得若干拟合曲线各自的函数式;
S4:将所述转换后角度值定位于其中一个拟合曲线的范围内;
S5:将步骤S2中得到的所述转换后角度值代入到步骤S4中定位的拟合曲线的函数式中,得到三角函数的数值;
S6:依据所述符号标识确定该三角函数数值的正负,最终得到三角函数值。
所述造表区间为[0,π/2]。
在所述步骤S3中,在该曲线上取若干定点时,以以下规则进行定点的选择:
a、相邻定点间的角度值间隔固定;
b、在所述造表区间的范围内取定点;
c、沿角度值从小到大的取值方向依次取点;
在取若干定点和得到若干连续的拟合曲线的过程中:
对于每一个拟合曲线:
先自起点起在三角函数的曲线上取m个定点,据此m个定点绘制一个拟合曲线;
然后,继续在三角函数的曲线上取定点,且自第m+1个定点起,将所取定点的角度值代入该拟合曲线和原三角函数曲线中,得到两个函数值;
进行函数值的比较;
若对于第n个定点的角度值,两个函数值之间的误差等于一个预设的判定值,则取该点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差大于该预设的判定值,则取第n-1个点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差小于该预设的判定值,则继续取下一个顶点进行计算和比较。
对于第一个拟合曲线,其起点的角度值为0。
相邻两个拟合曲线之间通过一个拟合点实现连续;在所述步骤S4中,具体包括如下步骤:
先分别得到转换后角度值对应的阶码以及各拟合点对应的阶码;
比较转换后角度值对应的阶码和各拟合点对应的阶码:
若转换后角度值对应的阶码的数值处于某两个相邻的拟合点对应的阶码之间,则将所述转换后角度值定位于该两个拟合点确定的拟合曲线的范围内;
若转换后角度值对应的阶码的数值与其中一个拟合点对应的阶码相同,则确认该转换后角度值位于与该拟合点相邻的一个拟合曲线的范围内,然后,再比较两者的尾数大小,进而将所述转换后角度值定位于其中一个拟合曲线的范围内。
所述拟合曲线的函数式为f=ax2+bx+c,在将步骤S:5中,以如下公式f=(ax+b)x+c,通过两次乘法和两次加法进行计算。
本发明还提供了一种基于FPGA的待测角三角函数值的测算系统,包括预处理单元、查表定位单元、计算单元和后处理单元;
所述预处理单元,用以将检测得到的数值和类型应用到预设的转换关系表,得到转换后角度值及符号标识;
所述转换关系表用以:
将原待测角度的数值转换到预设的造表区间内,得到所述转换后角度值;
设定一个符号标识,该符号标识用以确定三角函数值的正负;
所述查表定位单元,用以仿真对应的三角函数曲线,依次在该三角函数曲线上取若干定点,依据这些定点依次得到若干连续的拟合曲线,从而获得若干拟合曲线各自的函数式;
然后,将所述转换后角度值定位于其中一个拟合曲线的范围内;
所述计算单元,用以将转换后角度值代入到所述查表定位单元定位的拟合曲线的函数式中,得到三角函数的数值,再依据所述符号标识确定该三角函数数值的正负,最终得到三角函数值。
所述查表定位单元被配置成:在该三角函数曲线上取若干定点时,以以下规则进行定点的选择:
a、相邻定点间的角度值间隔固定;
b、在所述造表区间的范围内取定点;
c、沿角度值从小到大的取值方向依次取点;
对于每一个拟合曲线:
先自起点起在三角函数的曲线上取m个定点,据此m个定点绘制一个拟合曲线;
然后,继续在三角函数的曲线上取定点,且自第m+1个定点起,将所取定点的角度值代入该拟合曲线和原三角函数曲线中,得到两个函数值;
进行函数值的比较;
若对于第n个定点的角度值,两个函数值之间的误差等于一个预设的判定值,则取该点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差大于该预设的判定值,则取第n-1个点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差小于该预设的判定值,则继续取下一个顶点进行计算和比较。
相邻两个拟合曲线之间通过一个拟合点实现连续;所述查表定位单元被配置实现以下步骤:
先分别得到转换后角度值对应的阶码以及各拟合点对应的阶码;
比较转换后角度值对应的阶码和各拟合点对应的阶码:
若转换后角度值对应的阶码的数值处于某两个相邻的拟合点对应的阶码之间,则将所述转换后角度值定位于该两个拟合点确定的拟合曲线的范围内;
若转换后角度值对应的阶码的数值与其中一个拟合点对应的阶码相同,则确认该转换后角度值位于与该拟合点相邻的一个拟合曲线的范围内,然后,再比较两者的尾数大小,进而将所述转换后角度值定位于其中一个拟合曲线的范围内。
所述拟合曲线的函数式为f=ax2+bx+c,在所述后处理单元配置成以如下公式f=(ax+b)x+c,通过两次乘法和两次加法进行计算。
本发明提出了一种结合二次拟合的查表法,采用分段二次函数拟合的数值逼近方式,在同等精度下有效地减小了查找所需要存储的点数,并且充分利用了浮点数的加减乘除基本运算单元完整地实现了任意角度的基本三角函数的运算(正弦函数sinx、余弦函数cosx、正切函数tanx、余切函数cotx),同时硬件资源消耗与时钟周期数的综合性能上优于现有技术。此外,这种硬件实现方法非常灵活通用,可以根据需求实现不同精度、不同复杂函数运算的硬件实现。
附图说明
图1是本发明一实施例中基于FPGA的待测角三角函数值的测算系统的示意图;
图2是本发明一实施例中IEEE754标准单精度浮点数表示形式;
图3是本发明一实施例中拟合结果示意图。
具体实施方式
以下将结合图1至图3通过一个实施例及其拓展解释对本发明提供的一种基于FPGA的待测角三角函数值的测算方法和系统进行详细的描述,其为本发明一可选的实施例,可以认为,本领域的技术人员在不改变本发明精神和内容的范围内,能够对其进行修改和润色。
本实施例中的描述中的拟合曲线以二次拟合曲线为例进行介绍,不过其实本发明并不限于此
本实施例提供了一种基于FPGA的待测角三角函数值的测算方法,包括如下步骤:
S1:检测得到任意待测角度的弧度值,并确认所需三角函数的类型;
输入角度为以IEEE754标准表示的任意角度的弧度值,IEEE754标准的单精度浮点数表示形式如附图2所示。
S2:将步骤S1得到的数值和类型应用到预设的转换关系表,得到转换后角度值及符号标识;
所述转换关系表用以:
将原待测角度的数值转换到预设的造表区间内,得到所述转换后角度值;
设定一个符号标识,该符号标识用以确定三角函数值的正负;
其中,所述造表区间为[0,π/2]。步骤S2主要由预处理单元来实现。预处理单元主要是利用计算单元中的浮点数基本运算,将任意输入角度的弧度值转换到符合有效输入范围内的等效值。以正弦函数为例,预处理单元首先调用浮点数计算单元将输入角度转换到[-2π,2π],再利用对称性和三角函数关系将所有输入角度转换到[0,π/2]的正弦函数运算,并且根据转换的类型标记相应的符号标识(符号标识为1表示最终输出结果需要将符号位取反),具体转换关系如表1~表3所示。
表1正弦函数角度转换关系表
表2余弦函数角度转换关系表
表3正切/余切函数角度转换关系表
S3:仿真对应的三角函数曲线,依次在该三角函数曲线上取若干定点,依据这些定点依次得到若干连续的拟合曲线,从而获得若干拟合曲线各自的函数式;步骤S3主要由计算单元来实现;
S4:将所述转换后角度值定位于其中一个拟合曲线的范围内;
以上两个步骤由查表定位单元来实现,查表定位单元主要是将预处理单元转换后的输入角度对应的等效弧度值快速定位到最接近的二次拟合函数段中。它是该技术方案的重要单元,其核心是查找表生成算法和定位算法,分别对应步骤S3和S4。
对于步骤S3:
在所述步骤S3中,在该曲线上取若干定点时,以以下规则进行定点的选择:
a、相邻定点间的角度值间隔固定;
b、在所述造表区间的范围内取定点;
c、沿角度值从小到大的取值方向依次取点;
在取若干定点和得到若干连续的拟合曲线的过程中:
对于每一个拟合曲线:
先自起点起在三角函数的曲线上取m个定点,据此m个定点绘制一个拟合曲线;
然后,继续在三角函数的曲线上取定点,且自第m+1个定点起,将所取定点的角度值代入该拟合曲线和原三角函数曲线中,得到两个函数值;
进行函数值的比较;
若对于第n个定点的角度值,两个函数值之间的误差等于一个预设的判定值,则取该点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差大于该预设的判定值,则取第n-1个点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差小于该预设的判定值,则继续取下一个顶点进行计算和比较。
这里所称的预设的判定值为同一个值。
对于第一个拟合曲线,其起点的角度值为0。
在本实施例中,以正弦函数为例来阐述步骤S3:
以正弦函数为例,有y=sinx,取造表区间为(0,π/2),拟合精度为千分之一。在造表区间内,以0.0001为间距进行等距离划分,则有x[1]=0,x[2]=0.0001,x[3]=0.0002……x[15781]=1.5708,取定点(x[1],y[1])为查找表中第1个点,查找表中其余的点是通过matlab工具仿真得到。以点(x[1],y[1])为起点,点(x[11],y[11])(曲线拟合时要保证点的个数大于曲线的阶次,这里取拟合的点数至少为11个)为终点,将这11个点进行二次曲线拟合,得到二次曲线f=ax2+bx+c。当x取x[1]、x[2]、……、x[11]时,判断正弦曲线和二次曲线的相对误差的最大值是否小于0.001,此即为预设的判定值,若11个点代入时相对误差均小于0.001则取点(x[12],y[12])为终点,将这12个点进行二次曲线拟合,同样判断相应的相对误差的最大值与0.001的大小。依此类推,当以点(x[n],y[n])为终点,相应的相对误差的最大值等于0.001时,点(x[n],y[n])为查找表中的第2个点;相应的相对误差的最大值大于0.001时,点(x[n-1],y[n-1])为查找表中的第2个点。然后以点(x[n],y[n])或(x[n-1],y[n-1])为起点,用同样的方法可以求得查找表中的第三个点,以此类推可以求得查找表剩下的点。本实施例中,得到的查找表中的点为6个,再把端点(1.5708,1)作为查找表中的第7个点,则最后得到的查找表有7个点,由此确定的拟合曲线为6条。拟合结果如图3所示,所得的拟合点如表4所示,所得的二次拟合曲线的系数如表5所示。
表4正弦函数(0,π/2)内拟合点表(1‰精度)
表5正弦函数(0,π/2)内拟合曲线系数表(1‰精度)
对于步骤S4:
相邻两个拟合曲线之间通过一个拟合点实现连续;在所述步骤S4中,具体包括如下步骤:
先分别得到转换后角度值对应的阶码以及各拟合点对应的阶码;
比较转换后角度值对应的阶码和各拟合点对应的阶码:
若转换后角度值对应的阶码的数值处于某两个相邻的拟合点对应的阶码之间,则将所述转换后角度值定位于该两个拟合点确定的拟合曲线的范围内;
若转换后角度值对应的阶码的数值与其中一个拟合点对应的阶码相同,则确认该转换后角度值位于与该拟合点相邻的一个拟合曲线的范围内,然后,再比较两者的尾数大小,进而将所述转换后角度值定位于其中一个拟合曲线的范围内。
结合到具体的实施例,以下以正弦函数为例进行进一步阐述:
当转换后的角度值对应的等效弧度值x输入查表定位单元时,可以充分利用IEEE754标准下单精度浮点数的阶码和尾数的关系快速定位对应的拟合曲线。比如在正弦函数(0,π/2)内千分之一精度的拟合时,根据拟合点表4可以看到第2-第7个点的阶码分别是(0x79、0x7c、0x7d、0x7e、0x7f、0x7f)。首先将x的阶码与拟合点的阶码进行比较,如果阶码小于0x79,则直接利用拟合曲线1进行运算;如果阶码位于0x79与0x7c之间,则直接利用拟合曲线2进行运算;当x的阶码与拟合点的阶码相同时,则再比较相应的尾数大小,从而快速定位所需采用的拟合曲线,并减小比较过程的硬件资源消耗。
S5:将步骤S2中得到的所述转换后角度值代入到步骤S4中定位的拟合曲线的函数式中,得到三角函数的数值;其主要通过计算单元来实现;
计算单元作为一个通用基础单元,主要是IEEE754标准下单精度浮点数的加减乘除基本运算单元,可被其它单元重复调用执行,这就在保证硬件三角函数完整实现的基础上大大减少了硬件资源消耗。以正弦函数的二次拟合为例,将输入角度的等效弧度值x代入查表定位单元所确定的f=(ax+b)x+c进行运算,共需要复用2次乘法和2次加法,正切函数和余切函数的运算过程需要额外增加一次基本拟合过程和一次除法运算。
S6:依据所述符号标识确定该三角函数数值的正负,最终得到三角函数值。主要由后处理单元来实现,后处理单元主要用于确定输出结果的符号位并输出对应的运算结果,它将计算单元的拟合运算结果的符号位与预处理单元的符号标识位进行异或操作作为最终输出结果的符号位,将计算单元的拟合预算结果的阶码和尾数作为最终输出结果的阶码和尾数。
结合以上内容可以看出,本实施例其实还提供了一种基于FPGA的待测角三角函数值的测算系统,包括预处理单元、查表定位单元、计算单元和后处理单元;
所述预处理单元,用以将检测得到的数值和类型应用到预设的转换关系表,得到转换后角度值及符号标识;
所述转换关系表用以:
将原待测角度的数值转换到预设的造表区间内,得到所述转换后角度值;
设定一个符号标识,该符号标识用以确定三角函数值的正负;
所述查表定位单元,用以仿真对应的三角函数曲线,依次在该三角函数曲线上取若干定点,依据这些定点依次得到若干连续的拟合曲线,从而获得若干拟合曲线各自的函数式;
然后,将所述转换后角度值定位于其中一个拟合曲线的范围内;
所述计算单元,用以将转换后角度值代入到所述查表定位单元定位的拟合曲线的函数式中,得到三角函数的数值,再依据所述符号标识确定该三角函数数值的正负,最终得到三角函数值。
所述查表定位单元被配置成:在该三角函数曲线上取若干定点时,以以下规则进行定点的选择:
a、相邻定点间的角度值间隔固定;
b、在所述造表区间的范围内取定点;
c、沿角度值从小到大的取值方向依次取点;
对于每一个拟合曲线:
先自起点起在三角函数的曲线上取m个定点,据此m个定点绘制一个拟合曲线;
然后,继续在三角函数的曲线上取定点,且自第m+1个定点起,将所取定点的角度值代入该拟合曲线和原三角函数曲线中,得到两个函数值;
进行函数值的比较;
若对于第n个定点的角度值,两个函数值之间的误差等于一个预设的判定值,则取该点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差大于该预设的判定值,则取第n-1个点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差小于该预设的判定值,则继续取下一个顶点进行计算和比较。
相邻两个拟合曲线之间通过一个拟合点实现连续;所述查表定位单元被配置实现以下步骤:
先分别得到转换后角度值对应的阶码以及各拟合点对应的阶码;
比较转换后角度值对应的阶码和各拟合点对应的阶码:
若转换后角度值对应的阶码的数值处于某两个相邻的拟合点对应的阶码之间,则将所述转换后角度值定位于该两个拟合点确定的拟合曲线的范围内;
若转换后角度值对应的阶码的数值与其中一个拟合点对应的阶码相同,则确认该转换后角度值位于与该拟合点相邻的一个拟合曲线的范围内,然后,再比较两者的尾数大小,进而将所述转换后角度值定位于其中一个拟合曲线的范围内。
所述拟合曲线为二次拟合曲线,其函数式为f=ax2+bx+c,在所述后处理单元配置成以如下公式f=(ax+b)x+c,通过两次乘法和两次加法进行计算。
综上可见,本发明能推广到其它复杂函数在硬件系统中的求值。能直接完整地实现所有基本三角函数的硬件运算(正弦函数sinx、余弦函数cosx、正切函数tanx和余切函数cotx),且支持任意角度的运算。能根据运算精度要求变换查找表存储值,从而简单实现不同精度要求下的硬件三角函数求值。它充分利用浮点数的基本运算,在相同要求下(完整实现任意角度的基本三角函数硬件运算和千分之一精度)能做到硬件资源消耗比其它方法少。
本发明的优点在于:在同等精度下有效地减小了查找表所需要存储的点数,并且在充分利用了浮点数的加减乘除基本运算单元的基础上完整地实现了任意角度的基本三角函数的运算,同时硬件资源消耗与时钟周期数的综合性能上优于现有技术。此外,这种硬件实现方法非常灵活通用,可以根据需求修改查找表数值,从而实现不同精度、不同复杂函数运算的硬件实现。
此外,还须知,基于浮点数基本运算的拟合方式不限于二次拟合,可以是一次拟合、三次拟合等常用的拟合函数。浮点数的表示形式不限于IEEE-754标准,也可以是IEEE-754_1、IEEE-754_2等32位单精度浮点数表示形式。拟合的精度不限于千分之一,也可以是千分之五、万分之一等。
为了能有助于理解本发明,本实施例还具体阐述如下一些资料:
①IEEE754标准下的单精度浮点数表示形式
目前通用的浮点数字信号处理器大多采用IEEE的32位单精度浮点数格式,其格式包括符号位、阶码位和尾数位。以IEEE754标准的单精度浮点数格式为例,它的表示形式为:符号(s)占1位;阶码(e)占8位,视作无符号数(0<e<255),e有127的偏移,因此小数点实际移动位数等于e-127;尾数(f)为23位,对应定点数的数值部分,但是隐藏了其最高位1,且小数点“.”在阶码(e)的右边,表示的定点数为1.f。按照IEEE754单精度浮点数格式标准,浮点数的数值=(-1)^s×1.f×2^(e-127)。
②本硬件三角函数运算器的接口说明
本硬件三角函数运算器作为自主研发的控制芯片中的一个控制算法库子模块,控制算法库与自主研发的协处理器相连接,并复用其AHB主接口。本硬件三角函数运算器的模块接口说明如表6所示:
表6硬件三角函数运算器模块接口说明

Claims (12)

1.一种基于FPGA的待测角三角函数值的测算方法,包括如下步骤:
S1:检测得到任意待测角度的弧度值,并确认所需三角函数的类型;
S2:将步骤S1得到的弧度值和类型应用到预设的转换关系表,得到转换后角度值及符号标识;
所述转换关系表用以:
将原待测角度的弧度值转换到预设的造表区间内,得到所述转换后角度值;
设定一个符号标识,该符号标识用以确定三角函数值的正负;
S3:仿真对应的三角函数曲线,依次在该三角函数曲线上取若干定点,依据这些定点依次得到若干连续的拟合曲线,从而获得若干拟合曲线各自的函数式;
S4:将所述转换后角度值定位于其中一个拟合曲线的范围内;
S5:将步骤S2中得到的所述转换后角度值代入到步骤S4中定位的拟合曲线的函数式中,得到三角函数的数值;
S6:依据所述符号标识确定该三角函数数值的正负,最终得到三角函数值。
2.如权利要求1所述的基于FPGA的待测角三角函数值的测算方法,其特征在于:所述造表区间为[0,π/2]。
3.如权利要求1所述基于FPGA的待测角三角函数值的测算方法,其特征在于:在所述步骤S3中,在该三角函数曲线上取若干定点时,以以下规则进行定点的选择:
a、相邻定点间的角度值间隔固定;
b、在所述造表区间的范围内取定点;
c、沿角度值从小到大的取值方向依次取点。
4.如权利要求3所述基于FPGA的待测角三角函数值的测算方法,其特征在于:在取若干定点和得到若干连续的拟合曲线的过程中:
对于每一个拟合曲线:
先自起点起在三角函数的曲线上取m个定点,据此m个定点绘制一个拟合曲线;
然后,继续在三角函数的曲线上取定点,且自第m+1个定点起,将所取定点的角度值代入该拟合曲线和原三角函数曲线中,得到两个函数值;
进行函数值的比较;
若对于第n个定点的角度值,两个函数值之间的误差等于一个预设的判定值,则取第n个定点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差大于该预设的判定值,则取第n-1个定点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差小于该预设的判定值,则继续取下一个定点进行计算和比较。
5.如权利要求4所述基于FPGA的待测角三角函数值的测算方法,其特征在于:对于第一个拟合曲线,其起点的角度值为0。
6.如权利要求1所述基于FPGA的待测角三角函数值的测算方法,其特征在于:相邻两个拟合曲线之间通过一个拟合点实现连续;在所述步骤S4中,具体包括如下步骤:
先分别得到转换后角度值对应的阶码以及各拟合点对应的阶码;
比较转换后角度值对应的阶码和各拟合点对应的阶码:
若转换后角度值对应的阶码的数值处于某两个相邻的拟合点对应的阶码之间,则将所述转换后角度值定位于该两个相邻的拟合点确定的拟合曲线的范围内;
若转换后角度值对应的阶码的数值与其中一个拟合点对应的阶码相同,则确认该转换后角度值位于与该拟合点相邻的一个拟合曲线的范围内,然后,再比较两者的尾数大小,进而将所述转换后角度值定位于其中一个拟合曲线的范围内。
7.如权利要求1所述基于FPGA的待测角三角函数值的测算方法,其特征在于:所述拟合曲线为二次拟合曲线,其函数式为f=ax2+bx+c,在将步骤S5中,以如下公式f=(ax+b)x+c,通过两次乘法和两次加法进行计算。
8.一种基于FPGA的待测角三角函数值的测算系统,包括预处理单元、查表定位单元、计算单元和后处理单元;
所述预处理单元,用以将检测得到的数值和类型应用到预设的转换关系表,得到转换后角度值及符号标识;
所述转换关系表用以:
将原待测角度的数值转换到预设的造表区间内,得到所述转换后角度值;
设定一个符号标识,该符号标识用以确定三角函数值的正负;
所述查表定位单元,用以仿真对应的三角函数曲线,依次在该三角函数曲线上取若干定点,依据这些定点依次得到若干连续的拟合曲线,从而获得若干拟合曲线各自的函数式;
然后,将所述转换后角度值定位于其中一个拟合曲线的范围内;
所述计算单元,用以将转换后角度值代入到所述查表定位单元定位的拟合曲线的函数式中,得到三角函数的数值,
所述后处理单元:依据所述符号标识确定该三角函数数值的正负,最终得到三角函数值。
9.如权利要求8所述基于FPGA的待测角三角函数值的测算系统,其特征在于:所述查表定位单元被配置成:在该三角函数曲线上取若干定点时,以以下规则进行定点的选择:
a、相邻定点间的角度值间隔固定;
b、在所述造表区间的范围内取定点;
c、沿角度值从小到大的取值方向依次取点。
10.如权利要求9所述基于FPGA的待测角三角函数值的测算系统,其特征在于:对于每一个拟合曲线:
先自起点起在三角函数的曲线上取m个定点,据此m个定点绘制一个拟合曲线;
然后,继续在三角函数的曲线上取定点,且自第m+1个定点起,将所取定点的角度值代入该拟合曲线和原三角函数曲线中,得到两个函数值;
进行函数值的比较;
若对于第n个定点的角度值,两个函数值之间的误差等于一个预设的判定值,则取第n个定点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差大于该预设的判定值,则取第n-1个定点为本拟合曲线的终点,且将其作为下一个拟合曲线的起点;
若对于第n个定点的角度值,两个函数值之间的误差小于该预设的判定值,则继续取下一个定点进行计算和比较。
11.如权利要求8所述基于FPGA的待测角三角函数值的测算系统,其特征在于:相邻两个拟合曲线之间通过一个拟合点实现连续;所述查表定位单元被配置实现以下步骤:
先分别得到转换后角度值对应的阶码以及各拟合点对应的阶码;
比较转换后角度值对应的阶码和各拟合点对应的阶码:
若转换后角度值对应的阶码的数值处于某两个相邻的拟合点对应的阶码之间,则将所述转换后角度值定位于该两个相邻的拟合点确定的拟合曲线的范围内;若转换后角度值对应的阶码的数值与其中一个拟合点对应的阶码相同,则确认该转换后角度值位于与该拟合点相邻的一个拟合曲线的范围内,然后,再比较两者的尾数大小,进而将所述转换后角度值定位于其中一个拟合曲线的范围内。
12.如权利要求8所述基于FPGA的待测角三角函数值的测算系统,其特征在于:所述拟合曲线的函数式为f=ax2+bx+c,所述计算单元配置成以如下公式f=(ax+b)x+c,通过两次乘法和两次加法进行计算。
CN201410805911.1A 2014-12-22 2014-12-22 基于fpga的待测角三角函数值的测算方法及系统 Active CN104536720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410805911.1A CN104536720B (zh) 2014-12-22 2014-12-22 基于fpga的待测角三角函数值的测算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410805911.1A CN104536720B (zh) 2014-12-22 2014-12-22 基于fpga的待测角三角函数值的测算方法及系统

Publications (2)

Publication Number Publication Date
CN104536720A CN104536720A (zh) 2015-04-22
CN104536720B true CN104536720B (zh) 2017-11-28

Family

ID=52852254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410805911.1A Active CN104536720B (zh) 2014-12-22 2014-12-22 基于fpga的待测角三角函数值的测算方法及系统

Country Status (1)

Country Link
CN (1) CN104536720B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783756A (zh) * 2016-08-31 2018-03-09 深圳市中兴微电子技术有限公司 一种获取角度相关值的方法和装置
CN110633447B (zh) * 2019-08-30 2020-09-04 中国人民解放军军事科学院国防科技创新研究院 基于fpga的球面距离定点计算方法及其计算装置
CN111831257A (zh) * 2020-06-29 2020-10-27 湖南毂梁微电子有限公司 一种用于计算正弦或余弦函数的实现方法及装置
CN116627380B (zh) * 2023-07-24 2023-12-05 自然资源部第一海洋研究所 基于三角多项式拟合的电导率异常值识别方法、系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102044053A (zh) * 2009-10-20 2011-05-04 西安费斯达自动化工程有限公司 基于fpga的逆透视变换方法
CN102737222A (zh) * 2011-04-08 2012-10-17 刘石 基于数学函数查表法优化的快速指纹识别算法
CN103825529A (zh) * 2014-02-27 2014-05-28 株洲南车时代电气股份有限公司 一种低开关频率下高动态响应脉宽调制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102044053A (zh) * 2009-10-20 2011-05-04 西安费斯达自动化工程有限公司 基于fpga的逆透视变换方法
CN102737222A (zh) * 2011-04-08 2012-10-17 刘石 基于数学函数查表法优化的快速指纹识别算法
CN103825529A (zh) * 2014-02-27 2014-05-28 株洲南车时代电气股份有限公司 一种低开关频率下高动态响应脉宽调制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QAM调制解调器的研究与实现;陈巍;《中国优秀硕士学位论文全文数据库信息科技辑》;20141115;第2.6.2节第35-38页 *
一种计算复数相角的新算法;方志红等;《现代雷达》;20070531;第29卷(第5期);第63-64、78页 *

Also Published As

Publication number Publication date
CN104536720A (zh) 2015-04-22

Similar Documents

Publication Publication Date Title
CN103677738B (zh) 基于混合模式cordic算法的低延时基本超越函数实现方法及装置
CN106155627B (zh) 基于t_cordic算法的低开销迭代三角函数装置
CN104536720B (zh) 基于fpga的待测角三角函数值的测算方法及系统
CN107305484B (zh) 一种非线性函数运算装置及方法
CN102722352B (zh) 一种Booth乘法器
CN102073472B (zh) 一种三角函数cordic迭代运算协处理器及运算处理方法
Sapozhnikov et al. Advantages of using the probabilistic form of information representation in information-control systems
US20120259906A1 (en) Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit
CN112241291A (zh) 用于指数函数实施的浮点单元
CN104679720A (zh) 一种实现fft的运算方法
CN105302519B (zh) 用于执行浮点平方根运算的装置和方法
CN107423026B (zh) 一种正余弦函数计算的实现方法及装置
CN107102841A (zh) 一种坐标变换并行计算方法和装置
CN103809931A (zh) 一种专用高速浮点指数运算器的设计
US9335996B2 (en) Recycling error bits in floating point units
CN111831257A (zh) 一种用于计算正弦或余弦函数的实现方法及装置
Niwal et al. Design of radix 4 divider circuit using SRT algorithm
Fang et al. A unified reconfigurable CORDIC processor for floating-point arithmetic
CN102073471B (zh) 一种处理器Cordic迭代运算电路
US6366939B1 (en) Apparatus for computing exponential and trigonometric functions
Gustafsson et al. Arithmetic
Chen et al. Numerical approximations of highly oscillatory Hilbert transforms
Ravi et al. Analysis and study of different multipliers to design floating point MAC units for digital signal processing applications
Shahrbanoonezhad et al. Residue Number system Sign Detector Design based on Dynamic Range Partitioning.
Shekhawat et al. PHAc: P osit H ardware Ac celerator for Efficient Arithmetic Logic Operations

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180213

Address after: 310053 Binjiang District, Hangzhou, Hangzhou, Zhejiang Province, No. six and No. 309 F16

Patentee after: Zhejiang Jay core technology Co., Ltd.

Address before: 310053 Hangzhou Province, Binjiang District Province, No. six and No. 309 Road, the center of science and Technology Park (high tech Zone) ()

Patentee before: Zhejiang Supcon Research Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211216

Address after: 315000 room 1-1-178, 150 Changpu Road, jishigang Town, Haishu District, Ningbo City, Zhejiang Province

Patentee after: Ningbo zhongkong Microelectronics Co.,Ltd.

Address before: F16, 309 Liuhe Road, Binjiang District, Hangzhou City, Zhejiang Province, 310053

Patentee before: Zhejiang Jay core technology Co.,Ltd.

TR01 Transfer of patent right