CN114115436B - 基于fpga平台的多路并行dds双向线性扫频方法、系统及介质 - Google Patents
基于fpga平台的多路并行dds双向线性扫频方法、系统及介质 Download PDFInfo
- Publication number
- CN114115436B CN114115436B CN202111229230.1A CN202111229230A CN114115436B CN 114115436 B CN114115436 B CN 114115436B CN 202111229230 A CN202111229230 A CN 202111229230A CN 114115436 B CN114115436 B CN 114115436B
- Authority
- CN
- China
- Prior art keywords
- dds
- phase
- sweep
- frequency
- frequency sweep
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/022—Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
Abstract
本发明公开了一种基于FPGA平台的多路并行DDS双向线性扫频方法、系统及介质,系统包括FPGA、第一单向扫频模块和第二单向扫频模块,第一单向扫频模块根据第一控制信息计算第一批并行的DDS的初相位以及相位累进值,并将正方向扫频最后一个数据点对应的相位作为负方向扫频初始相位,向第一批并行的DDS输入对应的初相位和相位累进值来进行正方向扫频,第二单向扫频模块根据负方向扫频初始相位配置第二控制信息,根据第二控制信息计算第二批并行的DDS的初相位以及相位累进值,向第二批并行的DDS输入对应的初相位和相位累进值来进行负方向扫频。本发明能够使得双向线性扫频的两次扫频信号相位连续,且计算复杂度较低,能够降低计算误差对于扫频信号的影响。
Description
技术领域
本发明涉及扫频技术领域,尤其涉及一种基于FPGA平台的多路并行DDS双向线性扫频方法、系统及介质。
背景技术
直接数字频率合成(Direct Digital Synthesizer,DDS)是一种新的频率合成技术和信号产生的方法,具有超高速的频率转换时间、极高的频率分辨率和较低的相位噪声,在频率改变与调频时,DDS能够保持相位的连续,因此很容易实现频率、相位和幅度调制。
随着现代雷达技术向宽带、高分辨率和数字化方向发展,对于扫频信号采样率的需求越来越高,但在FPGA平台中,DDS输出信号频率和带宽始终受FPGA工作时钟频率的限制,导致其无法直接合成高载频、大带宽信号,尚不能满足宽带或超宽带微波雷达系统的要求。
为了扩展频带,提高DDS输出信号频率和带宽,现有的方案通过并行直接数字频率合成器将现场编程逻辑门阵列的输入信号分为多相并行信号并输出,大大降低了FPGA工作时钟频率的要求。该方案对于并行DDS是输入频率控制字来控制信号的瞬时频率,并对每个DDS输入固定相位差或者相位增量来输出当前数据点的相位值,然后再根据相位值进行运算实现不同数据点的信号输出,对于单向扫频而言,该方法对于获取高采样率的扫频信号具有较好效果。但是为了获得更加精确的扫频结果,有时还需要进行双向扫频,即第一遍按照正方向扫频结束后,第二遍按照负方向扫频,这种情况下,由于DDS输入相位值后需要进行计算的时间,因此会导致扫频转向时缺少计算时间的数据点,无法确切得到第一遍扫频时最后一个数据点的相位值,而是要等待计算的结果,从而导致扫频转向时相位不连续,影响扫频信号的频谱和时域。
论文《基于多路并行DDS的宽带雷达信号产生技术》提出了多路并行DDS技术,以面积换速度,使现场可编程门阵列(Field Programmable Gate Array,FPGA)能在较低工作频率下实现较高的采样率,进而大大提高输出的信号频率和工作频带,该方法中按照时间更新相位补偿的量,可以解决双向扫频转向时缺少数据点的问题,但是其不同时间点输入每个DDS的相位和频率控制字都是随着时间变化的,由于FPGA工作时钟周期都是定点数,在计算时会存在误差,导致根据该方法进行双向扫频时,计算误差对于扫频信号的影响较大,且计算量也较大。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种基于FPGA平台的多路并行DDS双向线性扫频方法、系统及介质,能够使得双向线性扫频的两次扫频信号相位连续,且计算复杂度较低,能够降低计算误差对于扫频信号的影响。
为解决上述技术问题,本发明提出的技术方案为:
一种基于FPGA平台的多路并行DDS双向线性扫频方法,其特征在于,第一单向扫频模块的控制步骤包括:
获取第一控制信息,根据所述第一控制信息计算第一批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,所述相位累进值为后一个时间点的相位减前一个时间点的相位的值;
根据所述第一控制信息计算正方向扫频最后一个数据点对应的相位,并作为负方向扫频初始相位,将负方向扫频初始相位发送给第二单向扫频模块,向第一批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第一批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为正方向扫频结果。
进一步的,所述第一控制信息包括预设的正方向扫频初始相位,带宽,脉宽,中心频率和FPGA工作时钟频率,根据所述第一控制信息计算第一批并行的DDS中每个DDS的初相位的步骤具体包括:
计算中心频率和带宽的差得到扫频开始频率,计算带宽和脉宽的比值得到扫频斜率,计算FPGA工作时钟频率的倒数得到FPGA工作时钟周期;
根据正方向扫频初始相位、扫频开始频率、扫频斜率、FPGA工作时钟周期计算第一批并行的DDS中每个DDS的初相位,函数表达式如下:
αM(0)=F0*((M-1)/L)*Δt+1/2*K*(((M-1)/L)*Δt)2+a0
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,M为当前DDS的序号,L为DDS的数量,a0为初始相位。
进一步的,根据所述第一控制信息计算每个时间点各DDS的相位累进值的步骤具体包括:
计算脉宽和FPGA工作时钟频率的乘积得到数据长度,根据所述数据长度确定时间点的数量;
根据正方向扫频初始相位、扫频开始频率、扫频斜率、FPGA工作时钟周期计算第一批并行的DDS中每个DDS的每个时间点对应的相位;
对于每个DDS,分别将后一时间点的相位减去前一时间点的相位,得到该DDS每个时间点的相位累进值。
进一步的,每个时间点各DDS的相位累进值的函数表达式如下:
A M(n+1)=F0*(1+(M-1)/L)*Δt+1/2*K*Δt2*(2n+1+2(M-1)/L)
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,n为上一时间点的序号,M为当前DDS的序号,L为DDS的数量。
进一步的,将负方向扫频初始相位发送给第二单向扫频模块具体为:在最后一个时间点,将负方向扫频初始相位发送给第二单向扫频模块。
进一步的,正方向扫频最后一个数据点对应的相位为第一批并行的DDS中排名最后的DDS在最后一个时间点的相位。
进一步的,第二单向扫频模块的控制步骤包括:
获取负方向扫频初始相位,并根据负方向扫频初始相位配置第二控制信息,根据所述第二控制信息计算第二批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,向第二批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第二批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为负方向扫频结果。
本发明还提出一种基于FPGA平台的多路并行DDS双向线性扫频系统,包括:
FPGA,用于提供FPGA工作时钟频率;
第一单向扫频模块,用于获取包含FPGA工作时钟频率的第一控制信息,根据所述第一控制信息计算第一批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,并根据所述第一控制信息计算正方向扫频最后一个数据点对应的相位作为负方向扫频初始相位,将负方向扫频初始相位发送给第二单向扫频模块,向第一批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第一批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为正方向扫频结果。
第二单向扫频模块,用于获取负方向扫频初始相位,并根据负方向扫频初始相位配置第二控制信息,根据所述第二控制信息计算第二批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,向第二批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第二批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为负方向扫频结果。
本发明还提出一种基于FPGA平台的多路并行DDS双向线性扫频系统,包括计算机,所述计算机被编程或配置以执行所述的基于FPGA平台的多路并行DDS双向线性扫频方法。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有被编程或配置以执行所述的基于FPGA平台的多路并行DDS双向线性扫频方法的计算机程序。
与现有技术相比,本发明的优点在于:
本发明将正方向扫频最后一个数据点对应的相位作为负方向扫频初始相位,保证双向扫频的转向时相位连续,且本发明在扫频过程中对于并行DDS输入固定的初相位,然后在不同时间点输入不同的相位累进值,从而只存在一个变量控制,减少了计算量,且只存在一个变量的情况下,产生的信号受到FPGA工作时钟周期误差的影响较小,从而提高了计算结果的精度。
附图说明
图1为本发明实施例中双向线性扫频的工作原理图。
图2为本发明实施例中单相扫频模块的工作流程图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
为了在保持双向线性扫频的两次扫频信号相位连续的前提下,降低计算复杂度,我们提出相位累进值的概念,相位累进值即后一个时间点的相位减前一个时间点的相位的结果,所以对于双向线性扫频,只需要了解初始相位的值、带宽、脉宽以及FPGA的工作频率,就能够提前计算不同时间点下每个数据点对应的相位,其中也包括第一次扫频结束时,最后一个数据点对应的相位,并将该相位的值作为第二次扫频开始时每个DDS的初始相位的值,从而保证两次扫频相位连续,且只存在一个需要计算的变量,降低了计算复杂度,且只有一个变量来控制DDS的信号产生,会减少计算误差对产生信号的影响。
相位累进值的推导过程如下:
根据信号的频率变化方程,计算信号当前时间点的相位,函数表达式如下:
α=F0*n*Δt+1/2*K*(n*Δt)2+a0 (1)
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,n为当前时间点的序号,a0为初始相位。
时间点与扫频时间的关系为:
t=n*Δt (2)
上式中,n为当前时间点的序号,Δt为FPGA的工作时钟周期,扫频时间不可能无限长,一般设有上限,假设脉宽为T且数据长度为N,当前时间点n为从0到阈值N的区间内的值,且N为最后一个时间点的序号。
根据式(1)和并行DDS的数量计算并行DDS中每个DDS当前时间点的相位,函数表达式如下:
αM(n)=F0*(n+(M-1)/L)*Δt+1/2*K*((n+(M-1)/L)*Δt)2+a0 (3)
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,n为当前时间点的序号,M为当前DDS的序号,L为并行DDS中所有DDS的数量,a0为初始相位。
当n等于0时,αM(0)=F0*((M-1)/L)*Δt+1/2*K*(((M-1)/L)*Δt)2+a0。为每个DDS的初相位,当n等于N时,αM(N)=F0*(N+(M-1)/L)*Δt+1/2*K*((N+(M-1)/L)*Δt)2+a0。为每个DDS的在最后时间点的相位。
根据式(3),对于同一个DDS,将当前时间点的相位减去上一时间点的相位,即得到当前时间点的相位累进值,计算过程如下:
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,n为上一时间点的序号,M为当前DDS的序号,L为并行DDS中所有DDS的数量。
对于并行DDS,只需要先根据式(3)将n置0来计算并输入各DDS的初相位,然后在每个时间点根据式(4)计算并输入各DDS的对应的相位累进值,各DDS就能够输出其对应时间点的输出信号,每个时间点下各DDS的输出信号即每个时间点下的不同数据点。
如图1所示,本实施例中,在FPGA平台实现双向线性扫频除了FPGA来提供工作时钟以外,还需要两个单向扫频模块,每个单向扫频模块中均设有多路并行的DDS,且两个单向扫频模块中DDS数量相同,设置第一单向扫频模块正方向扫频,且第二单向扫频模块负方向扫频,第一单向扫频模块的工作原理如下:
向第一单向扫频模块输入固定的初始相位,以及带宽,脉宽,中心频率和FPGA工作时钟频率等控制信息,第一单向扫频模块将根据这些控制信息计算其每个DDS的初相位以及每个时间点各DDS的相位累进值,并计算出正方向扫频的最后一个数据点对应的相位,随后在正方向扫频的过程中,向每个DDS输入初相位和当前时间点对应的相位累进值,且将每个DDS的计算结果按照时间顺序依次输出,作为每个DDS在当前时间点的扫频信号数据。
在结束输出数据之前,第一单向扫频模块将正方向扫频的最后一个数据点对应的相位作为第二个单向扫频模块的初始相位,并随同带宽,脉宽,中心频率和FPGA工作时钟频率等发送给第二单向扫频模块开始负方向扫频。
第二单向扫频模块的工作原理如下:
第二单向扫频模块获取这些控制信息后,就会计算其每个DDS的初相位以及每个时间点各DDS的相位累进值,随后在负方向扫频的过程中,向每个DDS输入初相位和当前时间点对应的相位累进值,且将每个DDS的计算结果按照时间顺序依次输出,作为每个DDS在当前时间点的扫频信号数据。
具体的,如图2所示,对于一个单向扫频模块,其产生信号的流程如下:
首先,获取初始相位、带宽、脉宽、中心频率、扫频方向,并根据扫频方向对带宽、脉宽和中心频率进行计算得到数据长度、扫频开始频率和扫频斜率,然后根据上述计算结果计算每个DDS的初相位,并计算不同时间点下每个DDS对应的相位累进值。
然后,将对应的初相位输入每个DDS,并在每个时间点将对应的相位累进值输入每个DDS,然后等待每个DDS计算结束并输出信号,每个时间点下,各DDS输出的信号按照对应DDS的序号进行排序,即为每个时间点下的数据点。
基于上述工作原理,本实施例提出一种基于FPGA平台的多路并行DDS双向线性扫频方法,第一单向扫频模块的控制步骤包括:
获取第一控制信息,根据所述第一控制信息计算第一批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,所述相位累进值为后一个时间点的相位减前一个时间点的相位的值;
根据所述第一控制信息计算正方向扫频最后一个数据点对应的相位,并作为负方向扫频初始相位,将负方向扫频初始相位发送给第二单向扫频模块,向第一批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第一批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为正方向扫频结果。
第二单向扫频模块的控制步骤包括:
获取负方向扫频初始相位,并根据负方向扫频初始相位配置第二控制信息,根据所述第二控制信息计算第二批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,向第二批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第二批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为负方向扫频结果。
最后,对于第一单向扫频模块输出的所有扫频信号数据以及第二单向扫频模块输出的所有扫频信号数据进行排序,就可以得到双向线性扫频信号。
具体的,第一控制信息包括预设的正方向扫频初始相位,带宽,脉宽,中心频率和FPGA工作时钟频率,根据所述第一控制信息计算第一批并行的DDS中每个DDS的初相位的步骤具体包括:
计算中心频率和带宽的差得到扫频开始频率,计算带宽和脉宽的比值得到扫频斜率,计算FPGA工作时钟频率的倒数得到FPGA工作时钟周期;
根据式(3),由正方向扫频初始相位、扫频开始频率、扫频斜率、FPGA工作时钟周期计算第一批并行的DDS中每个DDS的初相位。
具体的,根据所述第一控制信息计算每个时间点各DDS的相位累进值的步骤具体包括:
计算脉宽和FPGA工作时钟频率的乘积得到数据长度,根据所述数据长度确定时间点的数量;
根据正方向扫频初始相位、扫频开始频率、扫频斜率、FPGA工作时钟周期计算第一批并行的DDS中每个DDS的每个时间点对应的相位;
对于每个DDS,根据式(4),分别将后一时间点的相位减去前一时间点的相位,得到该DDS每个时间点的相位累进值。
具体的,将负方向扫频初始相位发送给第二单向扫频模块具体为:在最后一个时间点,将负方向扫频初始相位发送给第二单向扫频模块。
具体的,正方向扫频最后一个数据点对应的相位为第一批并行的DDS中排名最后的DDS在最后一个时间点的相位。
下面结合具体事例对本实施例的方案进行进一步说明:
产生一个初始相位a0,带宽B,脉宽2T,中心频率f,扫描方向先正后负,采样率4800mHz的线性扫频信号,采用工作时钟频率fs为300mHz的FPGA系统时钟。
事前分析:系统时钟为300mHz,需要产生4800mHz采样率的信号,那么得用16个DDS并行产生信号实现。又因为扫频方向是先正后负,那么每段单向扫频的脉宽为T。
将初始相位a0,带宽B,脉宽T,中心频率f,FPGA工作时钟频率fs作为控制信息输入第一个单向扫频模块A,单向扫频模块A中包括16个并行的DDS,单向扫频模块A根据所输入的控制信息计算:
数据长度,函数表达式为:
N=T/(1/fs)=T*fs (5)
上式中,T为正向线性扫频的脉宽,fs为FPGA工作时钟频率。
扫频开始频率,函数表达式为:
F0=f-B/2 (6)
上式中,f为中心频率,B为带宽。
扫频斜率,函数表达式为:
K=B/T (7)
上式中,B为带宽,T为正向线性扫频的脉宽。
FPGA的工作时钟周期,函数表达式为:
Δt=1/fs (8)
上式中,fs为FPGA工作时钟频率。
随后,单向扫频模块A根据式(3)至式(8),首先分别计算每个DDS的初相位,函数表达式如下:
αM(0)=F0*((M-1)/16)*Δt+1/2*K*(((M-1)/16)*Δt)2+a0 (9)
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,M为当前DDS的序号,a0为初始相位。
然后计算每个DDS的相位累进值方程,函数表达式如下:
A M(n+1)=αM(n+1)-αM(n)=F0*(1+(M-1)/16)*Δt+1/2*K*Δt2*(2n+1+(M-1)/8)(10)
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,n为时间点的序号,M为当前DDS的序号。令n从0到N,就得出了每个时间点,16个DDS分别对应的相位累进值。
此外,由于16个DDS并行产生数据,根据排序方法可得知最后一个数据点一定是第16个DDS的输出信号,令n=N,根据式(3)可以得到正向线性扫频最后一个数据点的相位为:
α16(N)=F0*(N+15/16)*Δt+1/2*K*((N+15/16)*Δt)2+a0 (11)
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,a0为初始相位。
根据上述计算结果,单向扫频模块A向每个DDS输入对应的初相位,并在每个时间点将对应的相位累进值输入每个DDS,然后等待每个DDS计算结束后将计算结果排序并作为输出信号进行输出,每个时间点下的输出信号排序如下:
α1(n)-α2(n)-α3(n)-……-α14(n)-α15(n)-α16(n);
当n从1到N,得到的信号排序如下:
α1(1)-α2(1)-α3(1)-……-α14(1)-α15(1)-α16(1)-……-α1(N)-α2(N)-α3(N)-……-α14(N)-α15(N)-α16(N)。
与此同时,单向扫频模块A还将α16(N)作为初始相位,与带宽B,脉宽T,中心频率f,FPGA工作时钟频率fs作为控制信息发送给第二个单向扫频模块B,单向扫频模块B中也包括16个并行的DDS,单向扫频模块B根据所输入的控制信息计算:
数据长度,函数表达式与式(5)相同。
扫频开始频率,函数表达式为:
F’0=f+B/2 (12)
上式中,f为中心频率,B为带宽。
扫频斜率,函数表达式为:
K’=-(B/T) (13)
上式中,B为带宽,T为正向线性扫频的脉宽。
FPGA的工作时钟周期,函数表达式与式(8)相同。
随后,单向扫频模块B根据式(3)至式(13),首先分别计算每个DDS的初相位,函数表达式如下:
α’M(0)=F’0*((M-1)/16)*Δt+1/2*K’*(((M-1)/16)*Δt)2+α16(N) (14)
上式中,F’0为扫频开始频率,K’为扫频斜率,Δt为FPGA的工作时钟周期,M为当前DDS的序号,α16(N)为正向线性扫频最后一个数据点的相位。
然后计算每个DDS的相位累进值方程,函数表达式如下:
AM’(n+1)=αM’(n+1)-αM’(n)=F’0*(1+(M-1)/16)*Δt+1/2*K’*Δt2*(2n+1+(M-1)/8 (15)
上式中,F’0为扫频开始频率,K’为扫频斜率,Δt为FPGA的工作时钟周期,n为时间点的序号,M为当前DDS的序号。令n从0到N,就得出了每个时间点,16个DDS分别对应的相位累进值。
根据上述计算结果,单向扫频模块B向每个DDS输入对应的初相位,并在每个时间点将对应的相位累进值输入每个DDS,然后等待每个DDS计算结束后将计算结果排序并作为输出信号进行输出,每个时间点下的输出信号排序如下:
α’1(n)-α’2(n)-α’3(n)-……-α’14(n)-α’15(n)-α’16(n);
当n从1到N,得到的信号排序如下:
α’1(1)-α’2(1)-α’3(1)-……-α’14(1)-α’15(1)-α’16(1)-……-α’1(N)-α’2(N)-α’3(N)-……-α’14(N)-α’15(N)-α’16(N)。
将单向扫频模块A的输出信号在前且和单向扫频模块B的输出信号在后再次排序,就能得到4800mHz的双向线性扫频信号,排列方式如下:
α1(1)-α2(1)-α3(1)-……-α14(1)-α15(1)-α16(1)-……-α1(N)-α2(N)-α3(N)-……-α14(N)-α15(N)-α16(N)-α’1(1)-α’2(1)-α’3(1)-……-α’14(1)-α’15(1)-α’16(1)-……-α’1(N)-α’2(N)-α’3(N)-……-α’14(N)-α’15(N)-α’16(N)。
需要指出的是,单向扫频模块A根据DDS的计算时长,在DDS计算得到最后的结果之前的预设时间提前将α16(N)作为初始相位发送给第二个单向扫频模块B,假设DDS从获取输入的初相位和对应的相位累进值到得出计算结果需要k个时钟,则单向扫频模块在第N个时间点将α16(N)作为初始相位发送给第二个单向扫频模块B,使得当单向扫频模块A输出最后的结果时,单向扫频模块B也输出第一个时间点的结果,从而将两个模块的输出信号完美连接在一起,不影响频谱和时域。
本实施例还提出一种基于FPGA平台的多路并行DDS双向线性扫频系统,包括计算机,该计算机被编程或配置以执行本实施例的基于FPGA平台的多路并行DDS双向线性扫频方法。
本发明还提出一种计算机可读存储介质,该计算机可读存储介质存储有被编程或配置以执行本实施例的基于FPGA平台的多路并行DDS双向线性扫频方法的计算机程序。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (10)
1.一种基于FPGA平台的多路并行DDS双向线性扫频方法,其特征在于,第一单向扫频模块的控制步骤包括:
获取第一控制信息,根据所述第一控制信息计算第一批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,所述相位累进值为后一个时间点的相位减前一个时间点的相位的值;
根据所述第一控制信息计算正方向扫频最后一个数据点对应的相位,并作为负方向扫频初始相位,将负方向扫频初始相位发送给第二单向扫频模块,向第一批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第一批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为正方向扫频结果。
2.根据权利要求1所述的基于FPGA平台的多路并行DDS双向线性扫频方法,其特征在于,所述第一控制信息包括预设的正方向扫频初始相位,带宽,脉宽,中心频率和FPGA工作时钟频率,根据所述第一控制信息计算第一批并行的DDS中每个DDS的初相位的步骤具体包括:
计算中心频率和带宽的差得到扫频开始频率,计算带宽和脉宽的比值得到扫频斜率,计算FPGA工作时钟频率的倒数得到FPGA工作时钟周期;
根据正方向扫频初始相位、扫频开始频率、扫频斜率、FPGA工作时钟周期计算第一批并行的DDS中每个DDS的初相位,函数表达式如下:
αM(0)=F0*((M-1)/L)*Δt+1/2*K*(((M-1)/L)*Δt)2+a0
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,M为当前DDS的序号,L为DDS的数量,a0为初始相位。
3.根据权利要求2所述的基于FPGA平台的多路并行DDS双向线性扫频方法,其特征在于,根据所述第一控制信息计算每个时间点各DDS的相位累进值的步骤具体包括:
计算脉宽和FPGA工作时钟频率的乘积得到数据长度,根据所述数据长度确定时间点的数量;
根据正方向扫频初始相位、扫频开始频率、扫频斜率、FPGA工作时钟周期计算第一批并行的DDS中每个DDS的每个时间点对应的相位;
对于每个DDS,分别将后一时间点的相位减去前一时间点的相位,得到该DDS每个时间点的相位累进值。
4.根据权利要求3所述的基于FPGA平台的多路并行DDS双向线性扫频方法,其特征在于,每个时间点各DDS的相位累进值的函数表达式如下:
AM(n+1)=F0*(1+(M-1)/L)*Δt+1/2*K*Δt2*(2n+1+2(M-1)/L)
上式中,F0为扫频开始频率,K为扫频斜率,Δt为FPGA的工作时钟周期,n为上一时间点的序号,M为当前DDS的序号,L为DDS的数量。
5.根据权利要求1所述的基于FPGA平台的多路并行DDS双向线性扫频方法,其特征在于,将负方向扫频初始相位发送给第二单向扫频模块具体为:在最后一个时间点,将负方向扫频初始相位发送给第二单向扫频模块。
6.根据权利要求1所述的基于FPGA平台的多路并行DDS双向线性扫频方法,其特征在于,正方向扫频最后一个数据点对应的相位为第一批并行的DDS中排名最后的DDS在最后一个时间点的相位。
7.根据权利要求1所述的基于FPGA平台的多路并行DDS双向线性扫频方法,其特征在于,第二单向扫频模块的控制步骤包括:
获取负方向扫频初始相位,并根据负方向扫频初始相位配置第二控制信息,根据所述第二控制信息计算第二批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,向第二批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第二批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为负方向扫频结果。
8.一种基于FPGA平台的多路并行DDS双向线性扫频系统,其特征在于,包括:
FPGA,用于提供FPGA工作时钟频率;
第一单向扫频模块,用于获取包含FPGA工作时钟频率的第一控制信息,根据所述第一控制信息计算第一批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,并根据所述第一控制信息计算正方向扫频最后一个数据点对应的相位作为负方向扫频初始相位,将负方向扫频初始相位发送给第二单向扫频模块,向第一批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第一批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为正方向扫频结果。
第二单向扫频模块,用于获取负方向扫频初始相位,并根据负方向扫频初始相位配置第二控制信息,根据所述第二控制信息计算第二批并行的DDS中每个DDS的初相位以及每个时间点各DDS的相位累进值,向第二批并行的DDS中每个DDS输入对应的初相位,在每个时间点,向第二批并行的DDS中每个DDS输入对应的相位累进值,等待并获取对应的输出数据作为负方向扫频结果。
9.一种基于FPGA平台的多路并行DDS双向线性扫频系统,其特征在于,包括计算机,所述计算机被编程或配置以执行权利要求1~7任一所述的基于FPGA平台的多路并行DDS双向线性扫频方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有被编程或配置以执行权利要求1~7任一所述的基于FPGA平台的多路并行DDS双向线性扫频方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111229230.1A CN114115436B (zh) | 2021-10-21 | 2021-10-21 | 基于fpga平台的多路并行dds双向线性扫频方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111229230.1A CN114115436B (zh) | 2021-10-21 | 2021-10-21 | 基于fpga平台的多路并行dds双向线性扫频方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114115436A CN114115436A (zh) | 2022-03-01 |
CN114115436B true CN114115436B (zh) | 2023-06-13 |
Family
ID=80376415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111229230.1A Active CN114115436B (zh) | 2021-10-21 | 2021-10-21 | 基于fpga平台的多路并行dds双向线性扫频方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114115436B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117686984B (zh) * | 2024-02-01 | 2024-05-07 | 西安电子科技大学 | 基于fpga的大带宽复杂扫频干扰信号生成方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090755B1 (en) * | 2007-05-25 | 2012-01-03 | Xilinx, Inc. | Phase accumulation |
CN102353968A (zh) * | 2011-10-09 | 2012-02-15 | 东南大学 | 一种基于fpga的gps信号捕获方法及其系统 |
CN103179063A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种频移键控调制装置及方法 |
CN104897994A (zh) * | 2015-06-10 | 2015-09-09 | 中国科学院光电技术研究所 | 一种基于fpga的全数字化高精度多路的扫频模块 |
CN106444963A (zh) * | 2016-11-30 | 2017-02-22 | 桂林电子科技大学 | 一种可编程dds任意波形信号发生器 |
CN106569543A (zh) * | 2016-09-12 | 2017-04-19 | 深圳市鼎阳科技有限公司 | 一种双通道信号发生器及其输出波形同步方法 |
CN206686144U (zh) * | 2017-04-13 | 2017-11-28 | 四川师范大学 | 一种高精度数字倍频系统 |
CN109542161A (zh) * | 2019-01-30 | 2019-03-29 | 北京昊海雅正科技有限公司 | 一种时钟信号发生装置及方法 |
CN111537806A (zh) * | 2020-02-28 | 2020-08-14 | 国家海洋技术中心 | 一种海洋地波雷达电磁信号现场计量装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6958635B2 (en) * | 2003-10-14 | 2005-10-25 | Qualcomm Incorporated | Low-power direct digital synthesizer with analog interpolation |
-
2021
- 2021-10-21 CN CN202111229230.1A patent/CN114115436B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090755B1 (en) * | 2007-05-25 | 2012-01-03 | Xilinx, Inc. | Phase accumulation |
CN102353968A (zh) * | 2011-10-09 | 2012-02-15 | 东南大学 | 一种基于fpga的gps信号捕获方法及其系统 |
CN103179063A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种频移键控调制装置及方法 |
CN104897994A (zh) * | 2015-06-10 | 2015-09-09 | 中国科学院光电技术研究所 | 一种基于fpga的全数字化高精度多路的扫频模块 |
CN106569543A (zh) * | 2016-09-12 | 2017-04-19 | 深圳市鼎阳科技有限公司 | 一种双通道信号发生器及其输出波形同步方法 |
CN106444963A (zh) * | 2016-11-30 | 2017-02-22 | 桂林电子科技大学 | 一种可编程dds任意波形信号发生器 |
CN206686144U (zh) * | 2017-04-13 | 2017-11-28 | 四川师范大学 | 一种高精度数字倍频系统 |
CN109542161A (zh) * | 2019-01-30 | 2019-03-29 | 北京昊海雅正科技有限公司 | 一种时钟信号发生装置及方法 |
CN111537806A (zh) * | 2020-02-28 | 2020-08-14 | 国家海洋技术中心 | 一种海洋地波雷达电磁信号现场计量装置 |
Non-Patent Citations (2)
Title |
---|
"双向多路快跳频载波发生器的设计与实现";陈雷 等;《河北大学学报(自然科学版)》;第41卷(第1期);第99-105页 * |
"基于FPGA的并行DDS信号发生器的设计与实现";邓岳平 等;《计算机工程与设计》;第2319-2323页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114115436A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101972661B1 (ko) | 클럭 주파수 체배기를 위한 방법 및 장치 | |
CN101419483B (zh) | 基于锁相环的时钟发生器及时钟发生方法 | |
CN104158515B (zh) | 一种自动同步的多通道并行存储dds信号发生器 | |
US3882403A (en) | Digital frequency synthesizer | |
CN114115436B (zh) | 基于fpga平台的多路并行dds双向线性扫频方法、系统及介质 | |
KR930022734A (ko) | 주파수 신서사이저 | |
US7151399B2 (en) | System and method for generating multiple clock signals | |
CN101051837B (zh) | Usb接口内建式振荡器的频率校正装置及其方法 | |
US4684897A (en) | Frequency correction apparatus | |
CN106230408A (zh) | 基于数字延时的数字脉冲宽度调制器 | |
US4185247A (en) | Means for reducing spurious frequencies in a direct frequency synthesizer | |
CN103716052A (zh) | Ad转换电路、半导体装置以及ad转换方法 | |
CN101371439A (zh) | 相位比较电路及使用该相位比较电路的pll频率合成器 | |
US9602115B1 (en) | Method and apparatus for multi-rate clock generation | |
CN117097330A (zh) | 延迟自校准电路、直接数字频率合成器及延迟自校准方法 | |
US8395429B2 (en) | Signal generating device and frequency synthesizer | |
US5153526A (en) | Numerical control type oscillator apparatus | |
CN102208911A (zh) | 基于fpga片内锁相环的窗口时钟生成和动态配置方法 | |
US5053982A (en) | Variable modulus digital synthesizer | |
CN115333484B (zh) | 一种多倍频扫频方法 | |
EP1645027B1 (en) | Method and apparatus for generation of arbitrary mono-cycle waveforms | |
GB1575629A (en) | Generator for generating sinusoidal electrical signals which are phase or frequency modulated by a digital method | |
US20120293213A1 (en) | Frequency synthesizer | |
US4940979A (en) | Combined rate/width modulation arrangement | |
JP2940220B2 (ja) | Fsk変調器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |