DDS无限跳频方法及系统

文档序号:25991018发布日期:2021-07-23 21:02阅读:134来源:国知局
DDS无限跳频方法及系统
本发明涉及dds跳频领域,尤其涉及一种dds无限跳频方法及系统。
背景技术
:在传统设计中,dds中的相位累加模块是使用累加器实现的,如果需要跳频,那么就需要很多个累加器实现,在这样的结构中,也是可以进行跳频信号输出的,只需要增加一系列并行累加器,同时对多个ftw进行累加;多个并行的累加器之间互不影响,每一个累加器都有自己的ftw,依然可以得到多个频率的cos/sin;也可以完成切换频率和同步工作的要求;它可以简单的实现有限个频率之间的跳变,在实际工作中,只需要在一开始输入多个ftw就可以通过最初的一次同步操作确定所有累加器的状态,从而在切换中保证相位的确定;但是传统的结构的缺陷包括:第一,只能在有限个频率之间转换;第二,需要转换的频率越多,电路面积会直线上升;第三,无法实现无限的和任意的频率跳变。上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:本发明的主要目的在于,解决现有技术中,dds只能在有限个频率之间转换;需要转换的频率越多,电路面积会直线上升;无法实现无限的和任意的频率跳变的技术问题。为实现上述目的,本发明提供一种dds无限跳频方法,包括步骤:获取频率控制字ftw和初始相位pow,通过计数器获取时间计数t;将所述频率控制字ftw和所述时间计数t输入乘法器进行计算,获得当前频率ftw×t;将所述当前频率ftw×t与所述初始相位pow相加,获得当前输出参数acc;将所述当前输出参数acc输入相幅转换模块,通过三段式cordic算法获得当前输出正弦波。优选地,所述频率控制字ftw和所述时间计数t均以48位2进制数表示;所述频率控制字ftw的第0-47位为第一部分频率控制字,第0-39位为第二部分频率控制字,第0-31位为第三部分频率控制字,第0-23位为第四部分频率控制字,第0-15位为第五部分频率控制字,第0-7位为第六部分频率控制字;所述时间计数t的第0-7位为第一部分时间计数,第8-15位为第二部分时间计数,第16-23位为第三部分时间计数,第24-31位为第四部分时间计数,第32-39位为第五部分时间计数,第40-47位为第六部分时间计数。优选地,所述将所述频率控制字ftw和所述时间计数t输入乘法器进行计算,获得当前频率,具体为:所述第一部分频率控制字与所述第一部分时间计数相乘,获得第一乘积;所述第二部分频率控制字与所述第二部分时间计数相乘,获得第二乘积;所述第三部分频率控制字与所述第三部分时间计数相乘,获得第三乘积;所述第四部分频率控制字与所述第四部分时间计数相乘,获得第四乘积;所述第五部分频率控制字与所述第五部分时间计数相乘,获得第五乘积;所述第六部分频率控制字与所述第六部分时间计数相乘,获得第六乘积;所述第一乘积、所述第二乘积、所述第三乘积、所述第四乘积、所述第五乘积和所述第六乘积相加,获得所述当前频率。优选地,所述相幅转换模块包括:rom查找模块、四次迭代运算模块和简易计算模块。优选地,所述当前输出正弦波的公式具体为:sin(ftw×t+pow)其中,ftw为频率控制字,t为时间计数,pow为初始相位。一种dds无限跳频系统,用于实现所述dds无限跳频方法,包括:计数器、乘法器、第二加法器、寄存器和相幅转换模块;所述计数器、所述乘法器、所述第二加法器、所述寄存器、所述相幅转换模块依次电性连接;所述计数器,用于获取时间计数t;所述乘法器,用于将所述频率控制字ftw和所述时间计数t输入乘法器进行计算,获得当前频率ftw×t;所述第二加法器,用于将所述当前频率ftw×t与所述初始相位pow相加,获得当前输出参数acc;所述寄存器,用于缓存所述当前输出参数acc;所述相幅转换模块,用于将所述当前输出参数acc输入相幅转换模块,通过三段式cordic算法获得当前输出正弦波。优选地,所述计数器包括:第一加法器和计时器;所述计时器的第一输入端与时钟clk电性连接,所述计时器的第二输入端与所述第一加法器的输出端电性连接,所述第一加法器的输入端与所述计时器的输出端和所述乘法器的第一输入端电性连接。优选地,所述乘法器的第二输入端输入所述频率控制字ftw,所述乘法器的第三输入端输入门控时钟gate_clk;所述第二加法器的第一输入端与所述乘法器的输出端电性连接,所述第二加法器的第二输入端输入所述初始相位pow,所述第二加法器的输出端与所述寄存器电性连接。优选地,所述相幅转换模块包括:rom查找模块、四次迭代运算模块和简易计算模块;所述rom查找模块、所述四次迭代运算模块和所述简易计算模块依次电性连接;所述rom查找模块的输入端与所述寄存器的输出端电性连接;所述简易计算模块输出所述当前输出正弦波。本发明具有以下有益效果:1、引入乘法器替代传统的累加器,实现传统dds无法实现的无限跳频功能,并且保证上一次复位后相位相干;2、乘法器采用分步乘法,将频率控制字ftw和时间计数t均分成六个部分,每个对应部分依次相乘后再相加,节约计算资源;并且引入门控时钟降低功耗,进一步优化。附图说明图1为本发明dds无限跳频方法的流程图;图2为本发明dds无限跳频系统的结构图;本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。现有技术中,传统的dds可以分为两个部分,相位累加器模块以及相幅转换模块;相位累加器模块可以产生当前本振信号的相位,相幅转换模块完成cos/sin值的映射;首先需要输入一个频率控制字(ftw)来确定产生正弦波的频率,具体公式为:fc=(ftw×fs)/2n(1)其中,fc为所需要的频率,fs为采样率,n为位宽;得到想要的频率控制字ftw,在每一个时钟下累加得到不同时刻的相位值;但是这里就存在一个问题,当频率转换的时候,系统中的相位累加器模块并不会进行清除或者改变,如果想要两个dds同步工作,就必须进行复位,因为并不知道dds之前工作在一个什么状态下;如果要切换频率,那么当前频率的信号会继承之前的相位,使得dds无法实现无限跳频的功能。参考图1,为解决现有技术中的问题,本发明提供一种dds无限跳频方法,使用乘法器取代现有技术中的累加器,让时间计数t和频率控制字ftw相乘得到每一个时刻的当前输出正弦波;当频率切换时,直接改变频率控制字,由于电路中计数器的时间计数t是从一开始就记录下来的数据,不会因为ftw的不同而不同,所以不管之前dds使用的是哪一种ftw进行工作,只要当前ftw相同,那么得到的当前输出正弦波就是相同的;这种结构的dds得到的当前输出正弦波在频率切换时是间断的,可以达到无限跳频的功能,并且保证上一次复位后相位相干;具体包括以下步骤:s1:获取频率控制字ftw和初始相位pow,通过计数器获取时间计数t;s2:将所述频率控制字ftw和所述时间计数t输入乘法器进行计算,获得当前频率ftw×t;s3:将所述当前频率ftw×t与所述初始相位pow相加,获得当前输出参数acc;s4:将所述当前输出参数acc输入相幅转换模块,通过三段式cordic算法获得当前输出正弦波。本实施例步骤s2中,所述频率控制字ftw和所述时间计数t均以48位2进制数表示;两个数相乘需要96位的乘法计算,但是最终需要的数据只是低48位,高48位可以当作正弦波整周期数,对输出的当前输出正弦波的sin值是没有影响的,所以在设计时可以减少高位的计算,让乘法器面积进一步减小,具体计算方式如下:所述频率控制字ftw的第0-47位为第一部分频率控制字,第0-39位为第二部分频率控制字,第0-31位为第三部分频率控制字,第0-23位为第四部分频率控制字,第0-15位为第五部分频率控制字,第0-7位为第六部分频率控制字;所述时间计数t的第0-7位为第一部分时间计数,第8-15位为第二部分时间计数,第16-23位为第三部分时间计数,第24-31位为第四部分时间计数,第32-39位为第五部分时间计数,第40-47位为第六部分时间计数;所述第一部分频率控制字与所述第一部分时间计数相乘,获得第一乘积;所述第二部分频率控制字与所述第二部分时间计数相乘,获得第二乘积;所述第三部分频率控制字与所述第三部分时间计数相乘,获得第三乘积;所述第四部分频率控制字与所述第四部分时间计数相乘,获得第四乘积;所述第五部分频率控制字与所述第五部分时间计数相乘,获得第五乘积;所述第六部分频率控制字与所述第六部分时间计数相乘,获得第六乘积;所述第一乘积、所述第二乘积、所述第三乘积、所述第四乘积、所述第五乘积和所述第六乘积相加,获得所述当前频率。所述相幅转换模块包括:rom查找模块、四次迭代运算模块和简易计算模块;所述三段式cordic算法具体为:第一步将输入角度放到第一象限统一处理,相位的前两位可以分割四个象限,只需要考虑后面的相位即可,迭代公式中的x0,y0到x4,y4的值直接通过rom查找模块,使用查表法得到结果,这里的查表法是根据弧度制每次一半的形式迭代,这样的查表具有以下优点:输入角度使用二进制表示时,很方便进行比较,直接将前几位进行比较即可,不需要再进行复杂的角度计算工作,从而较少电路中的计算;第二步将旋转方式改变,进行蝶形运算,通过对tan函数泰勒展开我们可以将tanθi近似为2-i,这样在每一次迭代过程中只需要进行一次移位计算和一次加法计算,经过这样的简化可以得到xi+1=xi-ri×2-i×yiyi+1=yi-ri×2-i×xi(3)在电路计算中,移位操作和加法操作容易实现,可以很好的将计算简化;在一开始的计算已经通过查表法实现了,这里简化之后的误差不大;设计产生14位精度的当前输出正弦波信号,精度可以达到要求;第三步将剩余的迭代计算进行合并,通过化简得到直接一步得到最终结果,这一步也会影响最终的计算精度,这样做的好处不仅可以减少不必要的电路,还可以减少迭代所带来的时延。最终获得的所述当前输出正弦波的公式具体为:sin(ftw×t+pow)(5)其中,ftw为频率控制字,t为时间计数,pow为初始相位。参考图2,本发明提供一种dds无限跳频系统,用于实现上述dds无限跳频方法,包括:计数器、乘法器、第二加法器、寄存器和相幅转换模块;所述计数器、所述乘法器、所述第二加法器、所述寄存器、所述相幅转换模块依次电性连接;所述计数器,用于获取时间计数t;所述乘法器,用于将所述频率控制字ftw和所述时间计数t输入乘法器进行计算,获得当前频率ftw×t;所述第二加法器,用于将所述当前频率ftw×t与所述初始相位pow相加,获得当前输出参数acc;所述寄存器,用于缓存所述当前输出参数acc;所述相幅转换模块,用于将所述当前输出参数acc输入相幅转换模块,通过三段式cordic算法获得当前输出正弦波。本实施例中,所述计数器包括:第一加法器和计时器;所述计时器的第一输入端与时钟clk电性连接,所述计时器的第二输入端与所述第一加法器的输出端电性连接,所述第一加法器的输入端与所述计时器的输出端和所述乘法器的第一输入端电性连接。本实施例中,所述乘法器的第二输入端输入所述频率控制字ftw,所述乘法器的第三输入端输入门控时钟gate_clk;所述第二加法器的第一输入端与所述乘法器的输出端电性连接,所述第二加法器的第二输入端输入所述初始相位pow,所述第二加法器的输出端与所述寄存器电性连接。具体实现中,为进一步优化,乘法器采用门控乘法器;因为计时器并不会每一位都在变,计时器只会在每个时钟下加1,所以将乘法器分割成6块,通过检测分块的数据是否变换再进行乘法计算。本实施例中,所述相幅转换模块包括:rom查找模块、四次迭代运算模块和简易计算模块;所述rom查找模块、所述四次迭代运算模块和所述简易计算模块依次电性连接;所述rom查找模块的输入端与所述寄存器的输出端电性连接;所述简易计算模块输出所述当前输出正弦波。本实施例实施后的效果如表一和表二所示:表一电路面积400mhz累加结构11891改进乘法结构5436表二电路功率(mw)400mhz累加结构2.8663改进乘法结构2.0123通过表一和表二可以看出当使用的累加器过多时,选择乘法器已经是更优的选择,代码中使用十六个累加器并行的方式来完成频率跳变面积功率已经高于乘法器了。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1