基于FPGA的DDS信号发生器的设计

时间:2024-09-12 12:08:56 硕士毕业论文 我要投稿
  • 相关推荐

基于FPGA的DDS信号发生器的设计

引言
  
  直接数字频率合成(Direct Digital Frequency Synthesis)是一种以奈奎斯特采样定理及数字信号处理为基础,从相位概念出发的全数字频率合成方法。实现DDS 功能可用专用的DDS芯片,也可利用高性能的现场可编程门阵列(Field Programmable Gate Array)。与前者相比,后者具有设计简单,开发灵活,应用成本低等优点。本文以FPGA 为基础,设计DDS 信号发生器。设计目标:输出频率范围1Hz~1MHz,频率可调,输出频率精度大于0.1%,输出频率峰峰值为5V。
  
  1 DDS 基本原理
  
  由奈奎斯特采样定理可知,当采样频率大于被采样信号最高频率的2 倍时,通过采样得到的数字信号可完整的还原被采样信号。基于奈奎斯特采样定理,系统首先对需要产生的信号进行采样,量化后存入数据存储器。在参考时钟作用下,相位累加器按照预先设定的频率控制器进行地址累加,此地址即为信号在数据表中对应地址。根据地址从数据表中依次读取数据,产生数字化的信号,此信号通过D/A 转换和低通滤波等处理即可变成所需模拟信号[3]。  
  下面以正弦波信号的产生为例说明DDS 的工作原理。假设某一频率的正弦信号可表示为
  v(t) = Asin(wt +θ )
  式中,A 为正弦波幅值,w 为正弦信号角频率,θ 为初始相位。由于A 和θ 不变,则令A=1,θ =0,得到归一化表达式
  v(t) = Asin(wt)
  对于连续的正弦波信号,其相位与时间呈线性关系[2]。由这一关系可知,在一定频率的时钟信号作用下,通过一个线性的相位累加器对相应的波形存储器扫描,即可周期性地读取波形存储器中的数据,从而合成相应的正弦波信号。如果提高时钟信号频率,则数据的扫描频率加快,数据读取速度加快,读取一个正弦波数据的时间就会缩短,输出信号的频率增大,反之亦然[5]。
  
  2 DDS 的实现方案
  
  DDS 系统主要由FPGA 核心电路、D/A 转换电路、低通滤波电路、键盘电路和显示电路组成。系统具体实现框所示。
  系统分别以Altera Cyclone II 系列FPGA EP2C8 和VerilogHDL语言为硬件及软件平台,在此基础上构建DDS 核以及相关模块。FPGA 核心电路产生的阶梯数字信号通过D/A 转换电路转换为对应的模拟信号。综合考虑,采用TLC5620 为D/A 转换芯片。该芯片为8 位串行输入D/A 转换器,选择其参考电压为5V,输出电压控制位选择为1 倍输出。由于转换后的数字信号是阶梯形的模拟信号,在D/A 转化后利用低通滤波对信号进行平滑处理。低通滤波电路以OP07 为核心,设计为压控压源的二阶低通滤波。为方便用户操作,在系统中引入键盘电路和数码管显示电路,用户可自由调节输出频率,并通过数码管观察实时输出频率。
  
  3 设计优化
  
  3.1 相位累加器的优化
  相位累加器是决定DDS 性能的关键部分。在系统的参考时钟一定时,相位累加器的位数决定了输出频率的分辨率[7]。但是,相位累加器的位数越大,整个系统的速度就越慢。为此,在相位累加器中引入流水线技术。即把一个时钟周期内要完成的逻辑操作分成几步小的操作,并在各个操作中插入时钟周期,以此提高数据的吞吐速率。相位累加器优化结构图如所示。
  图中32 位的相位累加器采用4 级流水线结构。每条流水线完成8 位数据的运算,流水线之间进行级联。流水线最后的数据通过一级寄存器输出。输出寄存器同时提取相位累加器的高8 位作为波形存储器的查找地址,与波形存储器相连。实验表明,运用流水线技术可以成倍提高相位累加器的运算速度,但是这也大大消耗了FPGA 的逻辑资源。
  
  3.2 波形存储器的优化
  波形存储器中存储着完整的波形采样数据。如果正弦波采样深度为N 位,那么M 位相位累加器就决定了波形存储器所需存储空间为N*2M 位。当M=32,N=8 时,则需要4096M的存储空间,可见,必须对波形存储器进行优化,提高其利用率。在相位累加器的优化中,已经利用最后一级寄存器对输出地址进行了截位处理,但这还远远不够。因此,还必须利用正弦波的对称性对波形存储器进行进一步优化[4]。其优化结构图如所示。
  图中,相位累加器的输出地址的最高位连接到相位转换器,相位转换器根据输出地址最高位值判断波形处于前半个周期(0~π)还是后半个周期(π~2π)。而地址转换器通过输出地址的次高位值判断波形是上升(0~π/2)还是下降(π/2~π)。从优化方式可知,经过优化后的波形存储器所需空间仅为以前的1/4。
  
  3.3 按键模块的优化
  在频率调整的过程中,键盘是必不可少的。但是,键盘的动作极有可能产生毛刺,由于DDS 系统的频率较高,毛刺可能带来系统的误操作。因此,在按键操作时需要加入按键去抖模块,以提高按键输入的灵敏度。按键去抖模块部分程序如下:
  parameter TIME=10;// 设置去抖时间为10ms
  clk)
  if(key_in ! = 4’hf)if(scan = = TIME) // 有键按下10ms 后读健
  begin key_en <= 1’b1; scan <= 1’b0; end
  else
  begin key_en <= 1’b0; scan <= scan + 1’b1; end
  else
  begin
  if(scan != 0) scan <= scan – 1’b1;
  else begin scan <= scan;
  key_en <= 1’b0;
  endend
  
  4 系统测试
  
  在系统构建完成后,用示波器观察输出波形。经测量,信号发生器输出频率峰峰值稳定在5V 左右,输出频率范围满足设计要求。现测量7 组数据,每组数据测量5 次,测试数据如下所示。
  测试结果表明,系统基本满足预先设计要求,但在低频时系统精度不甚理想。分析其原因,有可能是在相位累加器地址截位处理时截取位数过多所致。在系统完善过程中可通过减少截位位数,也可提高信号的采样深度进一步提高系统的精度。
  
  5 结束语
  
  本文介绍了直接数字频率合成器的基本工作原理,并在此基础上利用FPGA 平台实现了直接数字频率合成器的设计。系统中除了D/A 转换器和低通滤波器外,其他电路都集成在FPGA 中。该方案简化了系统的设计难度,用户可根据自身信号需要更改FPGA 中的程序,更加灵活的设计直接数字频率合成器。

