CN103901940B - 一种产生数字余弦信号的方法 - Google Patents

一种产生数字余弦信号的方法 Download PDF

Info

Publication number
CN103901940B
CN103901940B CN201410127555.2A CN201410127555A CN103901940B CN 103901940 B CN103901940 B CN 103901940B CN 201410127555 A CN201410127555 A CN 201410127555A CN 103901940 B CN103901940 B CN 103901940B
Authority
CN
China
Prior art keywords
value
phase
cosine signal
point
digital cosine
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.)
Expired - Fee Related
Application number
CN201410127555.2A
Other languages
English (en)
Other versions
CN103901940A (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201410127555.2A priority Critical patent/CN103901940B/zh
Publication of CN103901940A publication Critical patent/CN103901940A/zh
Application granted granted Critical
Publication of CN103901940B publication Critical patent/CN103901940B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种产生数字余弦信号的方法,属于数字基带通信领域。该方法包括:计算用于产生数字余弦信号的相位值序列;在相位值序列中确定内插点;用坐标旋转数字计算方法产生内插点所对应的数字余弦信号;以及用余弦和差公式产生相位值序列内的其他点所对应的数字余弦信号。本发明方法在减少运算量的同时能够确保所产生的数字余弦信号的精度。

Description

一种产生数字余弦信号的方法
技术领域
本发明涉及信号产生技术领域,具体涉及一种产生数字余弦信号的方法。
背景技术
在数字通信系统中,通常需要产生数字余弦信号。
现有的产生数字余弦信号的一种方法是采用坐标旋转数字计算(CORDIC)方法。在2007年11月出版的《遥测遥控》上,题为《CORDIC方法研究与实现》,作者为耿丹的论文,以及在2008年6月公开的中南大学孔德元的硕士学位论文《针对正弦余弦计算的CORDIC方法优化及其FPGA实现》,都披露了如何采用坐标旋转数字计算(CORDIC)方法来产生数字余弦信号。
总体上讲,坐标旋转数字计算(CORDIC)方法利用如下两组迭代公式,通过多次迭代来计算一个相位值所对应的数字余弦信号值xN和正弦信号值yN
x i + 1 = x i - δ i y i 2 - i y i + 1 = y i + δ i x i 2 - i i = 0,1,2 , . . . , N - 1 - - - ( 1 )
zi+1=ziiarctan(2-i) i=0,1,2,…,N-1 (2)
其中,N表示预先设定的迭代次数,初始值x0可以视为常数0.607253,初始值y0为0,初始值z0就是需要生成正余弦信号的相位值,δi可以按照如下规则取值:
&delta; i = - 1 z i < 0 1 z i > 0 i = 0,1,2 , . . . , N - 1 .
坐标旋转数字计算方法实现简单,可以达到较高的精度。但是,用坐标旋转数字计算(CORDIC)方法生成的余弦信号的精度与该方法的迭代次数密切相关。也就是说,迭代次数越多,其准确度越高。但是,迭代次数的增加会导致运算量明显上升。
现有的另一种生成数字余弦信号的方法是利用如下的余弦和差公式:
cos(w0*n+p0)=cos(w0*(n-1)+p0)cos(w0)-sin(w0*(n-1)+p0)sin(w0)
其中,w0表示要生成的余弦信号的频率,p0表示要生成的余弦信号的初始相位,n可以是一个取值从0开始的计数器,cos(w0*n+p0)表示当前要生成的余弦信号值,cos(w0*(n-1)+p0)表示最近一个已经生成的余弦信号值。
通过余弦和差化积公式来生成数字余弦信号虽然运算量少于坐标旋转数字计算(CORDIC)方法,但是其精度较低。
发明内容
本发明的目的是提供一种产生数字余弦信号的方法,能够在运算量和信号的精度之间有一个较好的平衡。
本发明的一个实施例提供了一种产生数字余弦信号的方法,包括:确定用于生成数字余弦信号的相位值序列;在相位值序列中确定内插点;用坐标旋转数字计算方法产生内插点所对应的数字余弦信号值;用余弦和差公式生成相位值序列内的其他点所对应的数字余弦信号值。
本发明提供的产生数字余弦信号的方法,能够减少坐标旋转数字计算方法实现数字余弦信号的运算量,同时又能够克服通过余弦和差化积公式来生成数字余弦信号精度较低的缺点。
附图说明
图1所示为本发明的产生数字余弦信号的方法的一个实施例的流程图;
图2所示为本发明的产生数字余弦信号过程中的计算用于产生数字余弦信号的相位值序列的一个实施例的流程图;
图3所示为本发明的产生数字余弦信号过程中的在相位值序列中确定内插点的一个实施例的流程图;
图4所示为通过本发明方法产生的数字余弦信号与通过现有的坐标旋转数字计算方法产生的数字余弦信号之间的差值示意图;
图5所示为现有的坐标旋转数字计算方法产生的数字余弦信号的相位噪声示意图;
图6是本发明方法产生的数字余弦信号的相位噪声示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。
参考图1,图1所示为本发明的产生数字余弦信号的方法的一个实施例100的流程图。实施例100包括如下步骤101至104。
在步骤101中,计算用于产生数字余弦信号的相位值序列。
在本发明的一个实施例中,步骤101可以进一步包括如下步骤201至209。
参考图2,图2所示为本发明的产生数字余弦信号过程中的计算用于产生数字余弦信号的相位值序列的一个实施例的流程图。
在步骤201中,根据数字余弦信号的采样频率与数字余弦信号的频率之间的比值关系以及计数器的位数确定计数器的个数。
在本发明的一个实施例中,可以根据数字余弦信号的精度要求,设置采样频率,并通过采样频率除以数字余弦信号的频率取整后得到单周期内的采样点数,进而根据单周期内的采样点数与计数器的位数值确定计数器的个数。例如:当计数器位数为10位时,其最大可计数值为210=1024,即le3,那么如果单周期内的采样点数为1e6,则需要2个计数器;当计数器位数为8位时,其最大可计数值为28=256,那么如果单周期内的采样点数值为le6,则需要3个计数器。
在步骤202中,在计数器的控制下,根据采样频率、数字余弦信号的频率及数字余弦信号的初始相位产生多个相位值来组成所述相位值序列。
在本发明的一个实施例中,可以设置采样频率为fs,设置数字余弦信号的频率f,设置数字余弦信号的初始相位为p0,设置计数变量n,n的初始值为0,下一个n值为上一个n值加1;则数字余弦信号的相位值序列可以表示为2*pi*f/fs*n+p0。
在本发明的一个实施例中,当通过定点平台来实施本发明方法时,在步骤202之后,步骤101还可以进一步包含如下步骤203至204。
在步骤203中,将相位值序列中的相位值按照预先设定的相位值位宽转换成定点形式的相位值。在本发明的一个实施例中,预先设定的相位值位宽可以由整数部分的位宽加上小数部分的位宽组成。例如:可以设置整数部分的位宽为4位,第一位可以是符号位,后面是数据位;小数部分的位宽可以为8位或10位或12位或14位。当相位值序列中的相位值小数部分的位宽大于该预先设定的小数部分的位宽时,可以舍弃超出的部分。
在步骤204中,当定点形式的相位值的小数部分的值小于相位值位宽能够表示的最小值时,用最小值代替所述小数部分的值。例如:当预先设定的小数部分的位宽为5位的时候,可以表示的最小的数为即0.03125,对于小数部分的值小于0.03125的相位值,其小数部分都用0.03125表示。
数字余弦信号的输入相位值在转换成定点形式的相位值之后与理想的相位值之间是有误差的,并且会逐渐增大,所以需要采取方法减少或者补偿相位值误差,使相位值误差控制在一定的范围之内。
在本发明的一个实施例中,在步骤204之后,还可以通过如下步骤205到209对定点形式的相位值进行误差校正。
在步骤205中,在相位值序列中选取用于计算相位校正间隔的间隔计算点。
在本发明的一个实施例中,当对定点形式的相位值进行第一次校正时,可以将相位值序列中的第一个点作为间隔计算点。
在步骤206中,计算间隔计算点的相位值和理想相位值之间的差值。
在本发明的一个实施例中,可以用phase_ideal表示理想相位值,用phase_fixed表示间隔计算点的相位值。
在步骤207中,计算预先设定的相位校正值与差值的比值。
在本发明的一个实施例中,可以用p_error表示预先设定的相位校正值,p_error值除以(phase_ideal-phase_fixed)值并取整以后,得到该比值。
在本发明的一个实施例中,可以根据需要的数字余弦信号的精度要求设置预先设定的相位校正值,当要求的精度较高时,预先设定的相位校正值比较小,当要求的精度较低时,预先设定的相位校正值比较大。
在步骤208中,根据比值确定序列中的相位校正点的位置。
在本发明的一个实施例中,可以将步骤205中选取的用于计算相位校正间隔的间隔计算点加上步骤207中计算得到的比值来得到相位校正点的位置。例如:间隔计算点在相位值序列中的位置为第i个点,比值为j,则相位校正点的位置为相位值序列中的第i+j个点。
在步骤209中,用相位校正值对相位值序列中位于相位校正点之后的所有相位值进行校正。
将位于相位校正点之后的所有相位值加上预先设定的相位校正值即得到校正之后的相位值。
需要说明的是,通过上述步骤205至209,可以完成对定点形式的相位值的第一次校正。为了更好的校正相位值,还可以循环地执行上述步骤205至209,从而对定点形式的相位值进行多次校正,即:选取新的用于计算相位校正间隔的间隔计算点,来进一步校正定点形式的相位值。在本发明的一个实施例中,当步骤205至209循环执行时,在步骤205中,可以选取相位值序列中位于上一次循环执行时得到的相位校正点之后的第一个点作为新的间隔计算点。
在步骤102中,在相位值序列中确定内插点。
在本发明的一个实施例中,步骤102可以进一步包括如下步骤301至302。
参考图3,图3所示为本发明的产生数字余弦信号过程中的在相位值序列中确定内插点的一个实施例的流程图。
在步骤301中,将相位值序列中的第一个点确定为内插点。
在步骤302中,根据预先设定的内插点之间的间距,等间隔地从相位值序列中选出其余内插点。
内插点之间的间距越大,计算所得的数字余弦信号的误差越大。内插点之间的间距越小,计算所得的数字余弦信号的误差越小,但是运算量会随之增大。因此,需要合理的选择内插点之间的间距,在误差和运算量之间进行平衡。
在本发明的一个实施例中,可以根据数字余弦信号的精度要求,设置长度间隔N、采样频率fa、单周期内的采样点数M,M值为fs除以余弦信号的频率f取整所得;设置计数变量n,n=0、1、2……M-1;数字余弦信号的相位值可以表示为2*pi*f/fs*n+p0,p0为余弦信号的初始相位;用N对n取模,取模所得值等于0时,此时的n所对应的余弦信号的相位值2*pi*f/fs*n+p0即为所需要确定的内插点。
在步骤103中,用坐标旋转数字计算方法产生内插点所对应的数字余弦信号。
在本发明的一个实施例中,可以将坐标旋转数字计算方法算出的数字余弦信号值按照预先设定的余弦信号值位宽转换成定点形式的数字余弦信号值。
在本发明的一个实施例中,当定点形式的数字余弦信号值的小数部分的值小于预先设定的余弦信号值位宽能够表示的最小值时,可以用该最小值代替该小数部分的值。
在步骤104中,用余弦和差公式产生相位值序列内的其他点所对应的数字余弦信号。
在本发明的一个实施例中,可以将余弦和差公式算出的余弦信号值按照预先设定的余弦信号值位宽转换成定点形式的数字余弦信号值。
在本发明的一个实施例中,当定点形式的数字余弦信号值的小数部分的值小于预先设定的余弦信号值位宽能够表示的最小值时,用该最小值代替该小数部分的值。
至此描述了根据本发明实施例的产生数字余弦信号的方法。本发明方法能够在保持产生的数字余弦信号的精度的同时,降低运算量。
下表所示为现有的坐标旋转数字计算方法与本发明方法的运算量对比。
其中,坐标旋转数字计算方法的迭代次数为K,余弦信号的一个周期内的点数为M,调用坐标旋转数字计算方法的间隔为N。
很明显,与现有的坐标旋转数字计算方法相比,本发明方法的计算量要小的多。
发明人用Matlab对本发明所述的方法进行了一些仿真,具体结果如下:
图4所示为通过本发明方法产生的数字余弦信号与通过现有的坐标旋转数字计算方法产生的数字余弦信号之间的差值示意图。其中,余弦信号的频率f为220Hz,坐标旋转数字计算方法的迭代次数为16,采样频率fs为122.88MHz,初始相位为0,序列长度为500,小数部分定点位宽为14,内插间隔为20。从图4可以看出,本发明所公开的方法与现有的坐标旋转数字计算方法之间的误差在1.5*10-3范围之内,即:本发明方法产生的数字余弦信号与现有方法产生的数字余弦信号之间的精度差异不大。
图5所示为现有的坐标旋转数字计算方法产生的数字余弦信号的相位噪声示意图。图6是本发明方法产生的数字余弦信好的相位噪声示意图。其中,频率f为222Hz,坐标旋转数字计算方法的迭代次数为16,采样频率fs为122.88MHz,初始相位为0,序列长度为500,小数部分定点位宽为14,内插间隔为20,功率谱估计采用Welch法,窗口选择为分辨率较好的矩形窗。图中的的纵轴为功率谱密度,单位为dB/Hz,其数值越小,表示噪声越小,横轴为归一化的频率。对比图5和图6可以看出,在相同的输入频率、初始相位、迭代次数下,通过本发明方法产生的数字余弦信号的相位噪声与通过现有的坐标旋转数字计算方法产生的数字余弦信号的相位噪声差别不大。
虽然以上述较佳的实施例对本发明做出了详细的描述,但并非用上述实施例限定本发明。本领域的技术人员应当意识到在不脱离本发明技术方案所给出的技术特征和范围的情况下,对技术特征所作的增加、以本领域一些同样内容的替换,均应属本发明的保护范围。

Claims (6)

1.一种产生数字余弦信号的方法,其特征是,包括:
计算用于产生所述数字余弦信号的相位值序列;包括:
在所述相位值序列中选取用于计算相位校正间隔的间隔计算点;
计算所述间隔计算点的相位值和理想相位值之间的差值;
计算预先设定的相位校正值与所述差值的比值;
根据所述比值确定所述序列中的相位校正点的位置;以及
用所述相位校正值对所述相位值序列中位于所述相位校正点之后的所有相位值进行校正;
在所述相位值序列中确定内插点;
用坐标旋转数字计算方法产生所述内插点所对应的数字余弦信号;以及
用余弦和差公式产生所述相位值序列内的其他点所对应的数字余弦信号。
2.根据权利要求1所述的方法,其特征是,所述计算用于产生所述数字余弦信号的相位值序列的步骤进一步包括:
根据所述数字余弦信号的采样频率与所述数字余弦信号的频率之间的比值关系以及计数器的位数确定计数器的个数;以及
在所述计数器的控制下,根据所述采样频率、所述数字余弦信号的频率及所述数字余弦信号的初始相位产生多个相位值来组成所述相位值序列。
3.根据权利要求1或2所述的方法,其特征是,所述计算用于产生所述数字余弦信号的相位值序列的步骤进一步包括:
将所述相位值序列中的相位值按照预先设定的相位值位宽转换成定点形式的相位值;以及
当所述定点形式的相位值的小数部分的值小于所述相位值位宽能够表示的最小值时,用所述最小值代替所述小数部分的值。
4.根据权利要求1所述的方法,其特征是,所述计算用于产生所述数字余弦信号的相位值序列的步骤进一步包括:
将所述相位值序列中的第一个点和位于所述相位校正点之后的第一个点作为所述间隔计算点。
5.根据权利要求1所述的方法,其特征是,所述在所述相位值序列中确定内插点的步骤进一步包括:
将所述相位值序列中的第一个点确定为内插点;以及
根据预先设定的内插点之间的间距,等间隔地从所述相位值序列中选出其余内插点。
6.根据权利要求1所述的方法,其特征是,所述方法进一步包括:
将所述数字余弦信号按照预先设定的信号值位宽转换成定点形式的数字余弦信号;以及
当所述定点形式的数字余弦信号的小数部分的值小于所述信号值位宽能够表示的最小值时,用所述最小值代替所述小数部分的值。
CN201410127555.2A 2014-03-26 2014-03-26 一种产生数字余弦信号的方法 Expired - Fee Related CN103901940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410127555.2A CN103901940B (zh) 2014-03-26 2014-03-26 一种产生数字余弦信号的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410127555.2A CN103901940B (zh) 2014-03-26 2014-03-26 一种产生数字余弦信号的方法

Publications (2)

Publication Number Publication Date
CN103901940A CN103901940A (zh) 2014-07-02
CN103901940B true CN103901940B (zh) 2017-02-08

Family

ID=50993325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410127555.2A Expired - Fee Related CN103901940B (zh) 2014-03-26 2014-03-26 一种产生数字余弦信号的方法

Country Status (1)

Country Link
CN (1) CN103901940B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105932966B (zh) * 2016-04-21 2018-08-21 电子科技大学 一种产生数字正弦信号的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892213B2 (en) * 2000-09-28 2005-05-10 Seagate Technology Llc Digital sine/cosine wave generator
CN100458646C (zh) * 2006-06-15 2009-02-04 华为技术有限公司 三角函数值确定装置、方法及应用其的通信装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892213B2 (en) * 2000-09-28 2005-05-10 Seagate Technology Llc Digital sine/cosine wave generator
CN100458646C (zh) * 2006-06-15 2009-02-04 华为技术有限公司 三角函数值确定装置、方法及应用其的通信装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
一种高精度正余弦函数的FPGA实现方法;孙宇峰 等;《信息工程大学学报》;20070915;第8卷(第3期);第368-370页 *
基于CORDIC 改进算法的高速DDS电路设计;姚亚峰 等;《华中科技大学学报(自然科学版)》;20090215;第37卷(第2期);全文 *
正弦和余弦函数的一种混合式CORDIC算法实现;盛利元 等;《郑州大学学报(工学版)》;20080610;第29卷(第2期);全文 *

Also Published As

Publication number Publication date
CN103901940A (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
CN101807089B (zh) 输出信号偏移量任意可调的波形信号发生器
CN106197484B (zh) 一种正余弦编码器高精度信号处理系统
CN102045062B (zh) 一种基于Cordic算法的数字锁相环
CN103248356B (zh) 一种基于采用锁相环脉冲插值技术的计数器及实现方法
CN104993827A (zh) 模数转换器误差估计校正的装置及其方法
JP2007208969A (ja) ローカルクロック補正方法および回路
CN105245320B (zh) LTE上行参考信号的q阶ZC序列的生成方法及装置
CN103969500A (zh) 智能电网模拟量采集装置、方法及系统
CN104268123A (zh) 一种离散数字信号任意步长的滑动离散傅里叶变换方法
CN103196466B (zh) 传感器输出修正电路和修正装置及传感器输出修正方法
CN109521992B (zh) 一种无乘法器的基于cordic算法的线性调频信号生成方法
CN102820892B (zh) 一种用于并行bch编码的电路、编码器及方法
CN104202016A (zh) 一种基于查表法的任意倍可变的信号升采样实现方法及系统
CN103901940B (zh) 一种产生数字余弦信号的方法
TWI420807B (zh) 通訊系統之任意移頻器
CN102540136B (zh) 快速校正电能表相位误差的方法及其装置
TW201303532A (zh) 時間量測方法及系統
CN103155476A (zh) 通过内插法使用固定频率模数转换量化所采样的输入
CN104035320B (zh) 一种实现时间间隔测量的系统及方法
CN205490487U (zh) 一种基于相位累加器的分数分频器
CN104133409A (zh) 一种对称性可调的三角波合成装置
CN102394644B (zh) 一种余弦信号的拟合方法
CN102566963A (zh) 一种fpga进行数据处理的方法
CN110618729A (zh) 波特率发生器、通信设备及波特率时钟信号的生成方法
CN201359721Y (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170208