直接数字合成器.docx

上传人:b****8 文档编号:10517963 上传时间:2023-02-17 格式:DOCX 页数:10 大小:595.04KB
下载 相关 举报
直接数字合成器.docx_第1页
第1页 / 共10页
直接数字合成器.docx_第2页
第2页 / 共10页
直接数字合成器.docx_第3页
第3页 / 共10页
直接数字合成器.docx_第4页
第4页 / 共10页
直接数字合成器.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

直接数字合成器.docx

《直接数字合成器.docx》由会员分享,可在线阅读,更多相关《直接数字合成器.docx(10页珍藏版)》请在冰豆网上搜索。

直接数字合成器.docx

直接数字合成器

一、DDS基本原理

直接数字式频率合成器(DigitalDirectSynthesizer,简称为DDS)是以数字信号处理理论为基础,从信号的幅度相位关系出发进行频率合成的。

与传统的频率合成器相比,DDS具有极高的分辨率、快速的频率转换时间、很宽的相对带宽、任意波形的输出能力和数字调制等优点。

在数字化的调制解调模块中,频率合成技术用于电子系统和设备的频率源设计。

1、DDS设计思路

根据奈奎斯特取样定理,从连续信号的相位出发,对一个正弦信号取样、量化、编码,形成一个正弦函数表,储存在只读存储器中,合成时通过改变相位累加器的频率控制字,改变相位增量,相位增量的不同导致一周期内的取样点不同,从而使得输出频率不同。

2、DDS电路工作原理

设时钟频率为

输出频率为

累加器的宽度为

输出数据的宽度为

,频率控制字

相位控制字

每来一个时钟脉冲

,N位加法器将频率控制数据K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的输入端。

累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据K相加;另一方面将这个值作为取样地址值送入幅度/相位转换电路,幅度/相位转换电路根据这个地址输出相应的波形数据。

最后经D/A转换器和低通滤波器将波形数据转换成所需要的模拟波形。

相位累加器在基准时钟的作用下,进行线性相位累加。

当相位累加器加满量时就会产生一次溢出,这样就完成了一个周期,这个周期也就是DDS信号的频率周期。

输出频率为

时频率最小。

3、DDS特点

(1)频率分辨率高。

DDS的频率分辨率在fc固定时,取决于相位累加器的位数N,只要N足够大,理论上就可以获得相应的分辨精度,这是传统方法难以实现的。

(2)频率变换速度快。

在DDS中,一个频率的建立时间通常取决于滤波器的带宽。

影响因素为相位累加器,ROM内的工艺结构,D/A转换器及其它信号处理过程中可能产生的时延。

其中,信号处理的时延与时钟周期相关。

由于DDS中不要相位反馈控制,频率建立及切换快,与频率分辨率、频谱纯度相互独立,明显优于PPL。

(3)DDS中相位改变是线性过程。

数字相位累加器是优良的线性数字增值发生器。

因此,DDS的相位误差主要依赖于时钟的相位特性,相位误差小。

另外,DDS的相位是连续变化的,形成的信号具有良好的频谱特性,这是传统的直接频率合成方法所无法实现的。

(4)输出频率范围宽。

理论上,DDS输出的频率范围在0~fc/2,实际上,考虑到低通滤波器的设计,为40%fc,而FPGA的时钟频率可达到100MHz,因此,利用FPGA,可以实现输出频率范围很宽的正弦信号。

 

二、DDS的代码设计

本设计是基于QuartusII软件平台的。

QuartusIIdesign是最高级和复杂的,用于system-on-a-programmable-chip(SOPC)的设计环境。

QuartusII设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmeddevices开发的统一工作流程。

作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

根据设计要求,在FPGA上实现的电路部分见下图。

1、定制ROM

1)Matlab生成sin函数数据

在Matlab主窗口中输入以下命令,生成data.mif文件存储sin函数数据。

累加器的宽度为

,输出数据的宽度为

2)Quartus2生成rom.mif,格式如下图,将Matlab生成的data.mif中数据拷贝到rom.mif中CONTENTBEGINEND之间。

3)Quartus2生成rom.v

利用Quartus2里的MegaWizardPlug-INManager设置相关数据,导入以上生成的rom.mif文件,生成rom.v。

注意设置address=8,输出q=10。

2、累加器模块的设计

累加器模块主要用于rom地址的生成,代码如下:

3、Top模块的设计

Top模块用于调入acc和rom模块

4、建立工程

使用Quartus2软件建立DDS工程,调入rom.v,dds.v,acc.v文件

三、DDS的FPGA实现

本设计所使用的FPGA是Altera中等规模FPGA:

Cyclone(飓风),2003年推出,0.13um工艺,1.5v内核供电,与Stratix结构类似,是一种低成本FPGA系列,是目前主流产品,其配置芯片也改用全新的产品。

1、模式选择

在FPGA板子上选择模式1,键7,键8分别作为清零信号和使能信号,键1、键2构成频率控制字,键3、键4构成相位控制字。

2、引脚设置

在Quartus软件中选择Assignment下Pins进行引脚设置,具体设置见下图:

代码端口

信号名称

引脚号

clear

PIO48

107

clock

CLOCK0

123

en

PIO49

108

freg[3:

0]

PIO3-0

freg[7:

4]

PIO7-4

phase[3:

0]

PIO11-8

phase[7:

4]

PIO15-12

out[0]

P94

out[1]

P91

out[2]

P82

out[3]

P79

out[4]

P62

out[5]

P61

out[6]

P60

out[7]

P59

out[8]

P58

out[9]

P57

3、Quartus编译

点击StartComplication,编译完成若出现如下情况表示编译成功。

3、外围电路连接

由于要将sin函数波形显示出来,所以要用到示波器。

将示波器的信号端连接到GWAC3的AOUT(A),接地端接到GWAC3的GND。

4、下载调试

点击Programmer,导入dds.sof,点击Start开始下载,Process进行到100%时表示下载成功。

调试时,在FPGA板子上选择模式1,将键7(清零信号)和键8(使能信号)置于高电平。

初始时示波器显示一条直线(如图1),按一下键1产生一个脉冲表示频率控制字加1,按一下键2表示频率控制字加0001_0000,图2图3分别表示按了一次和两次键1之后得示波器图形,图4、5、6是按了多次键1键2之后示波器的波形图。

键3、键4构成相位控制字,按键3键4进行相位控制,但是在示波器上没法显示出来的。

四、收获感想

通过这一周半的课程设计,我对一些专业知识和数字集成电路设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。

本次课程设计主要是对本学年学习的VerilogHDL和超大规模集成电路的应用,同时加上一些设备的应用,设计的课题。

经过几天的奋战,我感受很深。

1、首先感谢两位老师在整个课程设计过程中给予我们的帮助和支持。

老师在百忙之中抽出时间来为我们排忧解难,我们大家都很感动。

2、肯定自己在整个设计过程中所做的努力,作为小组负责人,通过资料收集,代码编写,软件的熟悉、上板调试等过程,自身的能力也得到了进一步提高。

3、课程设计是个团队活动,我们运用各自在各方面的优势中和起来,形成了一个团队。

通过团队力量,才使设计得以完成。

可以说,我们四个人是一个不可或缺的整体,少了任何一个人都是无法完成任务的.

4、最后需特别强调的是自己在问题出现时,解决问题的能力还很薄弱,还需进一步提高。

在课程设计过程中,当自己碰到什么麻烦时,首先想到的是想同学和老师求助,而没有自己主动去寻求解决问题的办法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1