基于FPGA的DDS信号源研究与设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的DDS信号源研究与设计
南楠;赵立新
【摘要】可编程逻辑器件FPGA具有便于编程、开发周期短、集成度高、功能强大、开发工具智能化、保密性好等特点,被广泛应用于通信及数字设计等领域.将DDS技术和FPGA器件相结合,采用加扰方法,利用HDL语言和原理图设计了一种
基于FPGA的DDS信号源,它不仅能产生正(余)弦波、三角波、锯齿波、方波等常见波形信号,而且还能产生调频信号、调幅信号等调制信号以及扩频信号.实验结果
表明,该设计电路稳定性好,能够使DDS电路在精确度与灵活性方面得到很大提高.【期刊名称】《沈阳工程学院学报(自然科学版)》
【年(卷),期】2016(012)001
【总页数】9页(P74-82)
【关键词】DDS数字信号发生器;FPGA;信号波形;Verilog HDL语言
【作者】南楠;赵立新
【作者单位】三门峡职业技术学院信息传媒学院,河南三门峡472000;三门峡职业
技术学院信息传媒学院,河南三门峡472000
【正文语种】中文
【中图分类】TN74
近些年,高密度、高集成度的可编程逻辑器件FPGA发展迅速,是硬件设计中的
研究热点,与CPU、DSP一起被誉为未来数字电路系统的三块基石。

FPGA具有
便于编程、开发周期短、集成度高、功能强大、开发工具智能化、保密性好等特点,
随着电子工艺水平的不断提高,FPGA的制造成本也越来越低。

目前,FPGA已是硬件设计的首选方式之一,被广泛应用于通信及数字设计等领域。

随着先进CMOS工艺生产技术的发展,很多芯片制造厂商致力于研究多功能和高性能的DDS芯片。

目前,DDS芯片推陈出新,AD公司研制的AD985X系列芯
片更是得到广泛应用,为电路设计者提供了更多的方便和选择。

对于DDS输出的频谱,国内外学者也做了大量的分析,归纳出误差的频域分布规律,创建出相应的误差模型。

同时,基于DDS的频谱特性,降低杂散功率的一些方法也被提出:提高无杂散动态范围可采用随机抖动法;降低带内误差功率可采用采样的方式。

但这些方式仍难同时避免DDS输出杂散信号量多和带宽受限的缺点,且难以复
用。

FPGA实现DDS技术更加灵活,更易于集成,具有多种调制方式,能够集合多种DDS芯片的功能,能够采用多种组合方式[1]。

在置频速率、控制方式等方面,专用DDS芯片与所设计系统的指标要求可能相差较大,FPGA实现DDS技术就
可以很好地解决这个问题,即利用高性能的FPGA器件来满足DDS电路的设计要求。

DDS信号源将设计产生3种类型信号波形:单频信号的波形、调制信号的波形和
扩频信号的波形。

单频信号包括三角波、正(余)弦波、方波和锯齿波;调制信号主要包括调幅信号、调频信号、二进制振幅键控信号、二进制移频键控信号、二进制移相键控信号等;扩频信号只产生直接序列扩展频谱系统信号[2]。

模块化流程设
计如图1所示。

单频信号是依靠相位累加器持续累加控制字从而得到地址来实现的,生成的地址用来寻址波形的ROM,寻址到的ROM中存储的是单频类型信号的一个或者部分周期的幅度值,再将ROM输出,即得到单频类型信号波形的幅度离散值。

调制类型信号或者扩频类型信号需要调用单频类型信号的正弦模块或余弦模块,其模块化流程设计如图2所示。

线程1由频率类型控制的字来完成相关载波类型信号的生成,而线程2主要进行
波形变换。

输入的序列经过模数或数模转换后,传递给线程2,最后2个线程共同合成所需的输出信号。

在合成波形的过程中,可以使用预先存储在ROM中的调制信号波形进行输入。

另外,在设计中采用了相位加扰技术,主要是为了抑制相位截断误差引起的杂散信号。

1984年,美国Xilinx公司推出首个用户现场可编程门阵列FPGA器件。

