首页> 中国专利> 基于改进CORDIC算法的直接数字频率合成器

基于改进CORDIC算法的直接数字频率合成器

摘要

本发明公开了一种基于改进CORDIC算法的直接数字频率合成器,包括:相位累加器和相位幅度转换器,其中,相位累加器位宽是32位,输出截断之后是19位;相位幅度转换器由查找表ROM、乘法器、超四旋转模块和区块选择模块组成,查找表ROM利用相位字第15‑9位寻址对查找表ROM查表得到旋转的粗值,粗值经过乘法器运算后输入到超四旋转模块中,同时输入到超四旋转模块的还有9位的相位字,超四旋转模块采用超四CORDIC算法对粗值进行旋转计算,最后区块选择模块根据第18‑16位对超四旋转模块输出的数据进行相应的镜像操作或者是翻转操作,从而得到最后的输出结果。本发明的有益之处在于:噪声小、转换时间短、SFDR高、硬件电路的资源消耗少。

著录项

  • 公开/公告号CN106027045A

    专利类型发明专利

  • 公开/公告日2016-10-12

    原文格式PDF

  • 申请/专利号CN201610347394.7

  • 发明设计人 丁瑞雪;徐洋;刘马良;

    申请日2016-05-23

  • 分类号H03L7/24;

  • 代理机构北京世誉鑫诚专利代理事务所(普通合伙);

  • 代理人刘玲玲

  • 地址 215347 江苏省苏州市昆山市苇城南路1699号工业技术研究院综合大楼8楼

  • 入库时间 2023-06-19 00:41:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-22

    授权

    授权

  • 2016-11-09

    实质审查的生效 IPC(主分类):H03L7/24 申请日:20160523

    实质审查的生效

  • 2016-10-12

    公开

    公开

说明书

技术领域

本发明涉及一种直接数字频率合成器,具体涉及一种基于改进CORDIC算法的直接数字频率合成器。

背景技术

直接数字频率合成器简称为DDS,这是一种最近一些年才发展起来的新型的频率合成设备。这种设备依托于快速发展的集成电路技术,现代集成电路技术根据摩尔定律的预测在不断的进步,直接数字频率合成器在这个环境之下也受到越来越多的重视。这种频率合成比设备以前的传统频率合成设备分辨率更高,转换时间更快,噪声更低,所以在许多的电子系统当中被广泛的应用。

相位累加器和相位幅度转换器两部分组成了直接数字频率合成器的数字电路部分。

在相位幅度转换器中,参照图1,传统的CORDIC计算单元计算结果输出会进行一些运算处理,之后再反馈到输入信号端,让该信号循环迭代计算处理以实现正余弦信号的计算。通过这种结构实现目的的话,电路工作的速度会很慢,一般几个时钟周期的时间才能够计算输出一个信号数据,一般来说,假如输出数据是M位,就需要M个时钟周期的时间。

为了避开上述问题,常规的办法是使用流水线的结构来设计实现正余弦信号的计算,也就是使用多个算法核,在同一个周期内进行迭代计算处理,如此一来在每个周期都能够计算输出完整的数据。如果 使用常规的CORDIC算法核,其输入若为N位,则需要N-2次级流水线进行迭代,高两位作为象限选择位。

然而,使用上述常规的CORDIC算法核来实现正余弦信号的计算时,仍然存在以下一些问题,例如:

(一)、输出延时较长;

(二)、需要经过多次旋转计算;

(三)、消耗的硬件资源较多。

发明内容

为解决现有技术的不足,本发明的目的在于提供一种基于改进CORDIC算法的直接数字频率合成器,其能够避免较长的输出延时和较大的硬件资源消耗。

为了实现上述目标,本发明采用如下的技术方案:

一种基于改进CORDIC算法的直接数字频率合成器,包括:相位累加器和相位幅度转换器,其特征在于,

前述相位累加器由加法器和相位寄存器组成,其位宽是32位,输出截断之后是19位,高3位用来进行区块选择,接下来的7位用来进行查找表ROM寻址,低9位用于CORDIC算法的旋转计算;

前述相位幅度转换器由查找表ROM、乘法器、超四旋转模块和区块选择模块组成:

