基于DDS的AM调制_第1页
基于DDS的AM调制_第2页
基于DDS的AM调制_第3页
基于DDS的AM调制_第4页
基于DDS的AM调制_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南京理工大学电子工程与光电技术学院基于DDS的fM调制器的设计姓名 俞锋学号 0704220253指导老师 蒋立平设计时间 2010.3.82010.3.14摘要:实验利用Quartus II 软件实现直接数字频率合成,具有频率字和相位字的控制功能,从而改变频率和相位。还具有相位清零功能以及波形切换功能。并且通过修改存储器ROM 中的数据来提高精度和设计图形。本文主要介绍实验中功能实现的方案,原理,以及相关操作。还有实验中遇到的问题和解决方法。关键字:数字频率合成 频率字 相位字 精度提高 Abstract The experiment is to design the Direct Digi

2、tal Synthesizer (DDS) with the Quartus II. The designed synthesizer should be able to change the phase and frequency ,and it also can set the phase to zero or change the waves. In addition, we can set the data in the ROM to improve the accuracy of the DDS and design special figures.The text is mainl

3、y to introduce the methods, principle, and operations. We also talk about the problems and solutions in the experiment.Key words Direct Digital Synthesizer frequency phase improve accuracy目 录1引言 (4)2设计要求 (6)3工作原理介绍 (7)4各个子模块设计原理 (8) 41 频率预置与调节电路 (8) 4. 2 累加器模块 (9) 43 波形存储模块 (11) 44 D/A转化器与低通滤波器 (12)

4、 45 调制与解调电路 (13) 4. 6 显示测频模块 (15) 4. 61 测频模块 (15) 4. 62 显示模块 (17) 4. 7 脉冲发生电路 (18)5仿真结果 (20)6设计结论和感想 (22)7实验总结 (23)8参考文献 (24)引言DDS 同DSP(数字信号处理)一样,是一项关键的数字化技术。DDS是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。Ø DDS的性能特点:DDS在相对

5、带宽、频率转换时间、高分头放力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。(1) 输出频率相对带宽较宽 输出频率带宽为50%fs(理论值)。但考虑到低通滤波器的特性和设计难度以及对输出信号杂散的抑制,实际的输出频率带宽仍能达到40%fs。 (2) 频率转换时间短 DDS是一个开环系统,无任何反馈环节,这种结构使得DDS的频率转换时间极短。事实上,在DDS的频率控制字改变之后,需经过一个时钟周期之后按照新的相位增量累加,才能实现频率的转换。因此,频率时间等于频率控制字的传输,也就是一个时钟周期的时间。时钟频率越高

6、,转换时间越短。DDS的频率转换时间可达纳秒数量级,比使用其它的频率合成方法都要短数个数量级。 (3) 频率分辨率极高 若时钟fs的频率不变,DDS的频率分辨率就是则相位累加器的位数N决定。只要增加相位累加器的位数N即可获得任意小的频率分辨率。目前,大多数DDS的分辨率在1Hz数量级,许多小于1mHz甚至更小。(4) 相位变化连续 改变DDS输出频率,实际上改变的每一个时钟周期的相位增量,相位函数的曲线是连续的,只是在改变频率的瞬间其频率发生了突变,因而保持了信号相位的连续性。正文1、 设计要求1. 基本设计要求a) 利用QuartusII软件和SmartSOPC实验箱来实现DDS调制器的设计

7、;b) DDS中的波形存储器模块用Altera公司的Cyclone系列FPGA芯片中的RAM实现,RAM结构配置成212×10类型;c) 具体参数要求:频率控制字K取4位;基准频率fc=1MHz,由实验板上的系统时钟分频得到;d) 系统具有清零和使能的功能;e) 利用实验箱上的D/A转换器件将ROM输出的数字信号转换为模拟信号,能够通过示波器观察到正弦波形;f) 通过开关(实验箱上的Ki)输入DDS的频率和相位控制字,并能用示波器观察加以验证;2. 提高部分设计要求a) 通过按键(实验箱上的Si)输入DDS的频率和相位控制字,以扩大频率控制和相位控制的范围;(注意:按键后有消颤电路)

8、b) 能够同时输出正余弦两路正交信号;c) 在数码管上显示生成的波形频率;d) 充分考虑ROM结构及正弦函数的特点,进行合理的配置,提高计算精度;e) 设计能输出多种波形(三角波、锯齿波、方波等)的多功能波形发生器;f) 自行添加其他功能。2、 工作原理介绍在进行正式的实验操作前,我们需要先了解DDS的具体实现原理,方能进行设计。图1 DDS实现的原理图根据以上的原理图,下面以正弦波为例,对各个部分进行简单介绍。波形存储器,即为ROM,用于存储波形数据。将一个周期内的正弦波,分为2N份,取每一点坐标下的正弦值,在将数据进行处理,扩展到0到2D-1中的取值。完成以上过程即完成了ROM数据的配置。

