一种DDS信号发生器及其线性插值方法技术

技术编号:17836870 阅读:79 留言:0更新日期:2018-05-03 18:48
本发明专利技术涉及一种DDS信号发生器,包括:相位累加器,相位寄存器,第一只读存储器,第二只读存储器,减法器,乘法器以及加法器,相位累加器将累加后的频率控制字发送给相位寄存器,由相位寄存器根据输出的相位值在第一只读存储器和第二只读存储器中分别查找第一波形数据以及第二波形数据,减法器计算得到第二波形数据与第一波形数据的差值并发送至乘法器,由乘法器将所述差值与相位寄存器中的相位值相乘并将结果进行右移得到小数值,加法器将所述小数值与第一波形数据相加得到波形输出数据。通过本发明专利技术的信号发生器在不增加成本,降低外围硬件设计难度的情况下有效的保证了波形的质量,使波形数据每个时钟周期输出的数据都是变化的。

A DDS signal generator and its linear interpolation method

The invention relates to a DDS signal generator, which includes a phase accumulator, a phase register, a first read-only memory, a second read-only memory, a subtracer, a multiplier, and an adder. The phase accumulator sends the accumulative frequency control word to the phase register, and the phase register is based on the phase value of the output. The first waveform data and the second waveform data are searched in the read-only memory and second read-only memory. The subtractor calculates the difference between the second waveform data and the first waveform data and sends it to the multiplier. The multiplier multiplies the difference with the phase value in the phase register and moves the result right to the small value. The adder adds the small value to the first waveform data to get the waveform output data. The signal generator of the invention ensures the quality of the waveform effectively without increasing the cost and reducing the difficulty of the peripheral hardware design, so that the data of each clock cycle of the waveform data is changed.

