- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
直接数字合成器王静
《直接数字合成器》
设计报告
姓 名: 王静
学 号:
班 级: 微电子一班
专 业: 微电子
指导教师: 杨小平、杞宁
时 间: 2012年7月12日星期四
目 录
1 课程设计题目及要求 ……………………………………2
2 DDS信号发生器原理 …………………………………2-3
3基本DDS结构
课程设计要求:
输入不少于8位频率控制字,不少于8位相位控制字。
10位2进制数据输出,直接接GW-ADDA板上的D/A。
时钟信号使用GW48-PK2上提供的信号
以正弦信号为例。
撰写规范的课程设计报告,要求小四字体,内容加图片不少于8页。
二. DDS信号发生器原理
其中,Sout是指该信号发生器的输出信号波形,fout只输出信号对应的频率。上式的表述对于时间t是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理,用基准时钟clk进行抽样,令正弦信号的的相位θ为
在一个clk周期Tclk,相位θ的变化量为
其中fclk指clk的频率对于2π可以理解为“满”相位,为了对Δθ进行数字量化,把2π切割成2N,用词每个clk周期的相位增量Δθ用量化值BΔθ来描述:BΔθ=(Δθ·2N)/2π,且BΔθ为整数与上式联立可得:
显然,信号发生器可以描述
其中θk-1指前一个clk周期的相位值,同样得出
由以上推倒可以得出,只要对相位的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值,而用于累加的香味增量量化值BΔθ决定了信号的输出频率fout并呈现简单的线性关系。
三、基本DDS结构
直接数字合成器DDS就是根据以上原理而设计的数控频率合成器,下图为其基本DDS结构,主要有相位累加器、相位调制器、正弦ROM查找表构成图中的相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字部分,
1. 相位累加器
相位累加器是DDS的核心,完成相位累加的过程其输入可以称为频率字输入在输入时增加一个寄存器可以使频率字改变时不会干扰相位累加器的正常工作
2. 相位调制器
相位调制器接受相位累加器的相位输出,加上一个相位偏移值,可用于信号的相位调制。加一个寄存器可用于信号的同步保持。如图10所示
3. 正弦ROM查找表
正弦ROM的输入是相位调制器的输出,即ROM的地址值,输出送往DAC转化为模拟信号。
四、各模块功能及介绍
1、频率控制字的十进制加法器
主要是用于在输入一个频率字的时候,使之产生一系列数字,从而产生相应的地址,对应相应的rom数据,具体程序如下:
module Fadd(out,clk,A,B);
output[9:0] out;
input clk;
input[9:0]A,
B;
reg[9:0] out;
always @(posedge clk )
out=A+B;
endmodule
2、相位控制字的十进制加法器
主要是用于在输入一个相位字的时候,产生相位偏移值,可用于信号的相位调制,具体程序如下:
module Padd(out,clk,A,B);
output[9:0] out;
input clk;
input[9:0]A,
B;
reg[9:0] out;
always @(posedge clk )
out=A+B;
endmodule
3、正弦ROM查找表
正弦ROM的输入是相位调制器的输出,即ROM的地址值,输出送往DAC转化为模拟信号。
首先通过程序生成sin.mif文件,这个程序如下
clear;
depth=1024;
width=10;
T=2*pi;
fsin=fopen(sin.mif,wt); %以wt的形式打开,与C相同
% 写入 sin_rom.mif %
fprintf(fsin,DEPTH=%d;\n,depth);
fprintf(fsin,WIDTH=%d;\n,width);
fprintf(fsin,ADDRESS_RADIX=DEC;\n); %dec为十进制缩写,与hex意义相同
fprintf(fsin,DATA_RADIX =DEC;\n);
fprintf(fsin
文档评论(0)