




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号:03063059南阳师范学院2007届毕业生毕业论文(设计)题 目: 基于现代dsp技术的dds设计 完 成 人: 班 级: 2003-03 学 制: 4 年 专 业: 电子信息与科学技术 指导教师: 完成日期: 2007-03-31 目 录摘要 1 引言(1)2 直接数字频率合成器原理简介(2)2.1 频率预置与调节电路(3)2.2 累加器(3)2.3 控制相位的加法器(4)2.4 控制波形的加法器(4)2.5 波形存储器(4)2.6 d/a转换器(4)2.7 低通滤波器(5)3 基于dsp_builder的dds设计(5)3.1 dsp_builder简介(5)3.2 dsp builder设计原理及参数设置(5)3.3 dds的fpga实现(9)3.4 仿真结果(10)4 结论(10)参考文献 (11)abstract (12)基于现代dsp技术的dds设计作 者:王 兴指导老师:张 帅摘要:该设计选择了以pld器件为平台,在其上构建dds的设计方案,本文介绍了以一片pld芯片cyclone1c12为控制核心,利用dsp_builder软件设计dds。关键词:直接数字率合成器;现代dsp技术;fpga1 引言 dds技术可以理解为数字信号处理中信号综合的硬件实现问题,它的传统方法是相位累加器pa在频率控制字的控制下,以参考时钟频率fc为采样频率,产生待合成信号的数字线性相位序列,将其高位作为地址码寻址波形存储器rom,产后对应信号波形的数字序列,再由模数转换器dac将其变换成阶梯模拟信号,最后由具有内插作用的低通滤波器lpf平滑为连续的正弦波形输出。采用这种结构的最大缺点是界出频谱中杂散较大,并且只能产生有限种波形,缺乏灵活性,欲获取得较好的频谱纯度,对存贮器容量提出了很高的要求。在此介绍一种基于fpga芯片的直接数字频率合成器,预计可以得到较多的波形和较好的频谱纯度。新一代的直接数字频率合成器采用全数字的方式实现频率合成,与传统的频率合成技术相比,具有以下特点:(1)频率转换快。直接数字频率合成是一个开环系统,无任何反馈环节,其频率转换时间主要由频率控制字状态改变所需的时间及各电路的延时时间所决定,转换时间很短。(2)频率分辨率高、频点数多。dds输出频率的分辨率和频点数随机位累加器的位数的增长而呈指数增长。(3)相位连续。dds在改变频率时只需改变频率控制字(即累加器累加步长),而不需改变原有的累加值,故改变频率时相位是连续的。(4)相位噪声小。dds的相位噪声主要取决于参考源的相位噪声。(5)控制容易、稳定可靠。高集成度、高速和高可靠是fpga/cpld最明显的特点,其时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。在高可靠应用领域,如果设计得当,将不会存在类似于mcu的复位不可靠和pc可能跑飞等问题。cpld/fpga的高可靠性还表现在,几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。所以,采用fpga来实现dds有明显的好处3 9 10。2 直接数字频率合成器原理简介 直接数字频率合成器(direct digital synthesizer)是从相位概念出发直接合成所需波形的一种频率合成技术。一个直接数字频率合成器由相位累加器、加法器、波形存储rom、d/a转换器和低通滤波器(lpf)构成。dds的原理框图如图下所示图1 dds的原理框图9其中k为频率控制字、p为相位控制字、w为波形控制字、fc为参考时钟频率,n为相位累加器的字长,d为rom数据位及d/a转换器的字长。相位累加器在时钟fc的控制下以步长k作累加,输出的n位二进制码与相位控制字p、波形控制字w相加后作为波形rom的地址,对波形rom进行寻址,波形rom输出d位的幅度码s(n)经d/a转换器变成阶梯波s(t),再经过低通滤波器平滑后就可以得到合成的信号波形。合成的信号波形形状取决于波形rom中存放的幅度码,因此用dds可以产生任意波形。这里我们用dds实现正弦波的合成作为说明介绍。2.1 频率预置与调节电路k被称为频率控制字,也叫相位增量。dds方程为:f0=fck/2n,f0为输出频率,fc为时钟频率。当k=1时,dds输出最低频率(也即频率分辨率)为fc/2n,而dds的最大输出频率由nyquist采样定理决定,即fc/2,也就是说k的最大值为2n-1。因此,只要n足够大,dds可以得到很细的频率间隔。要改变dds的输出频率,只要改变频率控制字k即可。2.2 累加器图2 累加器框图相位累加器是由n位加法器与n位寄存器级联构成。每来一个时钟脉冲fc,加法器将频率控制字k与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。寄存器将加法器在上一个时钟作用后所产生的相位数据反馈到加法器的输入端;以使加法器在下一个时钟作用下继续与频率控制字进行相加。这样,相位累加器在时钟的作用下,进行相位累加。当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作。2.3 控制相位的加法器通过改变相位控制字p可以控制输出信号的相位参数。令相位加法器的字长为n,当相位控制字由0跃变到p(p0)时,波形存储器的输入为相位累加器的输出与相位控制字p之和,因而其输出幅度编码相位会增加p/2n,从而使最后输出的信号产生相移10。2.4 控制波形的加法器通过改变波形控制字w可以控制输出信号的波形。由于波形存储器中的不同波形是分块存储的,所以当波形控制字改变时,波形存储器的输入为改变相位后的地址与波形控制字w(波形地址)之和,从而使最后输出的信号产生相移。2.5 波形存储器用相位累加器输出的数据作为波形存储器的取样地址,进行波形的相位幅值转换,即可在给定的时间上确定输出的波形的抽样幅值。n位的寻址rom相当于把0360的正弦信号离散成具有2n个样值的序列,若波形rom有d位数据位,则2n个样值的幅值以d位二地制数值固化在rom中,按照地址的不同可以输出相应相位的正弦信号的幅值11。相位幅度变换原理图如图3所示: 图3 相位幅度变换原理图2.6 d/a转换器d/a转换器的作用是把合成的正弦波数字量转换成模拟量。正弦幅度量化序列s(n)经过d/a转换后变成了包络为正弦波的阶梯波s(t)。需要注意的是,频率合成器对d/a转换器的分辨率有一定的要求,d/a转换器的分辨率越高,合成的正弦波s(t)台阶数就越多,输出的波形的精度也就越高。2.7 低通滤波器对d/a输出的阶梯波s(t)进行频谱分析,可知s(t)中除主频f0外,还存在分布在fc,2fc两边f0处的非谐波分量,幅值包络为辛格函数。因此,为了取出主频f0,必须在d/a转换器的输出端接入截止频率为fc/2的低通滤波器。3 基于dsp_builder的dds设计 3.1 dsp_builder简介 dsp_builder是美国altera公司推出的一个面向dsp开发的系统级工具,他集成在matlab的simulink工具箱中,使得用fpga设计dsp系统完全通过simulink的图形化界面进行建模、系统级仿真,设计模型可直接向vhdl硬件描述语言转换,并自动调用quartus等eda设计软件,完成综合、网表生成以及器件适配乃至fpga的配置下载,使得系统描述与硬件实现有机的融合为一体,充分体现了现代电子技术自动化开发的特点与优势。3.2 dsp builder设计原理及参数设置 基于dsp builder的dds系统如图4和图5所示,dds子系统subsystem有3个输入,分别为freqword(32位频率控制字)、phaseword(32位相位控制字)、amp(10位幅度控制字);一个输出,即10位ddsout输出。2个parallel adder subtractor分别为相位累加器和相位调制器,lut为正弦rom查找表。设置simulink的仿真停止时间stop time为5,仿真步进fixed step size为le-3。图5对应频率、相位和幅度控制字分别为4000000,0和10(参数1)时dds系统的输出波形.图4 dds子系统图中,dds子系统subdds共有三个输入,分别为freqword(频率字输入)、phaseword(相位字输入)和amp(幅度控制输入);一个输出,为ddsout。输入/输出模块的参数设置如下:freqword模块:(altbus)库:altera dsp builder中bus manipulation库参数“bus type”设为“signed integer”参数“node type”设为“input port”参数“number of bits”设为“32”phaseword模块:(altbus)库:altera dsp builder中bus manipulation库参数“bus type”设为“signed integer”参数“node type”设为“input port”参数“number of bits”设为“16”amp模块:(altbus)库:altera dsp builder中bus manipulation库参数“bus type”设为“signed integer”参数“node type”设为“input port”参数“number of bits”设为“10”ddsout模块:(altbus)库:altera dsp builder中bus manipulation库参数“bus type”设为“signed integer”参数“node type”设为“output port”参数“number of bits”设为“10”由delay模块和parallel adder subtractor模块以及phaseword1模块构成相位累加器,其参数如下:parallel adder subtractor模块:(parallel adder subtractor)库:altera dsp builder中arithmetic库参数“number of inputs”设为“2”,“add(+)sub(-)”设为“+”选择“pipeline”参数“clock phase selection”设为“1”delay模块:(delay)库:altera dsp builder中storage库参数“depth”设为“1”参数“clock phase selection”设为“1”phaseword1模块:(altbus)库:altera dsp builder中bus manipulation库参数“bus type”设为“signed integer”参数“node type”设为“internal node”参数“number of bits”设为“32”相位调整部分由parallel adder subtractor1模块和busconversion2模块构成,参数如下:parallel adder subtractor1模块:(parallel adder subtractor)库:altera dsp builder中arithmetic库参数“number of inputs”设为“2”,“add(+)sub(-)”设为“+”选择“pipeline”参数“clock phase selection”设为“1”busconversion2模块:(busconversion)库:altera dsp builder中bus manipulation库参数“input bus type”设为“signed integer”参数“input number of bits.”设为32参数“output bus type”设为“signed integer”参数“output number of bits.”设为“10”参数“input bit connected to output msb”设为“31”参数“input bit connected to output lsb”设为“22”使用“round”剩下的模块构成幅度控制部分,模块参数如下:product模块:(product)库:altera dsp builder中arithemtic库参数“pipeline”设为“2”参数“clock phase selection”设为“1”不选择“use lpm”busconversion3模块:(busconversion)库:altera dsp builder中bus manipulation库参数“input bus type”设为“signed integer”参数“input number of bits.”设为“20”参数“output bus type”设为“signed integer”参数“output number of bits.”设为“10”参数“input bit connected to output msb”设为“18”参数“input bit connected to output lsb”设为“9”使用“round”使用“saturate”最后,建立子系统。至此,基本dds模型就建立完成。在此调用上面设计的dds子系统subdds,构建一个简单的dds应用模型,见图5图5 dds的使用图6 dds仿真波形图3.3 dds的fpga实现 matlab/simulink对已经设计好的dds系统进行编译,通过调用dsp builder的signalcompiler工具可直接生成quartus 工程文件,再调用quartus完成综合,网表生成和适配,直至完成fpga的配置下载过程。本设计方案采用的fpga芯片是altera公司的cyclone系列芯片ep1c6q240c8,其容量6000个逻辑宏单元,等效于标准15万逻辑门电路6,速度为-8,完成可通过单片芯片电路实现dds,相位累加和相位调制器均为32位,正弦rom查找表存储102410b波形数据,系统时钟为55.6mhz,利用fpga可以根据需要方便地实现各种比较复杂的调频,调相和调幅功能,具有较好的实时性。 3.4 仿真结果 对dsp builder生成的工程文件进行仿真,针对参数设置的dds系统,其仿真波形图如图7所示。 图7 仿真波形图4 结论 利用可编程逻辑芯片设计dds的方法通常是采用vhdl语言输入和原理图法相结合来设计整个信号发生电路,这种方法通常需要调用很多模块,综合性较强,对设计者要求较高。本文利用quartus和matlab/simulink之间的接口工具dsp builder来设计整个dds系统,dsp_builder具备一个友好的开发环境,并且和quartus交互性强,易于使用。设计者只需简单了解vhdl描述语言,就可以直接调用已经建立好的matlab和simulink设计流程,通过simulink的图形化界面进行建模、系统级仿真,并子对调用quartus进行综合,网表生成和适配,最后完成向fpga4的配置下载过程。整个设计思路灵活,图形界面简单直观,开发周期短。仿真结果表明,该设计方案原理正确,行之有效。用fpga实现dds较专用dds芯片更为灵活,只要改变fpga中rom内的数据和控制参数5,dds就可以产生任意调制波形,且分辨率高,具有相当大的灵活性。将dds设计嵌入到fpga芯片所构成的系统中,其系统成本并不会增加多少,而购买专用芯片的价格则是前者的很多倍。所以采用fpga设计dds系统具有很高的性价比。参 考 文 献1候伯亨,顾新.vhdl硬件描述语言与数字逻辑电路设计m.西安:西安电子科技大学出版社,1999.2张昌凡,等.可编程逻辑器件及vhdl设计技术m.广州:华南理工大学出版社,2001.3曾繁泰,陈美金.vhdl程序设计m.北京:清华大学出版社,2001.4潘松等.vhdl实用教程m.成都:电子科技大学出版社,2000.5李景华,杜玉远.可编程逻辑器件与eda技术m.沈阳:东北大学出版社,2000.6dan morelli.modu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天文考试试题及答案
- 新学期校长第一次在国旗下讲话:从“敢碰难事儿”开始
- 2025年公务员选调考试练习试题与参考题答案
- 2025年秋季开学第一周校长在国旗下讲话:以奋斗之姿绘金秋成长画卷
- 2025年高级经济师之工商管理真题附答案
- 武汉高考模拟试题及答案
- 医学毕业考试题及答案
- 甲烷便携仪管理办法
- 个人贸易资金管理办法
- 血站设备购买管理办法
- 旅游新媒体营销
- 地质调查员三级(区域地质、矿产地质、矿山地质)复习参考试题库(含答案)
- 人美版六年级上册美术教案完整版
- 乳牙根管治疗的护理配合
- 经编车间安全操作规程模版
- 《小学三年级英语开学第一课》课件
- 新入职教师安全培训
- 2023年gmp指南教学课件
- 突发性耳聋演示课件
- 中医基础理论9病机课件
- 2023年全国出版专业技术人员职业资格考试出版专业基础知识(中级)试题及参考答案
评论
0/150
提交评论