[go: up one dir, main page]

CN103365827A - 一种高精度正弦/余弦函数的计算方法 - Google Patents

一种高精度正弦/余弦函数的计算方法 Download PDF

Info

Publication number
CN103365827A
CN103365827A CN 201310263877 CN201310263877A CN103365827A CN 103365827 A CN103365827 A CN 103365827A CN 201310263877 CN201310263877 CN 201310263877 CN 201310263877 A CN201310263877 A CN 201310263877A CN 103365827 A CN103365827 A CN 103365827A
Authority
CN
China
Prior art keywords
tan
phase
value
iterative
sine
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.)
Pending
Application number
CN 201310263877
Other languages
English (en)
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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN 201310263877 priority Critical patent/CN103365827A/zh
Publication of CN103365827A publication Critical patent/CN103365827A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种高精度正弦/余弦函数的计算方法,运用正切运算的泰勒展式得到高精度的正弦/余弦函数值;所述方法包括:设计三个子模块,分别是,相位细分模块,初值计算模块和迭代求解模块;其中,相位细分模块将需要求取三角函数相位值分为N份,N为正整数;初值计算模块计算得出细分后相位的正切值,并作为迭代初值;迭代求解模块将初值代入计算方程式进行迭代计算,迭代次数越多,所得正弦/余弦值计算精度越高;最后,运用正切与正余弦的变换公式可将迭代结果转换为对应待求相位的正弦/余弦值。

Description

一种高精度正弦/余弦函数的计算方法
技术领域
本发明涉及数字信号发生领域,尤其涉及一种高精度正弦/余弦函数值的计算方法。
背景技术
直接数字频率合成现已成为信号发生的重要设计方法,它的主要优点是输出频率、相位和幅度能够在数字处理器的控制下精确而快速地变换。相位-幅度变换器是直接数字频率合成器的重要组成部分,它的精度直接决定了输出正弦/余弦波的精度和纯度,因此,对正弦/余弦值的精确计算是重中之重。
目前,正弦/余弦函数数值的计算方法主要有查表法、插值法和CORDIC算法。在对相位和频率分辨率以及输出精度要求很高的场合,查表法会消耗大量的存储单元,这不仅增大了能耗,而且增加了芯片面积。CORDIC算法运用坐标旋转求取相应的正余弦值,它解决了资源的消耗问题,且非常适合在FPGA上实现,但CORDIC算法在固定迭代次数的情况下,计算的精度随待计算角度的变化而变化。因此,CORDIC算法在频率变化比较大的场合满足不了高精度的要求。
使用正弦和余弦的泰勒展开式或欧拉公式进行计算也可以满足高精度的要求,例如一种基于欧拉公式的高精度正弦/余弦函数计算方法(申请号:201210529384.7)和一种基于泰勒展开式的高精度正弦/余弦函数计算方法(申请号:201210527993.9)。但是基于正弦和余弦的泰勒展开式的计算方法在初值计算和迭代求解中需要同时计算正弦和余弦值,而基于欧拉公式的计算方法在初值计算和迭代求解中也需要在同时计算虚部和实部。使用基于正切泰勒展开式的计算方法在在初值计算和迭代求解中只需计算正切值就可以同时得到需要的正弦和余弦值。
直接数字频率合成在高端技术和军事技术,以及通信技术中有着较为广泛的需求,这就对它极微小的频率调谐和相位分辨能力,以及在两个频率之间的“跳跃”能力,提出了较高的要求,因而,设计一种计算精度与输入角度无关的正弦/余弦计算方法尤为重要。
发明内容
本发明的目的在于提出一种高精度正弦/余弦函数的计算方法,实现计算精度与输入角度无关的正弦/余弦计算方法。所述方法依据精细积分原理,可以求得在[0,2π]间任意相位高精度的正弦/余弦值。
本发明的技术方案是:
所述方法通过细分待求相位,根据正切泰勒展开公式求得小相位下的迭代初值,并迭代相应次数N(N为正整数),将迭代结果进行转换,进而得到所述待求相位下的正弦/余弦值;所述方法包括以下步骤:
步骤一,相位细分;将待求相位η细分为2N份,所述待求相位η的取值范围是[0,2π],细分后的相位τ0为:
τ0=η/2N            (1)
步骤二,初值计算;针对细分后的相位代入正切的泰勒展开式进行复数值的计算,所述复数值的计算采用了泰勒展开式,理论上可以展开成无穷多项,但在实现时,考虑到高次幂对复数值的贡献很小,故取前四项参与运算:
tan τ 0 ≈ τ 0 + τ 0 3 3 + 2 τ 0 5 15 + 17 τ 0 7 315 - - - ( 2 )
tanτ0就是所述的迭代初值。
步骤三,迭代求解;所述迭代次数为步骤一中定义的N,N是正整数,迭代结果进行变换后得到待求相位η的正弦/余弦值,根据(3)可知,η=2N×τ0,迭代过程中每次参与迭代相位值都是前次参与迭代相位值的2倍,迭代公式基于正弦的倍角公式,第i+1(i=0,1,2,3,…N-1)次迭代的相位τi+1的正切值可以用第i次迭代相位τi的正切值计算得出,计算公式为:
tan τ i + 1 = 2 tan τ i 1 - tan 2 τ i - - - ( 4 )
所述迭代公式为
Ti+1=2Ti/(1-Ti 2)            (5)
通过N-1次迭代计算得到
Figure BDA00003421949700033
的正切计算值为
tan η 2 = T N - 1 - - - ( 6 )
再通过正切与正/余弦的变换公式得到所述待求相位η的三角函数值
cos η = 1 - tan 2 η 2 1 + tan 2 η 2 sin η = 2 tan η 2 1 + tan 2 η 2 - - - ( 7 )
进一步的,所述的一种基于欧拉公式的高精度正弦/余弦函数的计算方法,对于任意一个相位值,计算误差都是独立的,不存在相位值之间的累积误差。
进一步的,所述的一种基于欧拉公式的高精度正弦/余弦函数的计算方法,迭代次数越多,正弦/余弦函数值越精确。
附图说明
图1为本发明算法框图;
图2为迭代计算流程图;
图3为迭代次数与精度的对应关系。
具体实施方式
参见图1,一种高精度正弦/余弦函数的计算方法的算法框图。
所述方法包括以下步骤:
步骤一,相位细分;将待求相位η细分为2N份,所述待求相位η的取值范围是[0,2π],细分后的相位τ0为:
τ0=η/2N            (8)
步骤二,初值计算;针对细分后的相位代入正切的泰勒展开式进行复数值的计算,所述复数值的计算采用了泰勒展开式,理论上可以展开成无穷多项,但在实现时,考虑到高次幂对复数值的贡献很小,故取前四项参与运算:
tan τ 0 ≈ τ 0 + τ 0 3 3 + 2 τ 0 5 15 + 17 τ 0 7 315 - - - ( 9 )
tanτ0就是所述的迭代初值。
步骤三,迭代求解;所述迭代次数为步骤一中定义的N,N是正整数,迭代结果进行变换后得到待求相位η的正弦/余弦值,根据(1)可知,η=2N×τ0,迭代过程中每次参与迭代相位值都是前次参与迭代相位值的2倍,迭代公式基于正弦的倍角公式,第i+1(i=0,1,2,3,…N-1)次迭代的相位τi+1的正切值可以用第i次迭代相位τi的正切值计算得出,计算公式为:
tan τ i + 1 = 2 tan τ i 1 - tan 2 τ i - - - ( 10 )
所述迭代公式为
Ti+1=2Ti/(1-Ti 2)            (11)
通过N-1次迭代计算得到
Figure BDA00003421949700061
的正切计算值为
tan η 2 = T N - 1 - - - ( 12 )
再通过正切与正/余弦的变换公式得到所述待求相位η的三角函数值
cos η = 1 - tan 2 η 2 1 + tan 2 η 2 sin η = 2 tan η 2 1 + tan 2 η 2 - - - ( 13 )
所述的一种高精度正弦/余弦函数的计算方法,对于任意一个相位值,计算误差都是独立的,不存在相位值之间的累积误差。迭代次数越多,正弦/余弦函数值越精确。计算结果与32位有效数字的正弦/余弦准确值的相对误差与迭代次数关系参见图3。
以上对本发明及其实施方式的描述,并不局限于此,附图中所示仅是本发明的实施方式之一。在不脱离本发明创造宗旨的情况下,不经创造地设计出与该技术方案类似的结构或实施例,均属本发明保护范围。