查找表ROM中存储了相位字高7位相应的正余弦值,利用相位字第15-9位寻址对查找表ROM查表得到旋转的粗值(X,Y),利用相位字第16位对经过查找表ROM寻址得到的值进行处理,如果第 16位为0则查表得到的值直接用于下一步的运算,如果第16位为1则将查表所得(X,Y)值调换,这一步得到的值经过乘法器进行乘法运算,乘法的系数是和经过乘法运算之后的数据输入到超四旋转模块中,同时输入到该超四旋转模块的还有9位的相位字,超四旋转模块采用超四CORDIC算法对经过查找表ROM粗值旋转之后剩余的9位相位字进行旋转计算,并利用第16位相位字对不同区块CORDIC运算时的旋转方向进行处理,如果第16位为0则对0到3区块进行顺时针旋转,5到7区块进行逆时针旋转,第4区块不进行旋转,如果第16位为1则对0到3区块进行逆时针旋转,对5到7区块进行顺时针旋转,第4区块不进行旋转,经过旋转计算之后,超四旋转模块输出区域的正余弦数据,区块选择模块根据第18-16位对超四旋转模块输出的区域的正余弦数据进行相应的镜像操作或者是翻转操作,从而得到最后的输出结果。

前述的基于改进CORDIC算法的直接数字频率合成器,其特征在于,前述超四旋转模块由三个超四单元组成,

相位字的二进制序列码按从高到低位分组,三位为一组,每组对应一个超四单元,每次进行旋转操作时,以一组为旋转对象,超四单元在每一组上加上一定的补偿角度值“100”,并利用第16位相位字对不同区块CORDIC运算时的旋转方向进行处理,如果第16位为0则对0到3区块进行顺时针旋转,5到7区块进行逆时针旋转,第4区块不进行旋转,如果第16位为1则对0到3区块进行逆时针旋转,对5到7区块进行顺时针旋转,第4区块不进行旋转。

前述的基于改进CORDIC算法的直接数字频率合成器,其特征在于,前述直接数字频率合成器的相位幅度转换器采用的是16路内插的方式。

本发明的有益之处在于:

(一)、本发明的直接数字频率合成器,因对传统CORDIC算法改进后的超四CORDIC算法与查找表ROM相结合的方式来实现相位幅度转换,减少了计算迭代次数,并且超四CORDIC算法在进行精细旋转的同时会进行一定的相位补偿,直接数字频率合成器的相位幅度转换器采用的是16路内插的方式,所以其噪声更小、转换时间更短、SFDR更高;

(二)、改进后的CORDIC算法,因为使用查找表得出粗值再经过超四CORDIC算法三次精细旋转得到8分圆相位的正余弦函数值,再利用正余弦波形的对称性,得到整个相位的正余弦函数值,而传统CORDIC算法相位累加器N位输出需进行N-2次循环迭代,高两位作为象限选择位,所以改进后计算迭代的次数减少,从而减少了硬件电路的资源消耗。

附图说明

图1是传统的CORDIC算法的结构示意图;

图2是本发明的直接数字频率合成器的结构示意图。

具体实施方式

以下结合附图和具体实施例对本发明作具体的介绍。

参照图2,相位累加器和相位幅度转换器两部分组成了本发明的 直接数字频率合成器的数字电路部分。

一、相位累加器

相位累加器由加法器和相位寄存器组成,其中,加法器用来对相位进行累加,相位寄存器用来寄存相位,以进行下一次累加,在系统时钟fs的控制下,频率控制字FCW从其寄存器输出进入加法器,其输出结果返回进入加法器,如此不断进行往复,形成累加过程。

相位字的安排:相位累加器的位宽是32位,由于最后输出的正余弦值为16位,因此相位字的长度为16位加高3位的区块划分,即输出截取为19位,其余的低位则被截断了。

1、高3位用来进行区块选择

由于正弦波的对称性和CORDIC算法能够同时计算正弦函数值和余弦函数值,所以正弦波形可以被分块位8份,相位字的高3位是用于选择这8个区块,2的三次方等于8,因此使用高3位来进行区块选择。

2、中间7位用来进行查找表ROM寻址

最后的正余弦值是16位二进制数,本文所采用的CORDIC算法在单次旋转中旋转的角度分别是0、1α、2α、3α、4α,α为此次旋转的基础角度,因为4倍角度(即4α)时导致的误差是最大的,所以只需要此时的误差小于最小精度即可。那么基础角度α满足的条件为:

(4α)22<2-16

那么可以知道α需要满足的要求是:α<2-10

由于本文采用的CORDIC算法是一次旋转3位(下一节将会具体阐述本文所采用的详细的CORDIC算法),旋转的3位中的最低位就是此次旋转的基础角度,故需要采用7位相位字作为查找表ROM的寻址地址。又由于相位字的前3位是用来划分区块,因此正式的计数是从第4位开始的,也就是第4位到第10位这7位作为查找表ROM的寻址地址。