FPGA芯片具有一些其他PLD芯片无法比拟的优点,例如集成度高、功耗低、易于快速编程、使用灵活和引脚配置方便等,因此得到了设计师们的青睐,为数字电路系统的设计方式带来了变革[3]。

Verilog HDL语言是应用较为广泛的HDL语言之一,其基本描述单元是模块,若干个模块组成了整个Verilog HDL设计系统。

从实际意义角度上讲,模块是实现
硬件电路的逻辑实体,用来描述所设计的单个结构或特定功能,并与其他模块建立外部端口进行通信。

在使用Verilog HDL语言进行系统设计时,软件编程应与相应的硬件电路密切结
合起来,主要分为以下3个步骤:①将系统划分成各个模块;②设计各模块接口;
③连接各模块完成整体设计,图3为典型的Verilog HDL的设计流程。

Verilog HDL语言虽然具有使用灵活、可移植性好的优点,但其效率比原理图低。

而原理图输入法具有效率高、直观、可控性好等优点,但却不适用于大规模逻辑电路的设计。

因此,在实际的系统设计中,大多采用Verilog HDL语言和原理图设
计输入法相结合,取长补短,用较短的时间就可以设计出较高质量的数字电路系统。

DDS周期波形FPGA的设计以正余弦类波形为例,信号源所输出的正(余)弦类型
波的模块含两部分:正(余)弦查找表和象限确定模块。

1)象限确定模块
象限确定模块可以将相位累加器的输出结果转成正弦或余弦查找表的数值,从而确
定相位输出结果在哪个象限。

由正弦波或者余弦波特性可知,一个波形完整的周期可由(0~π/2)内的波形经过部分变形转换计算得出,这就需要用到正(余)弦对照表,如表1和表2所示。

象限类型计算模块的控制端用来接(U31、U30),这是相位计算累加模块进行输送
出来最高类型的两位。

模块的输出包含2部分:①符号位输出;②将U29-U22进行变换后的输出。

采用这种方式以后,正(余)弦类型计算查找表的占用量减少为
1/4,提高了存储效率,降低了查找表的存储空间。

由象限类型计算模块的Verilog HDL语言程序生成象限类型计算模块,其生成的
符号如图4所示,象限类型计算模块的波形如图5所示。

2)正(余)弦查找表
正(余)弦查找表的原理是将象限确定模块传递过来的八位寻址位转化为代表正(余)
弦波形幅度数值大小的一组数列,它可以用ROM来实现。

象限类型计算模块输出的八位寻址位就是ROM的地址,而每个相位经过计算后得到的相应幅度值则存储在了ROM内部。

也就是说,把计算得到的幅度值存成
“.mif”类型的文件,再调用ROM块,然后进行设置,就能设计出2块大小为256×13(波形256点,13位幅值)的ROM,它们存储了1/4周期的正(余)弦波形。

将u_sin[7:0]作为正(余)弦类型查找计算表的输入,然后对相位类型的控制字不断
进行累加,就可以使正(余)弦波模块输出相应的16进制序列,然后再继续进行数
模类型转换和低通滤波变换就能得到所需的正(余)弦波形[4]。

3)正(余)弦波模块设计
正(余)弦波模块的电路如图6所示。

加扰类型计算模块为
m_sequence_generator,相位累加计算模块为phase_add,象限类型计算模块
为quadrant,正弦类型查找计算表为lpm_rom_cos,余弦类型查找计算表为
lpm_rom_sin,clk为时钟周期。

在c[31:0]端输入控制字,它在时钟周期的作用
下不断地进行持续累加,然后将形成的高位十位传递到象限类型计算模块,经过象限类型计算后再送给正(余)弦类型查找计算表,最后由相应的正(余)弦类型查找计
算表输送出来对应的数值[5]。

如图6中所示,正弦波的波形的符号类型位为T_sin,余弦波的波形的符号类型位为T_cos,正弦波的波形幅度为q_sin[12:0],余弦波
的波形的幅度为q_cos[12:0]。