Claims (2)

1.一种高精度正弦/余弦函数的计算方法,其特征在于,该方法包括下述步骤:
步骤一,相位细分;将待求相位η细分为2N份,所述待求相位η的取值范围是[0,2π],细分后的相位τ0为:
τ0=η/2N            (1)
步骤二,初值计算;针对细分后的相位代入正切的泰勒展开式进行复数值的计算,所述复数值的计算采用了泰勒展开式,理论上可以展开成无穷多项,但在实现时,考虑到高次幂对复数值的贡献很小,故取前四项参与运算:
tan τ 0 ≈ τ 0 + τ 0 3 3 + 2 τ 0 5 15 + 17 τ 0 7 315 - - - ( 2 )
tanτ0就是所述的迭代初值。
步骤三,迭代求解;所述迭代次数为步骤一中定义的N,N是正整数,迭代结果进行变换后得到待求相位η的正弦/余弦值,根据(1)可知,η=2N×τ0,迭代过程中每次参与迭代相位值都是前次参与迭代相位值的2倍,迭代公式基于正弦的倍角公式,第i+1(i=0,1,2,3,…N-1)次迭代的相位τi+1的正切值可以用第i次迭代相位τi的正切值计算得出,计算公式为:
tan τ i + 1 = 2 tan τ i 1 - tan 2 τ i - - - ( 3 )
所述迭代公式为
Ti+1=2Ti/(1-Ti 2)            (4)
通过N-1次迭代计算得到
Figure FDA00003421949600013
的正切计算值为
tan η 2 = T N - 1 - - - ( 5 )
再通过正切与正/余弦的变换公式得到所述待求相位η的三角函数值
cos η = 1 - tan 2 η 2 1 + tan 2 η 2 sin η = 2 tan η 2 1 + tan 2 η 2 - - - ( 6 )
2.根据权利要求书1所述的一种高精度正弦/余弦函数的计算方法,其特征在于,迭代子模块的迭代次数越多,所得的正弦/余弦值的精度越高。
CN 201310263877 2013-06-27 2013-06-27 一种高精度正弦/余弦函数的计算方法 Pending CN103365827A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201310263877 CN103365827A (zh) 2013-06-27 2013-06-27 一种高精度正弦/余弦函数的计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201310263877 CN103365827A (zh) 2013-06-27 2013-06-27 一种高精度正弦/余弦函数的计算方法