9、N位是ROM的地址线宽度,即ROM中存有2N数据;D位是ROM的数据线宽度,即ROM输出的数据范围是0到2D-1,这与以上ROM的数据配置相互对应。如果对ROM中数据逐一取值,输出的为阶梯波,但是通过D/A转换即可恢复正弦波形,累加器就是用于此。但ROM中的数据也可以间隔取值,这样会减少采样点的个数,但因为系统时钟频率fc=1MHz足够大,远远大于Nyquist频率,所以减少采样点,对恢复波形没有影响,但是可以缩短一个波形的输出时间(即TS),这样就能提高输出波形频率。即通过改变数据取样间隔,从而改变输出频率,达到频率可控。频率控制字K就用于改变采样间隔,频率控制字决定了累加器每次相加的数值,

10、即在ROM中每个几个数据取出一个输出,这样就达成了频率控制。总体电路图如下:图2 DDS调制器总体电路图3、 各个子模块设计原理:(1) 频率预置与调节电路作用:实现频率控制量的输入;不变量K被称为相位增量,也叫频率控制字。图3 频率控制字电路图中ENP使能端接k5开关。控制电路采用循环计数方式,不再另外设置清零端。当k5置1时,74163开始加计数。当k5置0时,74163处于保持状态。此时可由测频电路显示的频率换算出频率字。(2) 相位累加器相位累加器由12位的加法器和12位的寄存器组成,其原理图如下所示:图4 相位累加器相位累加器的作用是在频率为1MHz的时钟的作用下,进行相位累加,当相

11、位累加器累加满量时就会产生一次溢出,完成一个周期性的动作。其中的加法器用VHDL语言编写,寄存器则由硬件实现。具体实现如下:1、加法器: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 downto 0);end adder;architecture beh of adder issignal p: sig

12、ned (14 downto 0);beginP<="001110111110001"result<=OP+P;end beh;2、 寄存器图5 寄存器内部电路op211.0端输入的频率字,控制步长,addr11.0端输入的是寄存器中输出的,这样可以通过寄存器的clk脉冲控制地址线上的数值以步长为间隔变化,这样就可根据步长对ROM中的数据进行采样。采用寄存器是考虑到result11.0端输出的数据时间不统一,这样将影响到取样,并且要将数据进行累加时也需要脉冲,这就要由累加器提供,这也说明了寄存器的作用。对累加器进行波形仿真如下图6 累加器仿真波形图(3) 波形存

13、储器其作用是进行波形的相位-幅值转换。原理是: ROM的N位地址 把0O360O的正弦角度离散成具有2N个样值的序列;ROM的D位数据位则2N个样值的幅值量化为D位二进制数据。 图7 音频信号封装模型 图8 调制信号封装模型图9 音频信号发生电路图10 调制信号发生电路由电路图可以看出音频信号和调制信号采用同样的发生方法,其结构类似。故分析时,仅以音频信号为例。音频信号发生电路主要由三部分组成:频率控制字、累加器、记录正弦波的ROM。频率控制字与总电路中的频率控制字类似。不同的是为了更好的进行控制,增加了一个清零开关。电路结构如左图示。累加器结构如前,不再作说明。电路中使用的正弦波利用MATL

