DDS原理及实现_第1页
DDS原理及实现_第2页
DDS原理及实现_第3页
DDS原理及实现_第4页
DDS原理及实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1 DDS 原理简介 数字频率合成器 Direct Digital Synthesizer 是从相位概念出发直接 合成所需波形的一种频率合成技术 一个直接数字频率合成器由相位累加器 加法器 波形存储 ROM D A 转换器和低通滤波器 LPF 构成 DDS 的原理框 图如图 1 2 所示 累累加加器器 参参考考时时钟钟clkf LPFD AROM加加法法器器加加法法器器 频频率率控控制制 字字K相相位位控控制制字字P 波波形形控控制制字字W N位位S n S t 图 1 2 DDS 原理框图 其中 K 为频率控制字 P 为相位控制字 W 为波形控制字 为参考时钟频clkf 率 N 为相位累加器的字长 D 为 ROM 数据位及 D A 转换器的字长 相位累加器 在时钟的控制下以步长 K 作累加 输出的 N 位二进制码与相位控制字 P 波clkf 形控制字 W 相加后作为波形 ROM 的地址 对波形 ROM 进行寻址 波形 ROM 输出 D 位的幅度码 S n 经过 D A 转换器变成阶梯波 S t 再经过低通滤波器平滑后 就可以得到合成的信号波形 合成的信号波形的形状取决于波形 ROM 中存放的 幅度值 因此用 DDS 可以产生任意波形 这里我们用 DDS 实现正弦波的合成 A 频率预置与调节电路 K 被称为频率控制字 也叫相位增量 DDS 方程为 为 2N out fclk K f outf 输出频率 为时钟频率 当 K 1 时 DDS 输出最低频率 也即频率分辨率 clkf 为 而 DDS 的最大输出频率由 Nyquist 采样定理决定 即 也 2N clkf 2 clk out f f 就是说 K 最大值为 因此 只要 N 足够大 DDS 可以得到很细的频率间隔 21 N 要改变 DDS 的输出频率 只要改变频率控制字 K 即可 B 累加器 相位累加器由 N 位加法器与 N 位寄存器级联构成 每来一个时钟脉冲 clkf 加法器将频率控制字 K 与寄存器输出的累加相位数据相加 再把相加后的结果 送至寄存器的数据输入端 寄存器将加法器在上一个时钟作用后所产生的相位 数据反馈到加法器的输入端 以使加法器在下一个时钟的作用下继续与频率控 制字进行相加 这样 相位累加器在时钟作用下 进行相位累加 当相位累加 器累加满量里就会产生一次溢出 完成一个周期性的动作 C 控制相位的累加器 通过改变相位控制字 P 可以控制输出信号的相位参数 令相位加法器的字 长为 N 当相位控制字由 0 跃变到 P P0 时 波形存储器的输入为相位累加 器的输出与相位控制字 P 之和 因而其输出的幅度编码相位会增加 从而 2N P 使最后输出的信号产生相移 D 控制波形的加法器 通过改变波形控制字 W 可以控制输出信号的波形 由于波形存储器中的不 同波形是分块存储的 所以当波形控制字改变时 波形存储器的输入为改变相 位后的地址与波形控制字 W 波形地址 之和 从而使最后输出的信号产生相 移 E 波形存储器 用相位累加器输出的数据作为波形存储器的取样地址 进行波形的相位 幅 值转换 即可以给定的时间上确定输出的波形的抽样幅值 N 位的寻址 ROM 相 当于把 0 360 的正弦信号离散成具有个样值的序列 若波形 ROM 有 D2N 位数据位 则个样值的幅值以 D 位二进制数值固化在 ROM 中 按照地址的不2N 同可以输出相应相位的正弦信号的幅值 E D A 转换器 D A 转换器的作用是把合成的正弦波数字量转换成模拟量 正弦幅度量化序 列 S n 经 D A 转换后变成了包络为正弦波的阶梯波 S t 需要注意的是 频率 合成器对 D A 转换器的分辨率有一定的要求 D A 转换器的分辨率越高 合成 的正弦波 S t 台阶数就越多 输出波形的精度也就越高 F 低通滤波器 对 D A 输出的阶梯波 S t 进行频谱分析 可以 S t 中除了主频外 还 outf 相存在分布在 2 两边正负处的非谐波分量 幅值包络为辛格 outfoutfoutf 函数 因此 为了取出主频 必须在 D A 转换器的输出端接入截止频率为 outf 2 的低通滤波器 outf 2 FPGA 的 DDS 载波实现方法 实现通信中不少信道都不能直接传送基带信号 必须用基带信号对载波波 形的某些参量进行控制 使载波的这些参量随基带信号的变化而变化 即所谓 正弦载波调制 从原理上来说 受调载波的波形可以是任意的 只要已调信号适合于信道 传输就可以了 但实际上 在大多数数字通信系统中 都选择正弦信号作为载 波 这是因为正弦信号形式简单 便于产生及接收 方法一 用 ROM 核来实现 说明 将载波一个周期的采样值直接写入 V 代码中的 而不是用 ROM 核 利用 ROM 核需要将载波一个周期的采样值写入 COE 文件中 插入 ROM 核中 优点 用不同的初始值寻址可以输出不同频率和不同初始相位的载 波 方法二 用 DDS 核来实现 优点 频率和初始相位都可以任意设定 缺点 在使用时比较难控制 方法三 用 Sine Cosine Look up Table 核来实现 代码 module sine cosine clk reset in rdy desine decosine out rdy input clk reset in rdy output 7 0 desine decosine output out rdy wire out rdy wire RFD RDY reg ND reg 3 0 THETA always posedge clk begin if reset begin ND 0 THETA 0 end else if in rdy begin THETA THETA 1 ND in rdy end end 核例化 sinecosine sinecosine THETA THETA Bus 3 0 CLK clk SCLR reset ND ND RFD RFD RDY out rdy SINE desine Bus 7 0 COSINE decosine Bus 7 0 endmodule 仿真图 第一路为正弦波 第二路为余弦波 说明 可以对 THETA赋不同初始值即可以实现不同初始相位的载波 此正弦波和余弦波一个周期是采样 16 个点 可以在 IP 核进行参数设置修 改的 其频率为 输出位宽为 8 位宽 16clkf 优点 载波频率是时钟频率的 其中 N 在 IP 核中可设置 设置很简单 初始相位也可以通过修改 12N THETA 参数来实现 实现起来很方便 也比较容易控制 方法四 将载波一个周期的采样点值写入代码中来实现 代码 module sine clk reset en out rdy out input clk reset en output out rdy output 7 0 out reg out rdy reg 7 0 out reg 2 0 addr always posedge clk begin initial control if reset begin addr 3 d0 end else if en begin addr addr 1 end end always posedge clk begin Red sig if en case addr 4 d0 begin out 8 d45 out rdy 1 end 4 d1 begin out 8 d64 out rdy 1 end 4 d2 begin out 8 d45 out rdy 1 end 4 d3 begin out 8 d0 out rdy 1 end 4 d4 begin out 8 d211 out rdy 1 end 4 d5 begin out 8 d192 out rdy 1 end 4 d6 begin out 8 d211 out rdy 1 end 4 d7 begin out 8 d0 out rdy 1 end endcase end endmodule 仿真图 说明 此正弦载波一个周期是采样 8 个点 即频率为 8 clkf 其输出位宽为 8 位宽 若想产生余弦载波的话 只需将 Red sig 中 out 的值改变即可 优点 与模块使能信号 en 同时输出 没有延时 在设计调制解调时 不 用设计基带

温馨提示

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

评论

0/150

提交评论