Publications (1)

Publication Number Publication Date
CN103365827A true CN103365827A (zh) 2013-10-23

Family

ID=49367213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201310263877 Pending CN103365827A (zh) 2013-06-27 2013-06-27 一种高精度正弦/余弦函数的计算方法

Country Status (1)

Country Link
CN (1) CN103365827A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598432A (zh) * 2013-10-30 2015-05-06 德克萨斯仪器股份有限公司 用于求解数学函数的计算机及方法
CN104636632A (zh) * 2015-03-10 2015-05-20 中国人民解放军国防科学技术大学 高精度相位小存储量查表计算方法
CN107783756A (zh) * 2016-08-31 2018-03-09 深圳市中兴微电子技术有限公司 一种获取角度相关值的方法和装置
CN111355679A (zh) * 2020-03-18 2020-06-30 苏州华兴源创科技股份有限公司 一种数字通信的相角计算方法、装置和系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598432A (zh) * 2013-10-30 2015-05-06 德克萨斯仪器股份有限公司 用于求解数学函数的计算机及方法
US10430494B2 (en) 2013-10-30 2019-10-01 Texas Instruments Incorporated Computer and methods for solving math functions
CN104598432B (zh) * 2013-10-30 2022-04-15 德克萨斯仪器股份有限公司 用于求解数学函数的计算机及方法
CN104636632A (zh) * 2015-03-10 2015-05-20 中国人民解放军国防科学技术大学 高精度相位小存储量查表计算方法
CN107783756A (zh) * 2016-08-31 2018-03-09 深圳市中兴微电子技术有限公司 一种获取角度相关值的方法和装置
CN111355679A (zh) * 2020-03-18 2020-06-30 苏州华兴源创科技股份有限公司 一种数字通信的相角计算方法、装置和系统

Similar Documents

Publication Publication Date Title
Sodagar et al. Mapping from phase to sine-amplitude in direct digital frequency synthesizers using parabolic approximation
CN103365827A (zh) 一种高精度正弦/余弦函数的计算方法
CN105974997B (zh) 一种正弦波信号的数字实现方法
CN107102841A (zh) 一种坐标变换并行计算方法和装置
CN107436619B (zh) 一种高精度低代价数字正弦波发生装置
CN103873018A (zh) 一种生成谐波信号的方法及谐波信号发生器
CN103065039B (zh) 一种基于欧拉公式的高精度正弦/余弦函数计算方法
Prasad et al. FPGA implementation of pipelined CORDIC based quadrature direct digital synthesizer with improved SFDR
RU2536387C1 (ru) Формирователь сигнала треугольной формы
CN103049427A (zh) 一种基于泰勒展开式的高精度正弦/余弦函数计算方法
Shan et al. Design and implementation of a FPGA-based direct digital synthesizer
CN107943204B (zh) 数字频率合成方法以及装置
CN105866483B (zh) 一种用dsp控制器生成正弦波信号的实现方法
Mohanty et al. Design and Implementation of High Frequency Functional Signal Generator using DDFS based on 16-stage pipelined CORDIC architecture
Ellaithy et al. Accurate piecewise uniform approximation logarithmic/antilogarithmic converters for GPU applications
Suryavanshi et al. A comparative study of direct digital frequency synthesizer architectures in 180nm CMOS
Mandal et al. VLSI architecture design and implementation for application specific CORDIC processor
Mandal et al. Design and implementation of digital demodulator for frequency modulated CW RADAR
Ashrafi et al. Comments on" A 13-bit resolution ROM-less direct digital frequency synthesizer based on a trigonometric quadruple angle formula"
Sathe et al. Efficient CORDIC Architectures for FFT Based All Digital Resonator Frequency Estimation
CN103914625A (zh) 基于cordic算法的无线信号测向方法
Mandal et al. FPGA implementation of pipelined CORDIC for digital demodulation in FMCW radar
Verma et al. Pipelined CORDIC Architecture Based DDFS Design and Implementation
Pradeep et al. Direct Digital Synthesis (DDS) Model for High-Frequency Applications
Hsiao et al. Designs of angle-rotation in digital frequency synthesizer/mixer using multi-stage architectures

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20131023

RJ01 Rejection of invention patent application after publication