14、AB软件生成波形并导入ROM中。MATLAB软件用到的公式如下:a) T=2*pi/4096;t=0:T:2*pi;/正弦波 A=(1+sin(t)*1023/2; B=round(A);b) T=2*pi/4096;t=0:T:2*pi-T;/方波 A=(1+square(t)*1023/2; B=round(A);c) T=2*pi/4096;t=0:T:2*pi-T;/锯齿波 A=(1+sawtooth(t)*1023/2; B=round(A);d) T=2*pi/4096;t=0:T:2*pi-T;/三角波 A=(1+square(t,0.5)*1023/2; B=round(A);

15、另外,通过更改参数可以形成二分之一的正弦波及四分之一的正弦波。本例实验中时间有限,仅以正弦波为例设计。其余波形仅作理论分析,不另作硬件仿真。(4) D/A转化器与低通滤波器D/A转换器的作用有二。其一是把已经合成的正弦波的数字量转换成模拟量。 其二则是是滤除生成的阶梯形正弦波中的高频成分,将其变成光滑的正弦波,充当低通滤波器。(5) 调制与解调电路调制解调部分电路图如下图示:图11 调制解调电路该部分电路有3个模块组成:mul、adder、mul10。其中mul模块接音频信号,mul10则接调制信号。adder模块则与74163组合使用,控制m的取值范围,使之产生或不产生过调制。各模块均由VH

16、DL语言编写,具体实现如下:mul模块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 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

17、mul_arch OF mul IS SIGNAL p: signed (4 downto 0);BEGINp<= signed ('0'&y); PROCESS (clk) BEGIN IF (clk'event 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_sign

18、ed.all;entity adder isport(op: in signed (14 downto 0);result: out signed (14 downto 0);end adder;architecture beh of adder issignal p: signed (14 downto 0);beginP<="001110111110001"result<=OP+P;end beh;mul10模块LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.aLL;USE

19、ieee.std_logic_signed.all;USE ieee.std_logic_unsigned.all;ENTITY mul10 ISPORT (x:IN signed (9 downto 0);y:IN signed (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 (clk'event an

20、d clk='1') THEN P<=X * Y;result<=P(24 downto 15);END IF;END PROCESS;END mul10_arch;(6) 显示测频电路显示测频电路用于测量信号频率,并将结果数字化显示在数码管中。其外部模块如下图: 图12 显示测频电路模块 图13 测频模块其中,测频模块封装于显示测频模块中。下面我们将对这两个模块进行分析。1) 测频模块测频电路用于测量发生波形的频率,其原理图如下:图14 测频电路原理图原理波形图如下:图15 原理波形图而其实际电路采用如下方式实现:图16 实际测频电路图测频电路由计数器和寄存器两部

21、分组成。先对单位时钟clk1进行二分频,在二分频反相后的结果处于高电平时,就使得计数器的使能端有效,计数器开始计数,当二分频反相结果出现下降沿时,计数器的结果就被寄存器锁存后通过显示电路输出。电路中存在反相器会有延时效应,但是延时时间很短,只要小于待测信号周期即可,而根据最后的实验结果可知,测得的频率最高只是几千,所以反相器的延时效应对实验没有太大影响。2) 显示模块显示模块内部电路图如下:图17 显示模块内部电路在显示模块内部,testfrequency模块为测频电路的封装,lpm_mux4为一28选4器件。m6模块为用触发器组成的模7计数器,配合74138构成扫频电路。seg为用VHDL语

22、言编写的译码显示模块。现将各模块内部电路显示如下:图18 模7计数模块内部电路Seg模块采用语言编写,设计为16进制显示,单管显示为0F:library ieee;use ieee.std_logic_1164.all;entity seg isport(bcd_led: in std_logic_vector(3 downto 0);ledseg: out std_logic_vector(6 downto 0);end seg;architecture beh of seg isbegin with bcd_led selectledseg<="1000000"

23、when "0000",-0 "1111001" when "0001",-1 "0100100" when "0010",-2 "0110000" when "0011",-3 "0011001" when "0100",-4 "0010010" when "0101",-5 "0000010" when "0110",-6 "

24、;1011000" when "0111",-7 "0000000" when "1000",-8 "0010000" when "1001",-9 "0001000" when "1010",-10 "0000011" when "1011",-11 "1000110" when "1100",-12 "0100001" when "1

25、101",-13 "0000110" when "1110",-14 "0001110" when "1111",-15 "1111111" when others;end beh;(7) 脉冲发生电路此电路实际上是分频电路,把系统提供的48MHz频率的时钟信号分频得到实验中用到的各种频率的时钟信号。电路如下: 图19 脉冲发生电路图中三个模块为语言模块,内部实现方式一致,仅参数有所变动。现将48M分频即kcoun1模块内部展开:LIBRARY IEEE;USE IEEE.std_lo

26、gic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY kcoun1 ISPORT(A :IN std_logic; B :buffer std_logic);END kcoun1;ARCHITECTURE kcoun1_arc OF kcoun1 ISSIGNAL counter :std_logic;BEGINPROCESS(A)VARIABLE counter1:integer RANGE 0 TO 48000000;CONSTANT md :integer := 24000000;BEGINIF(A'event AND A=

27、9;1')THENIF (counter1 = md) THENcounter1 :=0;counter <= NOT counter;B <= counter;END IF;counter1 := counter1+1;END IF;END PROCESS;END kcoun1_arc;修改下划线部分的参数即可产生不同的频率。如改为2400可实现4800的分频,产生1kHz的频率;改为24即实现48分频,对应产生1MHz。4、 仿真结果将上述模块按功能连接好后,利用实验箱进行硬件仿真。结果截图如下:1) 音频信号波形:2) 载波信号波形:3) 控制字取3时,解调后的波形:

28、通过开关控制总电路图上的74163的取值,当其取值为3时,相当于m=0.25。4) 控制字取7(此时m=0.5)时,输出波形:5) 控制字取15(m=1),输出波形为由上诉波形可以看出,随着m取值的增大,输出波形逐渐失真。当m > 1时,波形将产生过调制。其中一种过调制波形截图如下:图20 过调制波形(注:此时需要修改音频和载波模块内部累加器的参数。)另外,通过多次硬件仿真可以发现,仿真结果会出现相移和噪声,现截图如下。如何减小这一影响也是研究的方向。5、 设计过程中出现的问题及解决方法由于在做DDS实验之前,已经有做过EDA实验,所以基本的操作问题都已经不再出现,主要的问题是在于原理图的设计细节。1. ROM中参数错误在完成ROM参数设定,将ROM与累加器连好先后进行电路编译时却报了错,最后发现是ROM中参数设定出现了错误,本应该是0-1023,但在excel中利用公式计算而使得1024出现了,从而会报错。最后将512该成511.5即可,重新编译即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论