中国硕士论文网提供大量免费硕士毕业论文,如有业务需求请咨询网站客服人员!
  
  参考文献
  [1] 夏宇闻. Verilog 数字设计教程[M]. 北京:北京航空航天大学出版社,2003.
  [2] 白居宪.直接数字频率合成[M]. 西安:西安交通大学出版社,2007.
  [3] 罗杰汉,程光伟. 基于FPGA 的DDS 设计[J]. 电子设计工程,2012,18(1):66~70.
  [4] 李康顺,吕小巧. 基于改进DDS 技术的FPGA 数字调制器研究与实现[J]. 压电与声光,2012,31(6) :852-855.
  [5] 罗杰. Verilog HDL 与数字ASIC 设计基础[M]. 武汉:华中科技大学出版社,2005.
  [6] 吴继华,王诚. 设计与验证Verilog HDL[M]. 北京:人民邮电出版社,2006.
  [7] 吴曙荣,杨银堂. 用FPGA 实现DDS 设计[J]. 航空计算技术,2006,36(1):40~45.

【基于FPGA的DDS信号发生器的设计】相关文章:

基于FPGA的多功能波形信号发生器11-22

基于DDR SDRAM的信号发生器设计与实现03-30

基于DDS技术的声纳信号模拟器03-21

基于DDS技术的正弦衰减信号源03-07

基于VHDL的DDS的设计与分析03-07

基于EDA技术的FPGA设计03-18

基于软件无线电的多制式信号发生器的设计与实现03-19

基于FPGA的TS over lP的设计与实现03-21

基于FPGA的毫米波多目标信号形成技术的研究03-19