3、低9位用于CORDIC算法的旋转计算

本文中的CORDIC算法采用的是超四CORDIC算法,即一次旋转3位,剩余9位需要旋转三次。

二、相位幅度转换器

相位幅度转换器由查找表ROM、乘法器、超四旋转模块和区块选择模块组成。

1、查找表ROM

查找表ROM用来对相位累加器输出的相位字进行粗值旋转。

查找表ROM中存储了相位字高7位相应的正余弦值,利用相位字第15-9位寻址对查找表ROM查表得到旋转的粗值(X,Y),利用相位字第16位(第16位为区块选择符,此处只需要一位区块选择字)对经过查找表ROM寻址得到的值进行处理,如果第16位为0则查表得到的值直接用于下一步的运算,如果第16位为1则将查表所得(X,Y)值调换,这是根据正弦波形区域与区域内的正弦与余弦值镜像对称的原理。

如果需要将一个向量(x,y)旋转某个角度α,如果暂时不考虑幅度 缩放的话,那么可以用式(1)的矩阵乘法来表示这个运算:

假如角度α的大小足够小,那么就能够使用这几个近似:sinα≈α,cosα≈1,tanα≈1。

那么式(1)中的矩阵就能够简化成式(2)的形式:

该矩阵能够用来替代式(1)中的原始矩阵,在实际的旋转计算中也能够使用式(2)这个矩阵。

如果把原始矩阵提取出一个公因式cosα,那么得到的形式与式(2)的形式就会非常相似,提取公因式后的矩阵如下:

如果更加精确的描述这几个矩阵的话,式(2)中的简化矩阵实际旋转的角度并不是α,而是β=arctanα。也就是说,如果使用简化的矩阵来进行计算的话,由于实际旋转角度与计划旋转角度并不相等,会引进一个误差,实际旋转角度和计划旋转角度之间有着式(4)的关系:

很明显从式(4)能够看出来,近似的旋转操作会导致误差的产生,同时近似操作还会导致幅度缩放误差的存在,幅度缩放因子可以表示成如下形式:

在用近似的角度进行旋转时,导致的误差大小为μ,μ与角度的关系为:

μ≈-α2>

使用近似计算时,若需要误差对最后计算出来的正余弦结果不产生影响,那么误差μ必须小于计算结果的最小精度。

最后的正余弦值是16位二进制数,本文所采用的CORDIC算法在单次旋转中旋转的角度分别是0、1α、2α、3α、4α,α为此次旋转的基础角度,因为4倍角度(即4α)时导致的误差是最大的,所以只需要此时的误差小于最小精度即可。那么基础角度α满足的条件为:

那么可以知道α需要满足的要求是:α<2-10

由于本文采用的CORDIC算法是一次旋转3位,旋转的3位中的最低位就是此次旋转的基础角度,故需要采用7位相位字作为查找表ROM的寻址地址。又由于相位字的前3位是用来划分区块,因此正式的计数是从第4位开始的,也就是第4位到第10位这7位作为查找表ROM的寻址地址。

2、乘法器

乘法器用来对查找表ROM得到的正余弦粗值与和进行乘法运算。

经查找表ROM寻址得到的值经过该乘法器进行乘法运算,乘法 的系数是和

在此做乘法运算是为了把后级的超四CORDIC算法所需要的值提前计算出来,以便于后级超四CORDIC算法实现旋转时只需要进行移位和加减法操作即可。

乘法的系数之所以选定和是因为使用超四CORDIC算法时精细旋转所对应的角度非常小,此时可以用角度来代替正切值,算法中直接使用相位字所代表的权重2-i来代表角度值,而该权重表示的是的权重,才表示实际的角度,所以将作为公因式提取出来在乘法器这一级提前计算,而使用作为乘法系数是因为算法中需要三倍的数据作为输入。

3、超四旋转模块

超四旋转模块用来对经过查找表ROM粗值旋转之后剩余的9位相位字进行旋转计算,其采用的是改进后的CORDIC算法,即超四CORDIC算法。

