CN103065039B - 一种基于欧拉公式的高精度正弦/余弦函数计算方法 - Google Patents

一种基于欧拉公式的高精度正弦/余弦函数计算方法 Download PDF

Info

Publication number
CN103065039B
CN103065039B CN201210529384.7A CN201210529384A CN103065039B CN 103065039 B CN103065039 B CN 103065039B CN 201210529384 A CN201210529384 A CN 201210529384A CN 103065039 B CN103065039 B CN 103065039B
Authority
CN
China
Prior art keywords
tau
iterative
formula
sine
phase
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
CN201210529384.7A
Other languages
English (en)
Other versions
CN103065039A (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.)
Anhui aotaiqi Intelligent Water Technology Co.,Ltd.
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 CN201210529384.7A priority Critical patent/CN103065039B/zh
Publication of CN103065039A publication Critical patent/CN103065039A/zh
Application granted granted Critical
Publication of CN103065039B publication Critical patent/CN103065039B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

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

Description

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

Claims (2)

1.一种基于欧拉公式的高精度正弦/余弦函数计算方法,主要用于数字信号发生领域,解决高精度直接数字频率合成的问题,是一种计算精度与输入角度无关的正弦/余弦值计算方法,其特征在于,该方法包括下述步骤:
步骤一,相位细分;将待求相位η细分为2N份,所述待求相位η的取值范围是[0,2π],细分后的相位τ0为:
τ0=η/2N(1)
步骤二,初值计算;针对细分后的相位代入欧拉公式进行复数值的计算,所述复数值的计算采用了泰勒展开式,理论上可以展开成无穷多项,但在实现时,考虑到高次幂对复数值的贡献很小,故取前五项参与运算:
cosτ 0 + i sinτ 0 = e iτ 0 ≈ 1 + iτ 0 + ( iτ 0 ) 2 2 + ( iτ 0 ) 3 6 + ( iτ 0 ) 4 24 - - - ( 2 )
T 0 = iτ 0 + ( iτ 0 ) 2 2 + ( iτ 0 ) 3 6 + ( iτ 0 ) 4 24 - - - ( 3 )
e iτ 0 = 1 + T 0 - - - ( 4 )
其中,T0就是所述的迭代初值,
步骤三,迭代求解;所述迭代次数为步骤一中定义的N,迭代结果进行变换后得到待求相位η的正弦/余弦值,根据(1)可知,η=2N×τ0,所述变换依据欧拉公式进行;迭代过程中每次参与迭代相位值都是前次参与迭代相位值的2倍,迭代公式基于多项式的平方公式,第i+1次迭代的相位τi+1的复数值与第i次迭代相位τi的复数值具有相同的表现形式:
e iτ i = 1 + T i e iτ i + 1 = e i ( 2 × τ i ) = ( 1 + T i ) 2 = 1 + 2 T i + T i 2 = 1 + T i + 1 - - - ( 5 )
所述迭代公式为
Ti+1=2Ti+Ti 2(6)
所得正弦/余弦计算值为
cos η = r e a l ( e i η ) = r e a l ( e iτ N ) = r e a l ( 1 + T N ) sin η = i m g ( e i η ) = i m g ( e iτ N ) = i m g ( 1 + T N ) - - - ( 7 )
其中,i=0,1,2,3,…N-1。
2.根据权利要求书1所述的一种基于欧拉公式的高精度正弦/余弦函数计算方法,其特征在于,迭代子模块的迭代次数越多,所得的正弦/余弦值的精度越高。
CN201210529384.7A 2012-12-10 2012-12-10 一种基于欧拉公式的高精度正弦/余弦函数计算方法 Active CN103065039B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210529384.7A CN103065039B (zh) 2012-12-10 2012-12-10 一种基于欧拉公式的高精度正弦/余弦函数计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210529384.7A CN103065039B (zh) 2012-12-10 2012-12-10 一种基于欧拉公式的高精度正弦/余弦函数计算方法

Publications (2)

Publication Number Publication Date
CN103065039A CN103065039A (zh) 2013-04-24
CN103065039B true CN103065039B (zh) 2016-02-24

Family

ID=48107667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210529384.7A Active CN103065039B (zh) 2012-12-10 2012-12-10 一种基于欧拉公式的高精度正弦/余弦函数计算方法

Country Status (1)

Country Link
CN (1) CN103065039B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105974997B (zh) * 2016-04-29 2018-08-14 洛阳理工学院 一种正弦波信号的数字实现方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102324106A (zh) * 2011-06-02 2012-01-18 武汉大学 一种顾及地表光谱信息的sfs三维重建加密稀疏dem方法
CN102506870A (zh) * 2011-11-25 2012-06-20 西北工业大学 基于角速度的欧拉角埃米特指数近似输出方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005050063A (ja) * 2003-07-31 2005-02-24 Canon Inc 流体の数値計算方法及び装置及び制御プログラム及び記憶媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102324106A (zh) * 2011-06-02 2012-01-18 武汉大学 一种顾及地表光谱信息的sfs三维重建加密稀疏dem方法
CN102506870A (zh) * 2011-11-25 2012-06-20 西北工业大学 基于角速度的欧拉角埃米特指数近似输出方法

Also Published As

Publication number Publication date
CN103065039A (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
CN101807089B (zh) 输出信号偏移量任意可调的波形信号发生器
CN102045062B (zh) 一种基于Cordic算法的数字锁相环
CN107819456B (zh) 一种基于fpga进位链的高精度延时产生器
CN102324933A (zh) 一种正交低杂散直接数字频率合成器
CN103488245B (zh) Dds中的相位幅度转换方法以及装置
CN103365827A (zh) 一种高精度正弦/余弦函数的计算方法
CN101109973A (zh) 一种基于直接数字频率合成器的波形发生器
CN104202023A (zh) 一种基于fpga的单极性spwm脉冲信号实现方法
CN103065039B (zh) 一种基于欧拉公式的高精度正弦/余弦函数计算方法
RU167428U1 (ru) Преобразователь синусно-косинусного сигнала в код положения
Perišić et al. Phase shifter based on a Recursive Phase Locked Loop of the second order
CN104102471A (zh) 一种应用fpga定点化技术实现指数cordic算法收敛域扩张的方法
CN101854172B (zh) 一种基于二维正弦表的数控振荡器并行设计方法
CN103049427A (zh) 一种基于泰勒展开式的高精度正弦/余弦函数计算方法
CN103095297B (zh) 直接数字频率合成器产生精准频率的方法
RU2659468C1 (ru) Следящий синусно-косинусный преобразователь угла в код
CN105866483B (zh) 一种用dsp控制器生成正弦波信号的实现方法
CN107943204B (zh) 数字频率合成方法以及装置
CN102006067B (zh) 一种带波形修正rom的dds电路结构
CN111988035B (zh) 一种高速高精度nco电路
Wang et al. High-precision design of DDS Based on FPGA
Shan et al. Design and implementation of a FPGA-based direct digital synthesizer
CN104270095B (zh) 基于cpld的单片方波信号倍频器及输出任意倍频信号的方法
CN113162618B (zh) Dds无限跳频方法及***
CN102571077A (zh) 获得特定高精度时钟的方法及电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210709

Address after: 247000 No.22 Liujin Avenue, Chizhou economic and Technological Development Zone, Chizhou City, Anhui Province

Patentee after: Anhui aotaiqi Intelligent Water Technology Co.,Ltd.

Address before: 100191 No. 37, Haidian District, Beijing, Xueyuan Road

Patentee before: BEIHANG University

TR01 Transfer of patent right