正(余)弦波模块的仿真时序如图7所示(频率类型控制字c为4FFFFFFF)。

依据扩频波和调制波合成设计的原理,模拟调制系统需要用2个线程来设计:线
程1可以直接调用正(余)弦模块来实现;线程2要进行波形变换,基于各种调制波的特点,先将输入的基带波变成(0、1)序列,然后分别在FPGA中进行设计。

利用混频计算器将线程1的波形和线程2的波形进行合成,其实现电路如图8所示。

其中,一个基带信号的输入为线程2,这个信号经过串并转换或者经A/D采
样后得到输出值,另外一个进行输入的信号为本地载波。

乘法类型计算器采用的是宏单元lpm_mult,进行I/O位数配置后,2个13位无
符号数就可以简单地完成乘法运算。

在此基础上,再加上异或门,就可以作为14
位的运算器,那么14位符号位的乘数运算结果将被输出,即为乘积结果的符号位。

4.1 调幅信号调制波形模块设计
调幅信号的调制表达式为
其中,m0>|m′(t)|。

cos(ωct)可以基于线程1来实现,通过借来余弦类型计算模
块可直接实现;[mo+m′(t)]可以基于线程2来实现,首先进行模数变换,然后将
线程1与生成结果混频。

调幅信号调制的实现电路如图9所示。

在图9中,Xn_n[12..0]为(0、1)序列是[mo+m′(t)]经过波形变换得到的;
sin_cos_total模块调用的是正(余)弦类型计算模块;hun_pin_qi模块主要是用来
完成调制类型波与载波类型的波形简单合成,它调用的是混频计算器类型模块。

调幅信号的调制类型信号波形仿真如图10所示(频率控制字c为4FFFFFFF)。

4.2 调频信号调制波形模块设计
调频信号的调制表达式为
其中,K为频率类型控制的字,KFM为调制类型指数,K0=2NKFMTs/2π。

调频信号的调制类型信号FPGA生成途径如图11所示。

序列Xn为二进制序列,它是波形经过数字转换得到的,它与K0的乘积送入加法器输入端1。

输入端2为频率控制字K,相位寄存器的输出连接输入端3。

可见,调频信号调制类型波模块与正弦类型波计算模块的原理差不多。

直接序列扩展频谱系统获得的直序扩频信号主要是由复合码通过控制载波相位来完成的,这种复合码是由高速率的伪随机码序列与待传信号模二相加形成。

一般直接序列均采用二进制移相键控信号或正交差分移相键控信号。

直接序列扩展频谱系统模块电路如图12所示。

xiao_m_xu_lie可以产生周期为
(2n-1)的m序列,这就是伪码产生模块;2PSK模块是二进制移相键控信号模块,它调用的是已有的二进制移相键控信号模块,它的输出就是直接序列扩展频谱系统的输出信号,直接序列扩展频谱系统波形仿真如图13所示。

DDS是目前应用较为普遍的一种频率合成技术,其体积小、功耗低,在电视网络、通信、遥感测控等领域应用广泛。

将DDS技术和FPGA器件两者的优点相结合,利用HDL语言和原理图并应用加扰方法使用FPGA实现DDS,能完成常见波形信号、调制信号以及扩频信号等多种信号的设计,能方便利用编程加入加扰技术来抑制杂散,提高信号的频谱质量,使DDS芯片应用更为灵活,具有较广的应用领域和较宽的应用前景。

【相关文献】
[1]杜勇.数字通信同步技术的 MATLAB 与 FPGA 实现[M].北京:电子工业出版社,2013.
[2]张博,张斌.基于 FPGA 的数字频率合成器设计与实现[J].应用科技,2015,42(1):28-31.
[3]汤兵兵.基于DDS技术的信号发生器设计与实现[D].南昌.南昌大学,2015.
[4]彭龙.200MSPS任意波形发生器数字电路设计[D].成都.电子科技大学,2012.
[5]毛群,王仕旭,王建国.基于FPGA的DDS调频信号发生器设计与实现[J].西昌学院学报:自然科学版,2014,28(4):57-59.。

相关文档
最新文档