一种基于泰勒展开式的高精度正弦/余弦函数计算方法技术

技术编号:8593931 阅读:1505 留言:1更新日期:2013-04-18 07:05
本发明专利技术涉及一种基于泰勒展开式的高精度正弦/余弦函数计算方法,具体包括三个子模块,以产生高精度的正弦/余弦函数值;三个子模块分别是,相位细分模块,初值计算模块和迭代求解模块;其中,相位细分模块将需要求取三角函数相位值分为N份,N为正整数;初值计算模块计算得出细分后相位的三角函数值,并作为迭代初值;迭代求解模块根据计算方程式将初值迭代相应的步数,迭代结果即对应于三角函数的正弦和余弦值。本发明专利技术采用较少的迭代次数即可获得高精度的正弦及余弦数值。

【技术实现步骤摘要】

本专利技术涉及数字信号发生领域,尤其涉及一种高精度正弦/余弦函数值的计算方法。
技术介绍
正弦/余弦函数数值的计算在直接数字频率合成中具有重要的作用,其计算精度直接影响信号源的精度,进而影响到相应测控系统的系统精度。目前,在数字信号发生领域,正弦/余弦函数数值的计算方法主要有查表法、插值法和CORDIC算法。在对相位和频率分辨率以及输出精度要求很高的场合,查表法会消耗大量的存储单元,这不仅增大了能耗,而且增加了芯片面积。CORDIC算法运用坐标旋转求取相应的正余弦值,它解决了资源的消耗问题,且非常适合在FPGA上实现,但CORDIC算法在固定迭代次数的情况下,计算的精度随待计算角度的变化而变化。因此,CORDIC算法在频率变化比较大的场合满足不了高精度的要求。为了满足高精度正弦/余弦信号发生的要求,设计一种计算精度与输入角度无关的正弦/余弦计算方法尤为重要。
技术实现思路
本专利技术的目的在于提出一种基于泰勒展开式的高精度正弦/余弦函数的计算方法,实现计算精度与输入角度无关的正弦/余弦计算方法。所述方法运用欧拉公式将精细积分的求解对象从指数函数变换为正弦/余弦函数,从而求得在间任意相位高精度的正弦/余弦值。 本专利技术的技术方案是所述方法通过细分待求相位,求得小角度下的正弦/余弦值,并迭代相应次数N,N为正整数,进而求得所述待求相位下的正弦/余弦值;所述方法包括以下步骤步骤一,相位细分;将待求相位η细分为2Ν份,N为正整数。待求相位η的取值范围是,则细分后的相位τ 0为T0 = n/2N (6)步骤二,初值计算;针对细分后的相位τ C1进行正弦/余弦函数值的计算,所述正弦/余弦值的计算采用了泰勒展开式,理论上可以展开成无穷多项,但为了硬件上容易实现,考虑到高次幂对所述正弦/余弦值的贡献很小,故取前三项参与运算,式(2)中Stl表示正弦函数的初值,式(3)中1+Q表示余弦函数初值;本文档来自技高网...

【技术保护点】
一种基于泰勒展开式的高精度正弦/余弦函数的计算方法,其特征在于,该方法包括步骤:步骤一,相位细分;将待求相位η细分为2N份,所述待求相位η的取值范围是[0,2π],细分后的相位τ0为:τ0=η/2N????????????????(1)步骤二,初值计算;针对所述细分后的相位τ进行正弦/余弦函数值的计算,所述正弦/余弦函数的计算采用了泰勒展开式,理论上可以展开成无穷多项,但在实现时,考虑到高次幂对正弦/余弦值的贡献很小,故取前三项参与运算,式(2)中S0表示正弦函数的初值,式(3)中1+C0表示余弦函数初值;S0=sinτ0≈τ0-τ033!+τ055!---(2)1+C0=cosτ0≈-τ022!+τ044!-τ066!---(3)步骤三,迭代求解;所述迭代次数为N,N是正整数,迭代结果是所述待求相位η的正弦/余弦函数值,根据(1)可知,η=2N×τ0;所述迭代过程中每次参与迭代的相位值都是前次参与迭代相位值的2倍,迭代公式基于正弦/余弦函数的倍角公式,因此第i+1(i=0,1,2,3…N?1)次迭代的相位τi+1的正弦/余弦函数可以表示成第i次迭代相位τi的正弦/余弦函数的线性组合的形式:Si+1=sinτi+1=sin(2τi)=2sinτicosτi=2Si(1+Ci)Ci+1=cosτi+1-1=cos(2τi)-1=-2sinτi2=-2Si2---(4)迭代结果可以直接表示为所述待求相位η的三角函数值的形式:sinη=SNcosη=CN+1---(5)...

【技术特征摘要】
1.一种基于泰勒展开式的高精度正弦/余弦函数的计算方法,其特征在于,该方法包括步骤步骤一,相位细分;将待求相位η细分为2N份,所述待求相位η的取值范围是[O, 2 31 ],细分后的相位τ。为τ ο = n/2N(I)步骤二,初值计算;针对所述细分后的相位τ进行正弦/余弦函数值的计算,所述正弦/余弦函数的计算采用了泰勒展...

【专利技术属性】
技术研发人员:曹章徐立军彭智聪宋伟
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有1条评论
  • 来自[广东省广州市电信] 2014年12月04日 17:23
    函数function最早由中国清朝数学家李善兰翻译出于其著作代数学之所以这么翻译他给出的原因是凡此变数中函彼变数者则此为彼之函数也即函数指一个量随着另一个量的变化而变化或者说一个量中包含另一个量
    0
1