- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数1字电子技术基础 第11章
图中,K为频率控制字,P为相位控制字,相位累加器的字长为N位,ROM及D/A转换器的位宽为D位。相位累加器在时钟fc的控制下以步长K进行累加,输出的N位二进制码与相位控制字P相加后作为存储波形的ROM的地址对ROM进行寻址。ROM输出D位的幅度码S(n),经D/A转换后变成模拟信号S(t),再经过低通滤波器平滑后就可以得到合成的信号波形。波形形状取决于ROM中存放的数据,因此DDS可以产生任意波形。下面我们以正弦波为例介绍DDS的波形产生原理。 1)频率设置 K称为频率控制字,也叫相位增量。输出信号的频率与时钟频率之间的关系为 其中,f0为输出信号的频率,fc为时钟频率,N为相位累加器的位数。当K=1时,DDS输出最低频率(即频率分辨率)为fc/2N,因此当N值很大时,可以得到很小的频率间隔。要改变DDS的输出频率,只要改变频率控制字K即可。 2)累加器 相位累加器由内部N位加法器和N位寄存器组成。每来一个时钟作用沿,加法器将频率控制字K与寄存器输出的数据相加,再把相加的结果送至寄存器输入端。下一个时钟来到后,寄存器将其输出数据又送至加法器输入端继续与频率控制字相加,从而完成在时钟作用下的相位累加。因此每来一个时钟,相位累加器的输出就增加一个步长的相位增量,当相位累加到满量程时便产生一次溢出,完成一个周期的动作。 3)相位调节器 相位调节器将相位累加器的输出数据和相位控制字P相加,实现信号的相位调节。改变相位控制字P可控制输入信号的相位参数。如果相位调节器的字长为N,则当相位控制字由0变为P时,输出信号的相位增加2πP/2N。 4)波形存储器 用相位调节器输出的数据作为波形存储器的取样地址,进行波形数据的寻址,即可确定输出波形的取样幅度。N位的ROM相当于把0°~360°的正弦信号离散成具有2N个样点的序列。若ROM的数据位宽为D,则2N个样点的幅值以D位二进制数值存在ROM中,按照地址的不同可以输出相应相位的正弦信号的幅值。 5)D/A转换器 D/A转换器的作用是把合成的正弦波数字量转换成模拟量。转换之后输出波形变成了包络为正弦波的阶梯波S(t)。D/A转换器的分辨率越高,合成的正弦波台阶数就越多,输出的波形精度也就越高。 6)低通滤波器 对D/A输出的阶梯波S(t)进行频谱分析可知,S(t)中除主频f0外,还存在分布在fc,2fc,…两边±f0处的非谐波分量。因此,为了取出主频f0,必须在D/A转换器的输出端接入截止频率为fc/2的低通滤波器。 在上面几部分电路中,累加器、控制相位的加法器和ROM存储器可以在FPGA内部实现,而D/A转换器和低通滤波器包含模拟电路,不能在FPGA内部实现。下面我们介绍FPGA内部电路的设计过程。 2)系统设计 按照上面的参数进行设计,VHDL语言描述如下: library ieee; use ieee.std—logic—1164.all; use ieee.std—logic—unsigned.all; use ieee.std—logic—arith.all; entity dds is port(rst:instd—logic; clk:instd—logic; k:instd—logic—vector(7 downto 0); p:instd—logic—vector(7 downto 0); dout:outstd—logic—vector(7 downto 0) ); end dds; architecture arc ofdds is typeRom256x8 isarray(0to255) ofstd—logic—vector(7 downto 0); 存储256点的正弦波数据(1个周期),每个样点为8位,X″80″表示16进制的数值80 第i个点的正弦波幅值计算公式:128+128×sin(2×3.14×i/256) signal counter :std—logic—vector(7 downto 0); signal phase—shift :std—logic—vector(7 downto 0); signal address :std—logic—vector(7 downto 0); begin process累加器描述 begin wait until clk′event and clk=′1′; if rst=′1′t
文档评论(0)