




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、直接数字频率合成器实验报告 院系:电子工程与光电技术学院 专业: 通信工程 指导老师: 蒋立平 完成时间: 2011.12.14 摘要本实验利用QUARTUS II 软件和SMARTSOPC试验箱设计一个信号发生器,该信号发生器能够产生正余弦波,三角波,锯齿波,方波等。并且可以对这些波形进行调频,调相,AM调制以及测频。要求最终信号频率和频率控制字、相位控制字在数码管上显示出来。除了这些基本功能,还实现了任意两个波形的组合输出,并且对任意两个不同的波形进行组合调相,即可以选择调相基准波形。关键字:信号发生器、AM调制、测频、调频调相Abstract A signal generator is
2、designed with the aid of QUARTUS II software and SMARTSOPC instrument in this experiment. It can generate a few signals as followed: sine(cosine), triangular wave, sawtooth wave ,square wave. AM modulation is realized and the phase and frequency of these signals can be changed, the change of which i
3、s showed on Nixie light with the current frequency. Besides these basic functions, the design also realized a creative one that two arbitrary waveforms can be arranged to be showed on the oscillograph and the phase of which is able to be changed (we can choose any one signal as the base of PM signal
4、).Key words: signal generator, AM modulation, frequency measure, FM, PM目录1. 设计要求32. 方案论证33. 各子模块设计原理6A. 时钟信号发生电路7B. 频率控制字发生电路7C. 相位累加器模块8D. 相位寄存器模块9E. 波形存储器模块9F. 测频模块11G. 显示模块13H. 实现任意波形组合以及选择基准波形调相模块15I. AM调制(调频与调幅)模块16J. DDS总电路图18A. 示波器波形18B. 调试、仿真、编译下载21C. 实验总结和感想22D. 参考文献221. 设计要求:A. 基本要求:1) 用Qu
5、artusII软件和SmartSOPC实验箱实现DDS的设计;2) DDS中的波形存储器模块用Altera公司的Cyclone系列FPGA芯片中的ROM实现,ROM结构配置成409610类型;3) 具体参数要求:频率控制字K取4位;基准频率fc=1MHz,由实验板上的系统时钟分频得到;4) 系统具有清零和使能的功能;5) 利用实验箱上的D/A转换器件将ROM输出的数字信号转换为模拟信号,能够通过示波器观察到正弦波形;6) 通过开关(实验箱上的Ki)输入DDS的频率和相位控制字,并能用示波器观察加以验证.B. 提高要求1) 通过按键(实验箱上的Si)输入DDS的频率和相位控制字,以扩大频率控制和
6、相位控制的范围;(注意:按键后有消颤电路)2) 能够同时输出正余弦两路正交信号;3) 在数码管上显示生成的波形频率;4) 充分考虑ROM结构及正弦函数的特点,进行合理的配置,提高计算精度;5) 设计能输出多种波形(三角波、锯齿波、方波等)的多功能波形发生器;6) 基于DDS的AM调制器的设计;7) 自己添加其他功能。C. 已实现功能1) 基本功能全部实现2) 能够同时输出正余弦两路正交信号;3) 在数码管上显示生成的波形频率;4) 基于DDS的AM调制器的设计,能够同时调频和调幅;5) 能够实现任意两个波形的组合输出6) 能够对任意两个波形组合进行调相,即可以选择基准调相波形2. 方案论证:A
7、. 直接数字频率合成(DDS)部分fc频率预置与调节电路累加器相位控制电路波形存储器D/A转换器低通滤波器S(t)S(n)N位N位KD位N位图1:整体电路工作原理图图2: DDS工作流程示意图4位频率控制字K相位累加器12位相位寄存器data11.0clkdata1data2q11.0result11.0data1data2result11.0q9.0q9.04位相位控制字P余弦ROM正弦ROMaddr11.0addr11.0q9.0q9.0余弦波数值输出至D/A(1)正弦波数值输出至D/A(2)clkclk基准时钟fc加法器图3: 组装模块后的整体工作原理图DDS的基本结构图如图1所示,主要
8、由相位累加器、相位调制器、波形数据表(ROM)、D/A转换器构成。相位累加器由N位加法器和N位寄存器构成。每来一个时钟clock,加法器就将频率控制字frequ_control与累加寄存器输出的累加相位数据相加,相加的结果又反馈送至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储器的相位取样地址,这样就可把存储在
9、波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,由D/A转换器将数字信号转换成模拟信号输出,DDS信号波流程示意图如图2所示。由于相位累加器为N位,相当于把正弦信号在相位上的精度定为N位,所以分辨率为1/2N。若系统时钟频率为fc,频率控制字frequ_control为1,则输出频率为fOUT=fC/2N,这个频率相当于“基频”。若frequ_control为K,则输出频率为:fout=K* fC/2N当系统输入时钟频率fC不变时,输出信号的频率由频率控制字K所决定。由上式可得:K=2N*fout/fC其中,K为频率字,注意K要取整,有
10、时会有误差。选取ROM的地址时,可以间隔选项,相位寄存器输出的位数D一般取10-16位,这种截取方法称为截断式用法,以减少ROM的容量。D太大会导致ROM容量的成倍上升,而输出精度受D/A位数的限制未有很大改善。B. AM调制部分在标准幅度调制器(AM)中,设载波信号为:vct=Vcmcosct,调制信号为:vf=Vmcost,则标准调幅波信号为:vAMt =Vcm+vftcosct (1)=Vcm+Vmcostcosct(2)=Vcm1+mAcostcosct (3)其中:mA=Vm/Vcm被成为调幅度,是调幅信号的一个重要参数,一般小于1,当其大于1时会出现过调幅。基于表达式(1),建立A
11、M调制电路的数学模型如图:Vf(t)VAM(t)Vcmcosct图4为了简化电路,不妨设Vcm=1,再由表达式(3)得到可以实现AM电路的结构图如下:DDS调制信号调幅度 mA乘法电路加法电路量化值1DDS载波信号乘法电路mAcostcosctvAM(t)图5由于正余弦对于调制电路来说是完全等价的,故在本次试验中,我们用的都是正弦。 3各子模块设计原理A. 时钟信号发生电路在后续电路中,需要1MHZ,1HZ,1KHZ的信号,而系统提供的是48MHZ的时钟信号,因此,可以先用D触发器制作一个16分频模块,再用74163制作一个3分频模块进行级联,变成为48分频模块,由此便产生了1MHZ的信号,接
12、着用74163制作模10计数器,3个模10计数器级联成为1000分频模块,由此得到了1KHZ的信号,在级联一个1000分频模块,便得到了1HZ的信号。下面是各模块图:图6:3分频图7: 16分频图8: 10分频由此我们可以得到1MHZ信号,1KHZ,1HZ信号。B. 频率控制字发生电路K为相位增量,也叫频率控制字。DDS的输出频率表达式为fout=K* fC/2N,当K=1时,DDS输出最低频率(也即频率分辨率)为fC/2N,而DDS的最高输出频率由Nyquist采样定理决定,即fc/2,也就是说K的最大值为2N-1,设计模块时,用74161设计模16模块,1HZ信号输入让其变化。该模块有和保
13、持端,由开关控制,以便计数到需要值时保持。因为计数器是12位,故在此加入高八位,并且全部接地,即频率控制字的范围为0到15。图9: 频率控制字发生电路C. 相位累加器模块相位累加器在基准频率信号fc的控制下以频率控制字kf为步长进行累加运算,产生所需要的频率控制数据。相位寄存器则在时钟的控制下把累加的结果作为波形存储器ROM的地址,实现对波形存储器ROM的寻址。当累加器加满量时就会产生一次溢出,完成一个周期性的动作。这个周期也就是DDS信号的一个频率周期。 本设计相位累加器采用文本输入法VHDL语言设计,具体如下(参见VHDL源文件phaze_adder.vhd):-phaze_adder.V
14、HDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY phaze_adder IS PORT(K:IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK:IN STD_LOGIC; EN: IN STD_LOGIC; RESET:IN STD_LOGIC; OUT1:OUT STD_LOGIC_VECTOR(11 DOWNTO 0);END ENTITY phaze_adder; ARCHITECTURE ART OF phaze_adder IS SIGNAL T
15、EMP: STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN PROCESS(CLK,EN,RESET)IS BEGIN IF RESET=1 THEN /清零端为1时累加器清零 TEMP=0; ELSE IF CLKEVENT AND CLK=1 THEN IF EN=1 THEN /使能端EN为1时累加器正常工作 TEMP=TEMP+K; /时钟CLK上升沿到来时以kf为步长递增 END IF; END IF; END IF; OUT1=TEMP; /将目前的累加结果保存并输出,下次上升沿时实现累加 END PROCESS;END ARCHITECTURE ART;以
16、上程序不仅定义了累加器还添加了清零和使能功能。下面是对累加器的仿真波形:图10: 累加器的仿真波形D. 相位寄存器模块相位寄存器是与相位累加器同步的寄存器,也是采用文本输入法VHDL语言设计,具体如下(参见VHDL源文件phaze_keeper.vhd):-phaze_keeper.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY phaze_keeper IS PORT(D:IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(11 DOWNT
17、O 0);END ENTITY phaze_keeper;ARCHITECTURE ART OF phaze_keeper IS BEGIN PROCESS(CLK) IS BEGIN IF(CLKEVENT AND CLK=1 )THEN Q bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd bcddout doutdout dout=1110; end case; end process;end rtl;显然,在“移位寄存器”的输入端接上一个 模4计数器,便可以通过控制模4使能端来选择基准调相波形。并且将模4显示
18、在LED灯上,这样可以显示当前的调相基准波形是哪一个。 信号经过4个ROM后,分别接入两个4选1的数据选择器,用来选择两路波形的输出。由此便实现了任意两个波形的组合输出以及调相时选择任意的基准波,而不再限与正弦的基准波。总电路图如下:图19:调相总电路图10) AM调制(调频与调幅)模块调制解调部分电路如下:该部分电路有3个模块组成:mul、adder、mul10。其中mul模块接音频信号,mul10则接调制信号。adder模块则与74163组合使用,控制m的取值范围,使之产生或不产生过调制。各模块均由VHDL语言编写,具体实现如下:mul模块LIBRARY ieee;USE ieee.std
19、_logic_1164.all;USE ieee.std_logic_arith.aLL;USE ieee.std_logic_signed.all;USE ieee.std_logic_unsigned.all;ENTITY mul ISPORT (X:IN signed (9 downto 0);y:IN STD_LOGIC_VECTOR(3 downto 0);clk:in std_logic;result: OUT signed (14 downto 0);END mul;ARCHITECTURE mul_arch OF mul IS SIGNAL p: signed (4 downt
20、o 0);BEGINp= signed (0&y); PROCESS (clk) BEGIN IF (clkevent and clk=1) THEN result=X*p;END IF;END PROCESS;END mul_arch;adder模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_signed.all;entity adder isport(op: in signed (14 downto 0);result: out signed (14 dow
21、nto 0);end adder;architecture beh of adder issignal p: signed (14 downto 0);beginP=0001;result=OP+P;end beh;mul10模块LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.aLL;USE ieee.std_logic_signed.all;USE ieee.std_logic_unsigned.all;ENTITY mul10 ISPORT (x:IN signed (9 downto 0);y:IN si
22、gned (14 downto 0);clk:in std_logic;result: OUT signed (9 downto 0);END mul10;ARCHITECTURE mul10_arch OF mul10 ISSIGNAL p: signed (24 downto 0);BEGIN PROCESS (clk)BEGIN IF (clkevent and clk=1) THEN P=X * Y;result=P(24 downto 15);END IF;END PROCESS;END mul10_arch;11) DDS总电路图电路总图见Y.bdf4. 示波器波形4. 调试、仿真、编译下载实验过程中每做完一个模块添加一项功能之后都要进行编译仿真,在确定各子模块的功能都正确之后组合整体电路(参见原理图文件dds.bdf),并对其进行综合编译,编译成功之后就可以准备下载到SmartSOPC实验箱了。在下载之前要注意将未使用的管脚设置为三态输入。之后就可以给各输入端输出端分配管脚,其中输入端48MHz分配到实验箱的系统时钟48MHz的脉冲,输入端en、reset、kf、kp、a0、a1分别分配到实验箱的手动开关KEY1到KEY6,输出端abcdefg分配到显示管七段码,输出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预防中暑主题班会课件
- 预制厂安全教育课件
- 大学诚信文明主题教育
- 公务接待培训
- 项痹中医诊疗课件
- 钢笔画技能培训课件视频
- 健康饮食产业园项目环境影响报告书
- 2025年核设施退役技术设备项目建议书
- xx片区城乡供水一体化项目投资计划书(模板范文)
- 2025年工业炉窑的新型燃烧装置项目建议书
- 2020新编教材八下《桃花源记》正规电子书(课文+注释+译文)
- 宫颈癌的早期筛查和治疗策略
- 小学科学大象版三年级-上册-第五单元:奇妙的声音
- 焊工教案完整
- 宝宝盗汗疾病演示课件
- 探究安培力方向
- 摄影测量遥感-案例
- 预制装配式钢筋混凝土排水检查井标准图集
- 焊缝超声波探伤缺陷性质的判断
- 卧式容器任意液位高度下液体体积的计算
- 《工业机器人》-利乐TBA19灌装机维修 课件
评论
0/150
提交评论