0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DDS信号发生器的理解与实现

FPGA设计论坛 来源:CSDN 作者:CSDN 2022-09-01 15:21 次阅读

基于Verilog的DDS波形发生器的分析与实现(三角波、正弦波)

最近学习了一下关于DDS的相关知识,本篇概要记录一下自己的理解与实现。

DDS信号发生器采用直接数字频率合成(Direct Digital Synthesis,简称DDS)技术,把信号发生器的频率稳定度、准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节。采用这种方法设计的信号源可工作于调制状态,可对输出电平进行调节,也可输出各种波形。

下图为DDS 的基本结构图

a8d3a45a-299e-11ed-ba43-dac502259ad0.png

由上图 可以看出,DDS 主要由相位累加器、相位调制器、波形数据表以及 D/A 转换器构成。

相位累加部分控制输出波形频率,相位字输入部分来改变相位,ROM表中存储一个周期波形的幅度值。

其中相位累加器由 N 位加法器与 N 位寄存器构成。每来一个时钟,加法器就将频率控制字与累加寄存器输出的相位数据相加,相加的结果又反馈至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。即在每一个时钟脉冲输入时,相位累加器便把频率控制字累加一次。相位累加器输出的数据就是合成信号的相位。相位累加器的溢出频率,就是 DDS 输出的信号频率。(解释:定义一个N位寄存器,一般为32位,如果来一个时钟计一次,那就要计2^32次才满,这样太慢,因此引入频率控制字设为A,以前以1为单位,现在以A为单位计数累加,可以控制计数更新的速度)

用相位累加器输出的数据,作为波形存储器的相位采样地址,这样就可以把存储在波形存储器里的波形采样值经查表找出,完成相位到幅度的转换。波形存储器的输出送到 D/A 转换器,由 D/A 转换器将数字信号转换成模拟信号输出。

一般32位累加器不会全用来输出作为ROM地址,会根据ROM深度来适当截取高位作为地址,其余位可以作为控制频率。例如现在ROM中存储波形一个周期数据每个数据位宽8位,则数据范围为0-2^8(256),但是要产生一个周期波形需要512个,因为0-256一般是上升期,256-0处于下降期,那么现在ROM深度为512,则地址位宽应为9位,2的9次方=512,则32位累加器只需高9位即可[31:23]寻址,其余位用来控制地址改变的频率。假如现在每来一个时钟地址变一次,那么其余位(即频率控制字A)应设置为32‘h800000即32’b0000_0000_10000000_0000_0000_0000_0000,最高位1其实就是地址的最低位,累加器初始为0,来个时钟沿加一次A,高9位地址变化一次。要想两个时钟变化一次,那么A就是32‘b0000_00000100_0000_0000_0000_0000_0000,两个时钟之后地址的最低位才会变化。这样通过对频率控制字A的设置就可以达到改变地址的变化频率,其实就是输出的频率。不知道这样说看者能否理解。

这里相位累加器位数为 N 位(N 的取值范围实际应用中一般为 24~32),相当于把正弦信号在相位上的精度定义为 N 位,所以其分辨率为1 /2。若 DDS 的时钟频率为

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    12

    文章

    3859

    浏览量

    84666
  • 信号源
    +关注

    关注

    5

    文章

    407

    浏览量

    43733
  • DDS信号发生器

    关注

    0

    文章

    3

    浏览量

    3160

原文标题:​基于Verilog的DDS波形发生器的分析与实现(三角波、正弦波)

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DDS信号发生器

    现在用到DDS芯片做个信号发生器,可是不知道用DDS产生的波形的幅度是怎么得到的,要是想改变波形的幅度该怎么做?求解答。
    发表于 04-15 23:06

    DDS信号发生器资料集汇

    `本专题汇集了四十种DDS信号发生器各部分资料,包括信号发生器原理,DDS芯片及应用,
    发表于 06-23 14:02

    基于ALTERA实现DDS信号发生器设计

    基于ALTERA实现DDS信号发生器设计
    发表于 05-12 15:08

    基于FPGA的DDS信号发生器

    求一个基于FPGA的DDS信号发生器设计,最好有DA模块和相位累加模块的代码。
    发表于 03-18 22:09

    基于 DDS 原理,应用 FPGA 开发 信号发生器

    现在很多信号发生器是基于 DDS 技术开发的。但是看其性能指标有些不明白的地方,不知道是怎么实现的?比如 采样率是 500MSa/s, 输出频率 100MHz那么他是怎么做到最大频率下
    发表于 10-13 16:21

    如何利用FPGA设计DDS信号发生器

    DDS的工作原理和基本结构基于FPGA的DDS信号发生器的设计如何建立顶层模块?
    发表于 04-09 06:46

    如何利用FPGA和DDS技术实现正弦信号发生器的设计

    DDS电路的工作原理是什么如何利用FPGA和DDS技术实现正弦信号发生器的设计
    发表于 04-28 06:35

    怎么利用FPGA设计基于DDS信号发生器

    本文在讨论DDS的基础上,介绍利用FPGA设计的基于DDS信号发生器
    发表于 05-06 09:54

    怎么实现基于FPGA+DDS的正弦信号发生器的设计?

    介绍了DDS的发展历史及其两种实现方法的特点,论述了DDS的基本原理,并提出一种基于FPGA的DDS信号
    发表于 05-11 06:58

    DDS直接数字频率合成器、信号发生器、函数发生器

    DDS直接数字频率合成器、信号发生器、函数发生器1.DDS直接数字频率合成器、信号
    发表于 03-24 18:10

    基于DDS技术的信号发生器研究与实现策略

    基于DDS技术的信号发生器研究与实现策略  研究了一种基于DDS芯片AD9850和单片机AT89S52的
    发表于 04-23 11:41 2265次阅读
    基于<b class='flag-5'>DDS</b>技术的<b class='flag-5'>信号</b><b class='flag-5'>发生器</b>研究与<b class='flag-5'>实现</b>策略

    信号发生器原理_DDS芯片及应用_DDS信号发生器设计

    本专题汇集了四十种DDS信号发生器各部分资料,包括信号发生器原理,DDS芯片及应用,
    发表于 06-23 10:41
    <b class='flag-5'>信号</b><b class='flag-5'>发生器</b>原理_<b class='flag-5'>DDS</b>芯片及应用_<b class='flag-5'>DDS</b><b class='flag-5'>信号</b><b class='flag-5'>发生器</b>设计

    基于DDS信号发生器设计

    基于dds函数信号发生器,用单片机及dds实现正玄波,三角波,矩形波的产生
    发表于 01-11 14:55 19次下载

    DDS多波信号发生器实现

    详细介绍了直接数字频率合成器(DDS)的工作原理、基本结构。在参考DDS 相关文献的基础上,提出了符合结构的DDS 设计方案,利用DDS 技术设计了一种高频率精度的多波形
    发表于 11-22 14:35 0次下载

    基于FPGA 的DDS正弦信号发生器的设计和实现

    电子发烧友网站提供《基于FPGA 的DDS正弦信号发生器的设计和实现.pdf》资料免费下载
    发表于 03-24 09:34 3次下载