【技术实现步骤摘要】
一种DDS信号发生器及其线性插值方法
本专利技术属于信号发生器领域,具体涉及一种DDS信号发生器及其线性插值方法。
技术介绍
目前,DDS类信号发生器都采用最基本的DDS方式产生的,如图1所示,其中频率控制字Freq_word是由外设处理器根据用户需求频率计算所得,相位累加器1用来对频率控制字Freq_word进行累加,相位寄存器2用来缓存累加的相位值,只读存储器(ROM)3内存储有所需波形数据数字化后的波形数据,一般为周期性的波形数据,且为一个周期的波形数据。只读存储器3的查询地址是相位寄存器2高截位的相位值。由于FPGA内部的资源限制,一般相位寄存器2到只读存储器3的数据为10到16位。如果采用的是14位的数据,即ROM的深度为16K的情况下,假如需求频率低于Fsample/16384,ROM中的波形数据会存在一个点被多次连续读取的情况;而且在这种需求频率较低的情况下,对外围滤波要求较高,否则波形会形成阶梯状的波形输出,从而使波形不能满足指标需求。但是,如果FPGA内部使用滤波器,又会占用大量的FPGA内部资源,对FPGA成本有一定的要求。
技术实现思路
针对上述问题,本专利技术的目的是提供一种DDS信号发生器及其线性插值方法,用以解决现有技术中在需求频率较低的情况下,波形数据会存在一个点被多次连续读取的情况。为实现上述目的,本专利技术采取以下技术方案:本专利技术中的一种DDS信号发生器,包括:相位累加器,相位寄存器,第一只读存储器,第二只读存储器,减法器,乘法器以及加法器,所述相位累加器将累加后的频率控制字发送给所述相位寄存器,由所述相位寄存器根据输出的相位值在第一只读存储器和第二只读存储器中分别查找第一波形数据以及第二波形数据,所述减法器计算得到第二波形数据与第一波形数据的差值并发送至所述乘法器,由所述乘法器将所述差值与所述相位寄存器中的相位值相乘并将结果进行右移得到小数值,所述加法器将所述小数值与所述第一波形数据相加得到波形输出数据。上述DDS信号发生器,优选的,所述信号发生器还包括:数模转换器以及滤波器,所述波形输出数据经过数模转换器以及滤波器后输出。上述DDS信号发生器,优选的,所述第一只读存储器以及第二只读存储器采用硬件存储器的双端口只读存储器。上述DDS信号发生器,优选的,所述第二只读存储器比所述第一只读存储器地址值大一。上述DDS信号发生器,优选的,所述第一只读存储器以及第二只读存储器的地址值是所述相位值的高位。本专利技术中的一种DDS信号发生器线性插值方法,包括:相位累加器将累加后的频率控制字发送给相位寄存器;由所述相位寄存器根据输出的相位值在第一只读存储器和第二只读存储器中分别查找第一波形数据以及第二波形数据;由减法器计算第二波形数据与第一波形数据的差值并发送至乘法器;由所述乘法器将所述差值与所述相位寄存器中的相位值相乘并将结果进行右移得到小数值;由加法器将所述小数值与所述第一波形数据相加得到波形输出数据。上述DDS信号发生器线性插值方法,优选的,所述方法还包括:截取所述相位值的高位用以分别查找所述第一只读存储器以及第二只读存储器中的第一波形数据以及第二波形数据;其中,所述相位值的高位是所述第一只读存储器以及第二只读存储器的地址值。上述DDS信号发生器线性插值方法,优选的,所述第二只读存储器比所述第一只读存储器地址值大一。上述DDS信号发生器线性插值方法,优选的,所述乘法器将所述差值与所述相位寄存器中的相位值相乘进一步包括:所述乘法器将所述差值与所述相位寄存器中的相位值的小数部分相乘。上述DDS信号发生器线性插值方法,优选的,所述第二波形数据与第一波形数据的差值是带符号的差值。本专利技术的DDS信号发生器及其线性插值方法主要是解决了DDS在为了节省资源的情况下,解决了需求频率较低时,波形是非连续的,存在梯形输出的问题,从而降低外围滤波器的设计难度,提高波形质量。附图说明图1是现有技术中DDS信号发生器的结构示意图;图2是本专利技术实施例所提供的DDS信号发生器的结构示意图;图3是本专利技术实施例所提供的DDS信号发生器线性插值方法的流程图。具体实施方式下面结合附图和实施例对本专利技术进行详细的描述。本专利技术实施例提供一种DDS信号发生器,如图2所示,包括:相位累加器4,相位寄存器5,第一只读存储器7,第二只读存储器8,减法器9,乘法器10以及加法器11,所述相位累加器4将累加后的频率控制字发送给所述相位寄存器5,由所述相位寄存器5根据输出的相位值在第一只读存储器7和第二只读存储器8中分别查找第一波形数据以及第二波形数据,所述减法器9计算得到第二波形数据与第一波形数据的差值并发送至所述乘法器10,由所述乘法器10将所述差值与所述相位寄存器5中的相位值相乘并将结果进行右移得到小数值,所述加法器11将所述小数值与所述第一波形数据相加得到波形输出数据。较佳的,本专利技术实施例中的DDS信号发生器是通过FPGA来实现的。具体的实施例中,相位寄存器5输出的相位值以48位为例,其中,相位值的高14位是第一只读存储器以及第二只读存储器的地址值,为整数部分,用以在第一只读存储器7和第二只读存储器8中分别查找第一波形数据以及第二波形数据;相位值低34位是相位数据,为小数部分。其中,第一只读存储器7和第二只读存储器8中所存储的值是同一个值,并且存储深度都为16384个数据。第一波形数据以及第二波形数据为波形相邻的两个数据值。通过减法器9将第二只读存储器8中的第二波形数据减去第一只读存储器7中的第一波形数据从而得到一个差值,且这个差值是有符号的数据。乘法器10接收所述第二波形数据和第一波形数据的差值,并将该差值和相位寄存器5中相位值的低34位进行乘法运算,并将结果进行右移得到小数值,得到的小数值即为小数部分在相位累加时波形小数部分的波形值的差值。具体到本实施例中,将相乘的结果向右移位34位,即除以2的34次方。较佳的,相乘的结果是带有符号的数据。最后,加法器11将所述小数值与第一只读存储器7中的第一波形数据相加得到最终的波形输出数据,较佳的,该波形输出数据也是带符号的。本专利技术实施例所述的DDS信号发生器在不增加成本并且降低FPGA外围硬件设计难度的情况下,有效的保证了波形的质量,使波形数据每个时钟周期输出的数据都是变化的。本专利技术实施例所述的DDS信号发生器,较佳的,所述信号发生器还包括:数模转换器以及滤波器,所述波形输出数据经过数模转换器以及滤波器后输出。通过外围滤波器,使得波形连续,谐波分量少的优点。本专利技术实施例所述的DDS信号发生器,较佳的,所述第一只读存储器以及第二只读存储器采用硬件存储器的双端口只读存储器。具体的,由于通过FPGA实现,因此第一只读存储器以及第二只读存储器可以通过FPGA中的硬件存储器(BRAM)生成双端口的ROM来同时实现,这样可以节省FPGA中的BRAM资源。本专利技术实施例所述的DDS信号发生器,较佳的,所述第二只读存储器比所述第一只读存储器地址值大一。具体的,第一只读存储器7和第二只读存储器8中所存储的值是同一个值,并且存储深度都为16384个数据。因此,当第二只读存储器比所述第一只读存储器地址值大一时,第一波形数据以及第二波形数据为波形相邻的两个数据。本专利技术实施例所述的DDS信号发生器,较佳的,所述第一本文档来自技高网...
一种DDS信号发生器及其线性插值方法