经过乘法运算之后的数据输入到超四旋转模块中,同时输入到该超四旋转模块的还有9位的相位字,超四旋转模块采用超四CORDIC算法对这9位相位字进行旋转计算,并利用第16位相位字对不同区块CORDIC运算时的旋转方向进行处理,如果第16位为0则对0到3区块进行顺时针旋转,5到7区块进行逆时针旋转,第4区块不进行旋转,如果第16位为1则对0到3区块进行逆时针旋转,对5到7区块进行顺时针旋转,第4区块不进行旋转。

超四旋转模块采用超四CORDIC算法对经过查找表ROM粗值旋 转之后剩余的9位相位字进行旋转计算的具体过程如下:

相位字的二进制序列码按从高到低位分组,三位为一组,这三位字节决定了旋转的角度,每组对应一个超四单元,每次进行旋转操作时,以一组为旋转对象,超四单元在每一组上加上一定的补偿角度值“100”,并利用第16位相位字对同区块CORDIC运算时的旋转方向进行处理,如果第16位为0则对0到3区块进行顺时针旋转,5到7区块进行逆时针旋转,第4区块不进行旋转,如果第16位为1则对0到3区块进行逆时针旋转,对5到7区块进行顺时针旋转,第4区块不进行旋转,整体加上的相位字则是“100100100”。

如此一来,在进行旋转计算时就可以少旋转4个单位的角度,旋转的次数减少,这样可以简化计算。

在本发明的相位幅度转换器中,我们将查找表ROM与超四CORDIC算法相结合,先使用查找表ROM进行粗值旋转,得出粗值,再经过超四CORDIC算法计算得出精确值,从而获得的效果是:相位幅度转换器噪声更小、转换时间更短、SFDR更高,硬件资源消耗更少。

4、区块选择模块

区块选择器用来对超四旋转模块输出的区域的正余弦值进行相应镜像操作或者翻转操作。

经过旋转计算之后超四旋转模块输出区域的正余弦数据,区块选择模块根据第18-16位对超四旋转模块输出的区域的正余弦数据进行相应的镜像操作或者是翻转操作,从而得到最后的输出 结果,该结果就是使用本相幅转换器计算所得的正余弦值。

本发明的直接数字频率合成器,其相位幅度转换器采用的是16路内插的方式,该方式可提高带宽。

参照图2,本发明的直接数字频率合成器的工作过程如下:

相位累加器输出19位相位字,高3位用来进行区块选择,接下来的7位用来进行查找表ROM寻址,低9位用于CORDIC算法的旋转计算,相位幅度转换器中的查找表ROM利用相位字第15-9位寻址对查找表ROM查表得到旋转的粗值(X,Y),利用相位字第16位对经过查找表ROM寻址得到的值进行处理,如果第16位为0则查表得到的值直接用于下一步的运算,如果第16位为1则将查表所得(X,Y)值调换,这一步得到的值经过乘法器进行乘法运算,乘法的系数是和经过乘法运算之后的数据输入到超四旋转模块中,同时输入到该超四旋转模块的还有9位的相位字,超四旋转模块采用超四CORDIC算法对经过查找表ROM粗值旋转之后剩余的9位相位字进行旋转计算,并利用第16位相位字对不同区块CORDIC运算时的旋转方向进行处理,如果第16位为0则对0到3区块进行顺时针旋转,5到7区块进行逆时针旋转,第4区块不进行旋转,如果第16位为1则对0到3区块进行逆时针旋转,对5到7区块进行顺时针旋转,第4区块不进行旋转,经过旋转计算之后超四旋转模块输出区域的正余弦数据,区块选择模块根据第18-16位对超四旋转模块输出的区域的正余弦数据进行相应的镜像操作或者是翻转操作,从而得到最后的输出结果。

本发明的直接数字频率合成器,因为对传统CORDIC算法改进后的超四CORDIC算法与查找表ROM相结合的方式来实现相位幅度转换,减少了计算迭代次数,并且超四CORDIC算法在进行精细旋转的同时会进行一定的相位补偿,直接数字频率合成器的相位幅度转换器采用的是16路内插的方式,所以其噪声更小、转换时间更短、SFDR更高。

此外,本发明的直接数字频率合成器,因为其采用了改进的CORDIC算法(即超四CORDIC算法),因为该改进的CORDIC算法使用查找表得出粗值再经过超四CORDIC算法三次精细旋转得到8分圆相位的正余弦函数值,再利用正余弦波形的对称性,得到整个相位的正余弦函数值,而传统CORDIC算法相位累加器N位输出需进行N-2次循环迭代,高两位作为象限选择位,所以改进后计算迭代的次数减少,从而减少了硬件电路的资源消耗。

需要说明的是,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号