网站大量收购独家精品文档,联系QQ:2885784924

基于FPGA的直接数字合成器(DDS)设计报告.docVIP

基于FPGA的直接数字合成器(DDS)设计报告.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的直接数字合成器(DDS)设计报告 实验内容及要求 利用FLEX10的片内RAM资源,根据DDS原理,设计产生正弦信号的各功能模块和顶层原理图; 利用实验板上的TLC7259转换器,将1中得到的正弦信号,通过D/A转换,通过ME5534滤波后在示波器上观察; 输出波形要求: 在输入时钟频率为16KHz时,输出正弦波分辨率达到1Hz; 在输入时钟频率为4MHz时,输出正弦波分辨率达到256Hz; 通过RS232C通信,实现FPGA和PC机之间串行通信,从而实现用PC机改变频率控制字,实现对输出正弦波频率的控制。 DDS电路的原理 直接数字频率合成(Direct Digital Synthesizer DDS)技术是从相位概念出发直接合成所需波形的一种新的频率合成技术,这种方法不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位。还可以用DDS方法产生任意波形(AWG). DDS电路的工作原理如图1所示: 其工作过程为: 将存于数表中的数字波形,经数模转换器D/A,形成模拟量波形。 两种方法可以改变输出信号的频率: (1)、改变查表寻址的时钟CLOCK的频率,可以改变输出波形的频率。 (2)、改变寻址的步长来改变输出信号的频率,DDS即为对数字波形查表的相位增量,由累加器对相位增量进行累加,累加器的值作为查表地址。 3、D/A输出的阶梯形波形,经低通(或带通)滤波,成为质量符合需要的模拟波形。 该DDS系统的核心是相位累加器,它由一个加法器和一个位相位寄存器组成,每来一个时钟,相位寄存器以步长M增加,相位寄存器的输出于相位控制字相加,然后输入到正弦查询表地址上。正弦查询表包含一个周期正弦波的数字幅度信息,每个地址对应正弦波中0度到360度范围的一个相位点。查询表把输入的地址相位信息映射成正弦波幅度的数字量信号,驱动DAC,输出模拟量。相位寄存器每经过2N/M个fc时钟后回到初始状态,相应的正弦波频率位为: 频率控制字与输出信号频率和参考时钟频率之间的关系为: 其中N是相位累加器的字长。频率控制字与输出信号频率成正比,可见控制M就能得到任意频率的信号。 通常用频率增量来表示频率合成器的分辨率,DDS的最小分辨率为: 这个增量也就是最低的合成频率。由取样定理,所产生的信号频率不能超过时钟频率的一半,因此最高的合成频率为: 在实际运用中,为了保证信号的输出质量,输出频率不要高于时钟频率的1/4,以避免混叠或谐波落入有用输出频带内。 正弦ROM查询表完成输出信号相位到幅度的转换,它的输入是相位寄存器和相位控制字之和,其实也就是ROM的地址值(宽度为P位);ROM查找输出的数据(也为P位)送往D/A转换成模拟信号。在实际应用中,P不能太大,如果P太大,回导致ROM容量的成倍上升,而输出受D/A精度的限制未有很大改善。图2为相位累加器工作示意图,从图中可以看出,虽然相位累加器的位数为N为,但是只取高P位进行ROM查表。 设计部分和程序 1.系统的顶层原理图: 2.AD14这个模块的VHDL语言源文件: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ad14 IS PORT (CLK:IN STD_LOGIC; m: in std_logic_vector(11 downto 0); co: OUT STD_LOGIC_vector(7 downto 0) ); END ad14; ARCHITECTURE BEHAVE OF ad14 IS signal te : std_logic_vector(13 downto 0); signal re : std_logic_vector(13 downto 0); BEGIN PROCESS(CLK) BEGIN IF (CLKEVENT AND CLK=1) THEN te=re+m+1; re=te; end if; co=re(13 downto 6); END PROCESS; END BEHAVE; 其中re共有14位,其高八位是用来进行ROM查表的(既co),其低六位可用来改变输入频率且当m大于127(既是m+1=128为2的7次,所以每加一次co都会增加一)时一个周期内对ROM表内的数的查询少于256个点(这里建立的表中一个周期内有256个点),所以随着m值的再增加,会使一个周期内的采样点数越来越少,从而出现波形失真现象。 正弦ROM查询表 WIDTH=8; DEPTH=256; ADDRESS_RADIX=DEC; DATA_

您可能关注的文档

文档评论(0)

mx597651661 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档