【技术保护点】
一种DDS信号发生器,其特征在于,包括:相位累加器,相位寄存器,第一只读存储器,第二只读存储器,减法器,乘法器以及加法器,所述相位累加器将累加后的频率控制字发送给所述相位寄存器,由所述相位寄存器根据输出的相位值在第一只读存储器和第二只读存储器中分别查找第一波形数据以及第二波形数据,所述减法器计算得到第二波形数据与第一波形数据的差值并发送至所述乘法器,由所述乘法器将所述差值与所述相位寄存器中的相位值相乘并将结果进行右移得到小数值,所述加法器将所述小数值与所述第一波形数据相加得到波形输出数据。

【技术特征摘要】
1.一种DDS信号发生器,其特征在于,包括:相位累加器,相位寄存器,第一只读存储器,第二只读存储器,减法器,乘法器以及加法器,所述相位累加器将累加后的频率控制字发送给所述相位寄存器,由所述相位寄存器根据输出的相位值在第一只读存储器和第二只读存储器中分别查找第一波形数据以及第二波形数据,所述减法器计算得到第二波形数据与第一波形数据的差值并发送至所述乘法器,由所述乘法器将所述差值与所述相位寄存器中的相位值相乘并将结果进行右移得到小数值,所述加法器将所述小数值与所述第一波形数据相加得到波形输出数据。2.根据权利要求1所述的一种DDS信号发生器,其特征在于,所述信号发生器还包括:数模转换器以及滤波器,所述波形输出数据经过数模转换器以及滤波器后输出。3.根据权利要求1所述的一种DDS信号发生器,其特征在于,所述第一只读存储器以及第二只读存储器采用硬件存储器的双端口只读存储器。4.根据权利要求1所述的一种DDS信号发生器,其特征在于,所述第二只读存储器比所述第一只读存储器地址值大一。5.根据权利要求1或4所述的一种DDS信号发生器,其特征在于,所述第一只读存储器以及第二只读存储器的地址值是所述相位值的高位。6.一种DDS信号发生器线性插值方法,其特征在于,...

【专利技术属性】
技术研发人员:孙乔洪少林吴忠良
申请(专利权)人:优利德科技中国有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1