CN102789446A - 基于cordic算法的dds信号杂散抑制方法及系统 - Google Patents
基于cordic算法的dds信号杂散抑制方法及系统 Download PDFInfo
- Publication number
- CN102789446A CN102789446A CN2012102402626A CN201210240262A CN102789446A CN 102789446 A CN102789446 A CN 102789446A CN 2012102402626 A CN2012102402626 A CN 2012102402626A CN 201210240262 A CN201210240262 A CN 201210240262A CN 102789446 A CN102789446 A CN 102789446A
- Authority
- CN
- China
- Prior art keywords
- cordic
- signal
- dds
- algorithm
- control signal
- 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
Links
Images
Landscapes
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
Abstract
本发明公开了一种基于CORDIC算法的DDS信号杂散抑制方法及系统,方法中,通过CORDIC算法计算出信号的正、余弦信号来完成DDS系统中相位/幅度转换;通过CORDIC变换把所有角度都变换到第一象限,然后根据输出数据符号,判断信号所在象限,再进行变换,从而达到覆盖(-π,π)完整周期。系统,包括控制电路、前处理单元、CORDIC运算器和后处理单元;方法和系统用CORDIC算法直接计算出信号的正余弦值不需要耗费太多的ROM资源,只需要进行简单的移位和加减法等迭代操作就能完成,并且在VLSI芯片上也可以很容易的实现,非常适合于对信号频率分辨率和精度要求极高的场合。
Description
技术领域
本发明涉及一种基于CORDIC算法的DDS信号杂散抑制方法及系统,是一种电信号的产生及处理方法,属于电子信息学科中的电路与信息处理技术领域。
背景技术
在数字信号处理领域,经常会碰到矢量旋转、三角函数、指数函数等基本函数的运算问题。
相位/幅度转换模块是DDS系统的核心模块之一,通常采用ROM查表法和计算法两种实现方式。ROM查表法是指在ROM表中预先存储完整的或者部分的信号值,把相位累加器输出的相位序列作为获取ROM查找表中信号值的地址,从而完成相位到幅度的转换。计算法是指对相位累加器输出的相位序列,直接进行数学计算得到对应的信号值,从而实现相位/幅度转换。计算法有Taylor级数近似算法和CORDIC算法。Taylor级数近似算法是对信号函数在某一处进行Taylor级数展开,取其前三项分别赋予不同的权值,然后将它们存入三个不同的ROM中,最后由运算电路进行合成。Taylor级数近似算法可以得到64:1的压缩比,Taylor级数近似算法已应用于QUALCOMM公司的Q2334芯片中。Taylor级数近似算法需要用到乘法器,因此,在硬件的复杂度和速度上受到一定的限制。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供一种基于CORDIC算法的DDS信号杂散抑制方法及系统。CORDIC算法是一种位递归算法,这使得它在速度上得到了很大的提高。CORDIC算法只要通过简单的移位和加减法等迭代操作就可以完成以上运算,并且只要迭代的次数足够大,得到结果的精度就可以足够高。用CORDIC算法直接计算出信号的正、余弦信号来完成相位/幅度转换,不需要对相位累加器输出的相位序列进行截断,改善了DDS系统由相位截断和幅度量化带来的杂散,也不需要耗费太多的ROM资源,只需要进行简单的移位和加减法等迭代操作,因而在VLSI芯片上容易的实现。
技术方案:一种基于CORDIC算法的DDS信号杂散抑制方法,包括如下步骤:
步骤1,通过CORDIC算法计算出信号的正、余弦信号来完成DDS系统中相位/幅度转换;不需要对相位累加器输出的相位序列进行截断。
步骤2,首先通过CORDIC变换把所有角度都变换到第一象限,然后根据输出数据符号,判断信号所在象限,再进行变换,从而达到覆盖(-π,π)完整周期,并提高了CORDIC算法运算速度,降低逻辑单元的占有量。
一种基于CORDIC算法的DDS信号杂散抑制系统,包括控制电路、前处理单元、CORDIC运算器和后处理单元;对于16位的相位序列b15b14b13…b0,将相位序列b15b14b13…b0的两个高位b15b14输入到控制电路;所述控制电路分别输出控制信号Inv1、控制信号Inv2和控制信号Inv3,控制电路将控制信号Inv3发送给前处理单元,前处理单元根据接收到的控制信号Inv3对相位序列b15b14b13…b0的低14位进行处理,并处理后的相位角输入到CORDIC运算器中;所述控制电路输出的控制信号Inv1和控制信号Inv2经延时后与CORDIC运算器计算后输出的信号,在后处理单元中处理后输出。
所述控制电路包括一个异或门,相位序列b15b14b13…b0的两个高位b15b14经异或门处理后输出控制信号Inv3,相位序列b15b14b13…b0的两个高位b15b14经控制电路直接输出控制信号Inv1和控制信号Inv2。
所述前处理单元通过一个求补器和一个二选一的选择器来实现角度转换,即当控制电路输入前处理单元的控制信号Inv3为“0”时,输入相位序列b15b14b13…b0保持不变,当Inv3为“1”时,输出相位序列b15b14b13…b0求补,其中,求补器的输出端与选择器输入端连接;选择器的输出端与CORDIC运算器的输入端连接。
所述CORDIC运算器由n级CORDIC运算器模块连接成,CORDIC运算器通过移位、加减法的迭代计算三角函数值;其中n=14。
所述后处理单元包括两个求补器和两个二选一的选择器;所述CORDIC运算器的输出端分别接两个求补器和两个选择器的输入端;所述每个求补器对应一个选择器,求补器的输出端接选择器的输入端。
有益效果:与现有技术相比,本发明所提供的基于CORDIC算法的DDS信号杂散抑制方法及系统,采用CORDIC算法,CORDIC算法是一种位递归算法,这使得它在速度上有了很大的提高。用CORDIC算法直接计算出信号的正余弦值不需要耗费太多的ROM资源,只需要进行简单的移位和加减法等迭代操作就能完成,并且在VLSI芯片上也可以很容易的实现。对信号频率分辨率要求很高的场合,CORDIC算法不需要将相位累加器输出的相位序列进行截断,可以将相位序列直接输入CORDIC运算器进行计算,因此,CORDIC算法不会给DDS系统引入相位截断误差。CORDIC算法还可以通过增加运算单元的级数来提高输出信号的精度,因此,CORDIC算法非常适合于对信号频率分辨率和精度要求极高的场合。
附图说明
图1为本发明实施例的结构框图;
图2为本发明实施例中控制电路的RTL图;
图3为本发明实施例中的n级CORDIC算法的流水线结构图;
图4为本发明实施例中的一级CORDIC运算器模块的RTL图;
图5为本发明实施例的CORDIC运算器RTL图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
本实施例中,基于CORDIC算法的DDS信号杂散抑制方法,通过CORDIC算法计算出信号的正、余弦信号来完成DDS系统中相位/幅度转换;不需要对相位累加器输出的相位序列进行截断。通过CORDIC变换把所有角度都变换到第一象限,然后根据输出数据符号,判断信号所在象限,再进行变换,从而达到覆盖(-π,π)完整周期,并提高了CORDIC算法运算速度,降低逻辑单元的占有量。
如图1所述,其为实现基于CORDIC算法的DDS信号杂散抑制方法的系统框图,基于CORDIC算法的DDS信号杂散抑制系统重点对DDS系统中的相位/幅度转换模块进行了理论设计与仿真实现,相位/幅度转换是由控制电路(图2)和CORDIC运算器(图3)共同实现。控制电路完成角度从[0,π/4]到[-π,π]的完整周期转换。CORDIC运算器完成从相位序列到信号的正余弦值的直接计算。利用VHDL语言完成了CORDIC运算器中各级运算模块的设计与实现,并且分析了CORDIC运算器的误差来源。
基于CORDIC算法的DDS信号杂散抑制系统,包括控制电路、前处理单元、CORDIC运算器和后处理单元;控制电路包括一个异或门,相位序列b15b14b13…b0的两个高位b15b14经异或门处理后输出控制信号Inv3给前处理单元的二选一的选择器,相位序列b15b14b13…b0的两个高位b15b14经控制电路直接输出控制信号Inv1和控制信号Inv2,控制信号Inv1和控制信号Inv2经延时器分别输入到后处理单元的两个二选一的选择器中。
前处理单元中,求补器的输出端与选择器输入端连接,选择器的输出端与CORDIC运算器的输入端连接。
CORDIC运算器由14级CORDIC运算器模块连接成,CORDIC运算器通过移位、加减法的迭代计算三角函数值。
后处理单元包括两个求补器和两个二选一的选择器;CORDIC运算器的输出端分别接两个求补器和两个选择器的输入端;每个求补器对应一个选择器,求补器的输出端接选择器的输入端。
对于16位的相位序列b15b14b13…b0,将相位序列b15b14b13…b0的两个高位b15b14输入到控制电路,用来获取相位所在象限;控制电路分别输出控制信号Inv1、控制信号Inv2和控制信号Inv3,控制电路将控制信号Inv3发送给前处理单元,前处理单元根据接收到的控制信号Inv3对相位序列b15b14b13…b0的低14位进行处理,并处理后的相位角输入到CORDIC运算器中;控制电路输出的控制信号Inv1和控制信号Inv2经延时后与CORDIC运算器计算后输出的信号,在后处理单元中处理后输出。
用控制电路输入前处理单元的控制信号Inv3表示区间[-π/4,π/4],现要将输入角度控制在[0,π/4]之间,可以采用一个求补器和一个二选一的选择器来实现角度转换,即当控制电路输入前处理单元的信号Inv3为“0”时,输入相位序列b15b14b13…b0保持不变,当Inv3为“1”时,输出相位序列b15b14b13…b0求补。
1)控制电路模块中数据的具体传输方式为
①当控制电路的输入b15b14为“00”时,送给前处理单元的信号Inv3为‘0’,送给后处理单元的信号Inv1与Inv2为“00”;
②当控制电路的输入b15b14为“01”时,送给前处理单元的信号Inv3为‘1’,送给后处理单元的信号Inv1与Inv2为“01”;
③当控制电路的输入b15b14为“10”时,送给前处理单元的信号Inv3为‘0’,送给后处理单元的信号Inv1与Inv2为“10”;
④当控制电路的输入b15b14为“11”时,送给前处理单元的信号Inv3为‘1’,送给后处理单元的信号Inv1与Inv2为“11”。
2)前处理单元的工作原理为
①当接收到信号Inv3为‘0’时,则输入的14位的相位序列不变,直接传给CORDIC算法单元;
②当接收到信号Inv3为‘1’时,则输入的14位的相位序列求补,然后传给CORDIC算法单元。
3)后处理单元的工作原理为
①当接收到的信号Inv1与Inv2为“00”时,CORDIC算法单元输出的正、余弦值都不变;
②当接收到的信号Inv1与Inv2为“01”时,CORDIC算法单元输出的正弦值不变,余弦值取补;
③当接收到的信号Inv1与Inv2为“10”时,CORDIC算法单元输出的正、余弦值都取补;
④当接收到的信号Inv1与Inv2为“11”时,CORDIC算法单元输出的正弦值取补,余弦值不变。
(1)CORDIC算法模块
n级CORDIC算法的流水线实现结构如附图3所示,在输入初始数据为x0=K、y0=0、z0=θ时,经过n次迭代后输出的结果为
若输入角度θ∈[0,π/4],则迭代输出值xn即为该角度的余弦值,yn即为该角度的正弦值。
输入CORDIC算法模块的数据为16位,其中高2位用来确定相位值的所在象限,剩下的14位用作CORDIC运算器的输入,用14级流水线来实现CORDIC运算器。
CORDIC运算器一级模块的RTL图如附图4所示。将14级CORDIC运算器模块连接后,组成的CORDIC运算器如附图5所示。
CORDIC运算器计算出的正余弦值与直接根据角度计算出的正余弦值的比较见附表1所示。可以看出,角度的正余弦实际值与利用CORDIC运算器计算出的正余弦值的误差约在10-4~10-5数量级,精度相当高,在对精度要求更高的场合,可以进一步通过增加CORDIC运算器的级数来实现。
附表1角度的实际正余弦值与CORDIC运算器输出值的比较
Claims (6)
1.一种基于CORDIC算法的DDS信号杂散抑制方法,其特征在于,包括如下步骤:
步骤1,通过CORDIC算法计算出信号的正、余弦信号来完成DDS系统中相位/幅度转换;
步骤2,首先通过CORDIC变换把所有角度都变换到第一象限,然后根据输出数据符号,判断信号所在象限,再进行变换,从而达到覆盖(-π,π)完整周期。
2.一种实现如权利要求1所述的基于CORDIC算法的DDS信号杂散抑制方法的系统,其特征在于:包括控制电路、前处理单元、CORDIC运算器和后处理单元;对于16位的相位序列b15b14b13…b0,将相位序列b15b14b13…b0的两个高位b15b14输入到控制电路;所述控制电路分别输出控制信号Inv1、控制信号Inv2和控制信号Inv3,控制电路将控制信号Inv3发送给前处理单元,前处理单元根据接收到的控制信号Inv3对相位序列b15b14b13…b0的低14位进行处理,并处理后的相位角输入到CORDIC运算器中;所述控制电路输出的控制信号Inv1和控制信号Inv2经延时后与CORDIC运算器计算后输出的信号,在后处理单元中处理后输出。
3.如权利要求2所述的实现基于CORDIC算法的DDS信号杂散抑制方法的系统,其特征在于:所述控制电路包括一个异或门,相位序列b15b14b13…b0的两个高位b15b14经异或门处理后输出控制信号Inv3,相位序列b15b14b13…b0的两个高位b15b14经控制电路直接输出控制信号Inv1和控制信号Inv2。
4.如权利要求2所述的实现基于CORDIC算法的DDS信号杂散抑制方法的系统,其特征在于:所述前处理单元通过一个求补器和一个二选一的选择器来实现角度转换,即当控制电路输入前处理单元的控制信号Inv3为“0”时,输入相位序列b15b14b13…b0保持不变,当Inv3为“1”时,输出相位序列b15b14b13…b0求补,其中,求补器的输出端与选择器输入端连接;选择器的输出端与CORDIC运算器的输入端连接。
5.如权利要求2所述的实现基于CORDIC算法的DDS信号杂散抑制方法的系统,其特征在于:所述CORDIC运算器由n级CORDIC运算器模块连接成,CORDIC运算器通过移位、加减法的迭代计算三角函数值;其中n=14。
6.如权利要求2所述的实现基于CORDIC算法的DDS信号杂散抑制方法的系统,其特征在于:所述后处理单元包括两个求补器和两个二选一的选择器;所述CORDIC运算器的输出端分别接两个求补器和两个选择器的输入端;所述每个求补器对应一个选择器,求补器的输出端接选择器的输入端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102402626A CN102789446A (zh) | 2012-07-11 | 2012-07-11 | 基于cordic算法的dds信号杂散抑制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102402626A CN102789446A (zh) | 2012-07-11 | 2012-07-11 | 基于cordic算法的dds信号杂散抑制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102789446A true CN102789446A (zh) | 2012-11-21 |
Family
ID=47154850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012102402626A Pending CN102789446A (zh) | 2012-07-11 | 2012-07-11 | 基于cordic算法的dds信号杂散抑制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102789446A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150137A (zh) * | 2013-03-01 | 2013-06-12 | 北京理工大学 | 一种覆盖全圆周角度的单精度浮点三角函数的实现方法 |
CN103713878A (zh) * | 2014-01-10 | 2014-04-09 | 华南理工大学 | 一种应用补码方法的正余弦cordic算法在fpga实现的方法 |
CN106027045A (zh) * | 2016-05-23 | 2016-10-12 | 西安电子科技大学昆山创新研究院 | 基于改进cordic算法的直接数字频率合成器 |
CN111800638A (zh) * | 2020-08-04 | 2020-10-20 | 西安博瑞集信电子科技有限公司 | 一种解码方法及解码装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7929651B1 (en) * | 2007-11-09 | 2011-04-19 | Xilinx, Inc. | Low phase noise recursive direct digital synthesis with automatic gain control gain stabilization |
CN102354255A (zh) * | 2011-06-10 | 2012-02-15 | 无锡市晶源微电子有限公司 | Dds中的相位幅度转换方法 |
-
2012
- 2012-07-11 CN CN2012102402626A patent/CN102789446A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7929651B1 (en) * | 2007-11-09 | 2011-04-19 | Xilinx, Inc. | Low phase noise recursive direct digital synthesis with automatic gain control gain stabilization |
CN102354255A (zh) * | 2011-06-10 | 2012-02-15 | 无锡市晶源微电子有限公司 | Dds中的相位幅度转换方法 |
Non-Patent Citations (2)
Title |
---|
戴尚义等: "CORDIC算法在DDS中的应用", 《中国科技论文在线》, vol. 5, no. 1, 31 January 2010 (2010-01-31), pages 21 - 24 * |
戴尚义等: "DDS中的杂散分析与抑制技术", 《中国新通信》, vol. 11, no. 13, 30 June 2010 (2010-06-30), pages 72 - 75 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150137A (zh) * | 2013-03-01 | 2013-06-12 | 北京理工大学 | 一种覆盖全圆周角度的单精度浮点三角函数的实现方法 |
CN103713878A (zh) * | 2014-01-10 | 2014-04-09 | 华南理工大学 | 一种应用补码方法的正余弦cordic算法在fpga实现的方法 |
CN103713878B (zh) * | 2014-01-10 | 2016-08-17 | 华南理工大学 | 一种应用补码方法的正余弦cordic算法在fpga实现的方法 |
CN106027045A (zh) * | 2016-05-23 | 2016-10-12 | 西安电子科技大学昆山创新研究院 | 基于改进cordic算法的直接数字频率合成器 |
CN106027045B (zh) * | 2016-05-23 | 2019-02-22 | 西安电子科技大学昆山创新研究院 | 基于改进cordic算法的直接数字频率合成器 |
CN111800638A (zh) * | 2020-08-04 | 2020-10-20 | 西安博瑞集信电子科技有限公司 | 一种解码方法及解码装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103677738A (zh) | 基于混合模式cordic算法的低延时基本超越函数实现方法及装置 | |
CN102073472B (zh) | 一种三角函数cordic迭代运算协处理器及运算处理方法 | |
Nguyen et al. | A high-performance, resource-efficient, reconfigurable parallel-pipelined FFT processor for FPGA platforms | |
Nascimento et al. | A new solution to the hyperbolic tangent implementation in hardware: Polynomial modeling of the fractional exponential part | |
Liu et al. | A modified CORDIC FPGA implementation for wave generation | |
Li et al. | Study of CORDIC algorithm based on FPGA | |
CN102789446A (zh) | 基于cordic算法的dds信号杂散抑制方法及系统 | |
CN108021781A (zh) | 一种可参数化的fft ip核设计和优化方法 | |
CN102799412A (zh) | 基于并行流水线设计的cordic加速器 | |
US9151842B2 (en) | Method and apparatus for time of flight sensor 2-dimensional and 3-dimensional map generation | |
CN106951394A (zh) | 一种可重构定浮点通用fft处理器 | |
CN102364456A (zh) | 64点fft计算器 | |
CN104714773B (zh) | 用于旋转角计算的基于plb总线的嵌入式ip软核及旋转角计算方法 | |
CN103901405A (zh) | 实时块浮点频域四路脉冲压缩器及其脉冲压缩方法 | |
Daud et al. | Hybrid modified booth encoded algorithm-carry save adder fast multiplier | |
CN103365826B (zh) | 一种小面积的基-3fft蝶形单元 | |
Neji et al. | Architecture and FPGA implementation of the CORDIC algorithm for fingerprints recognition systems | |
Prasad et al. | FPGA implementation of pipelined CORDIC based quadrature direct digital synthesizer with improved SFDR | |
Bangqiang et al. | Base-N logarithm implementation on FPGA for the data with random decimal point positions | |
CN102073471B (zh) | 一种处理器Cordic迭代运算电路 | |
Li et al. | Modified CORDIC algorithm and its implementation based on FPGA | |
Zhihua et al. | The design of NCO based on CORDIC algorithm and implementation in FPGA (∗) | |
Jones et al. | Embedded algorithms within an FPGA to classify nonlinear single-degree-of-freedom systems | |
Chen et al. | A dynamic non-uniform segmentation method for first-order polynomial function evaluation | |
Jing et al. | A configurable FFT processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121121 |