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

文档序号:6576108阅读:1647来源:国知局
专利名称:一种基于泰勒展开式的高精度正弦/余弦函数计算方法
技术领域
本发明涉及数字信号发生领域,尤其涉及一种高精度正弦/余弦函数值的计算方法。
背景技术
正弦/余弦函数数值的计算在直接数字频率合成中具有重要的作用,其计算精度直接影响信号源的精度,进而影响到相应测控系统的系统精度。目前,在数字信号发生领域,正弦/余弦函数数值的计算方法主要有查表法、插值法和CORDIC算法。在对相位和频率分辨率以及输出精度要求很高的场合,查表法会消耗大量的存储单元,这不仅增大了能耗,而且增加了芯片面积。CORDIC算法运用坐标旋转求取相应的正余弦值,它解决了资源的消耗问题,且非常适合在FPGA上实现,但CORDIC算法在固定迭代次数的情况下,计算的精度随待计算角度的变化而变化。因此,CORDIC算法在频率变化比较大的场合满足不了高精度的要求。为了满足高精度正弦/余弦信号发生的要求,设计一种计算精度与输入角度无关的正弦/余弦计算方法尤为重要。

发明内容
本发明的目的在于提出一种基于泰勒展开式的高精度正弦/余弦函数的计算方法,实现计算精度与输入角度无关的正弦/余弦计算方法。所述方法运用欧拉公式将精细积分的求解对象从指数函数变换为正弦/余弦函数,从而求得在
间任意相位高精度的正弦/余弦值。 本发明的技术方案是所述方法通过细分待求相位,求得小角度下的正弦/余弦值,并迭代相应次数N,N为正整数,进而求得所述待求相位下的正弦/余弦值;所述方法包括以下步骤步骤一,相位细分;将待求相位η细分为2Ν份,N为正整数。待求相位η的取值范围是
,则细分后的相位τ 0为T0 = n/2N (6)步骤二,初值计算;针对细分后的相位τ C1进行正弦/余弦函数值的计算,所述正弦/余弦值的计算采用了泰勒展开式,理论上可以展开成无穷多项,但为了硬件上容易实现,考虑到高次幂对所述正弦/余弦值的贡献很小,故取前三项参与运算,式(2)中Stl表示正弦函数的初值,式(3)中1+Q表示余弦函数初值;
权利要求
1.一种基于泰勒展开式的高精度正弦/余弦函数的计算方法,其特征在于,该方法包括步骤步骤一,相位细分;将待求相位η细分为2N份,所述待求相位η的取值范围是[O, 2 31 ],细分后的相位τ。为τ ο = n/2N(I)步骤二,初值计算;针对所述细分后的相位τ进行正弦/余弦函数值的计算,所述正弦/余弦函数的计算采用了泰勒展开式,理论上可以展开成无穷多项,但在实现时,考虑到高次幂对正弦/余弦值的贡献很小,故取前三项参与运算,式⑵中Stl表示正弦函数的初值,式⑶中1+Q表示余弦函数初值;
2.根据权利要求书I所述的一种高精度正弦/余弦的计算方法,其特征在于,迭代子模块的迭代次数越多,所得的正弦/余弦值的精度越高,但较少的迭代次数已经达到较高精度。
全文摘要
本发明涉及一种基于泰勒展开式的高精度正弦/余弦函数计算方法,具体包括三个子模块,以产生高精度的正弦/余弦函数值;三个子模块分别是,相位细分模块,初值计算模块和迭代求解模块;其中,相位细分模块将需要求取三角函数相位值分为N份,N为正整数;初值计算模块计算得出细分后相位的三角函数值,并作为迭代初值;迭代求解模块根据计算方程式将初值迭代相应的步数,迭代结果即对应于三角函数的正弦和余弦值。本发明采用较少的迭代次数即可获得高精度的正弦及余弦数值。
文档编号G06F17/15GK103049427SQ20121052799
公开日2013年4月17日 申请日期2012年12月10日 优先权日2012年12月10日
发明者曹章, 徐立军, 彭智聪, 宋伟 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1