(14)DDS基本原理与FPGA实现

news/2024/9/19 23:39:02/文章来源:https://www.cnblogs.com/xuxuxu69/p/18401423

基本概念

DDS(Direct Digital Synthesizer),即数字合成器,是一种把一系列数字信号通过D/A转换器转化成模拟信号数字合成技术
DDS的实现有两种方式:查表法计算法,下面将主要介绍DDS查表法的FPGA实现
查表法:预先在ROM中存放不同相位对应的幅度序列,通过相位累加器的输出对其进行寻址,经过D/A转换与低通滤波器即可得到所需要的模拟信号


输入:频率控制字、相位控制字、系统时钟、复位信号
输出:幅度数据
关系:如果一个波形能用M个点完全采样,则:
Tout = M*Tclk
Fout = Fclk/M

原理分析


当FPGA控制DAC输出一个周期的正弦信号时,从图中可看到共32个采样点(最后一个点和第一个重合),若每1ms输出一个数值且每个点都输出,则输出一个完整的周期需要32ms,因此该信号的频率为1000/32(f=1/T)

现在若需要这样一组数据输出一个频率为2x(1000/32)的信号,即输出一个完整的周期为16ms,此时只能输出16个点来表示一个完整的周期,我们可以每隔一个点输出一个数据来完成,效果图如上所示,这样输出信号的时间缩短了一半,即频率增加了一倍
若现在需要输出一个频率为(1/2)x(1000/32)的信号,即输出一个完整的周期为64ms,此时我们可以每2ms输出一个值,即第1ms与第2ms都输出第一个点,第3ms与第4ms都输出第二个点,以此推例,即可实现周期加倍,频率减半的效果
通过上述分析,其中的计算过程如下:

Fclk=1000Hz(周期为1ms)
1.取点间隔为1
Fout=1000/32=1000/(2N) N=5
2.取点间隔为2,即频率翻倍
Fout=2000/32=1000/(2N/2) N=5
3.取点间隔为0.5,即频率减半
Fout=(1000/2)/32=1000/(2N/0.5) N=5

频率控制字Fword,也常写作B(步进)
故输出频率Fout=Fclk/M=BxFclk/2N

相位累加器位数N,相当于将一个正弦信号在相位上的精度定义为N位,因此其分辨率为1/2N

式中M是对一个波形取的所有的点数,受到ROM容量的影响

相位控制字:只需要在每个取样点的序号上加一个偏移量,即可实现对相位的控制,如上述将一个正弦的周期32等分,若我们在第1ms时从第9个点开始输出,则就将相位左移了90度,这就是相位控制的原理

后续这里工程代码讲的实在太难接受了,抱歉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/793520.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

入门指南 | Datavines 安装部署篇

摘要:本文主要介绍基于源码部署 Datavines 和执行检查作业,内容主要分为以下几个部分:平台介绍 快速部署 运行数据质量检查作业Datavines 的目标是成为更好的数据可观测性领域的开源项目,为更多的用户去解决元数据管理和数据质量管理中遇到的问题。在此我们真诚欢迎更多的贡…

VUE0003:Naive UI库:滑动条,单选,多选组件

1,滑动条,单选,多选组件 <template><n-scrollbar class="show-scrollbar"><n-space class="map-setting" vertical><n-space style="flex-flow: row; align-items: center;"><n-text class="color-white&quo…

图特征工程实践指南:从节点中心性到全局拓扑的多尺度特征提取

图结构在多个领域中扮演着重要角色,它能有效地模拟实体间的连接关系,通过从图中提取有意义的特征,可以获得宝贵的信息提升机器学习算法的性能。 本文将介绍如何利用NetworkX在不同层面(节点、边和整体图)提取重要的图特征。 本文将以NetworkX库中提供的Zachary网络作为示例…

软件工程个人第一次作业

软件工程作业📖📖 🚗预览课程 软件工程作业要求 要求作业目标 熟悉github与博客园,并且掌握最基础的操作。编辑博客页面,感受AGIC的生成效果学号 1022013111. 个人logo生成任务🐱 使用搭载DALL-E3的Coplit尝试生成logo的演示过程 ![]设计思路: graph TD A[薛定谔的猫…

git 推送本地文件

引言 参考文章:Git操作全流程介绍Git 的工作流程如下所示:1. 创建仓库 1.1 新建 gitee 仓库 在 gitee 中创建一个仓库 HelloWorld,如下所示:1.2 初始化本地仓库 假设本机有一个 MyCode 文件夹,进入该文件夹目录下,在该处打开 git bash。,输入命令将该文件夹初始化为 git…

Redis 哨兵模式搭建

1.Redis: Redis是一款基于内存的非关系型数据库(5种类型String 哈希 List Set Zset) 可能会发生的故障(缓存击穿:某热点数据或者没有缓存的时候 直接打到数据库上、缓存穿透:大量请求查询不存在的数据,直接打到数据库上、缓存雪崩:缓存过期或者不存在 打到数据库上) 持久化R…

mysql在linux安装

在Linux上安装MySQL 5.7版本的步骤可以分为多个部分,包括下载、安装、配置以及启动MySQL服务。以下是一个详细的步骤指南: 一、下载MySQL 5.7安装包 访问MySQL官方网站: 前往MySQL官方网站下载适用于Linux的MySQL 5.7安装包。通常,你会找到如mysql-5.7.xx-linux-glibc2.xx-…

洛谷P3128 [USACO15DEC] Max Flow P 树上差分

传送门:P3128 [USACO15DEC] Max Flow P 首先要学会差分qwq 题目意思: 给定一个节点数为 \(n\) 的树,有 \(m\) 次操作。 每次操作给你两个数 \(s\) 和 \(t\),你需要在 \(s\) 到 \(t\) 的路径所经过点的运输压力 \(+1\)。 求最后运输压力最大的点的压力。 思路: 发现 \(s\) …

洛谷 P3034 Cow Photography G/S——题解

洛谷P3034题解传送锚点摸鱼环节 [USACO11DEC] Cow Photography G/S 题面翻译 题目描述 今天的奶牛们特别调皮!Farmer John 想做的只是给排成一排的奶牛拍照,但是在他拍下照片之前,奶牛们一直在移动。 具体地说,FJ 有 \(N\) 头奶牛(\(1 \leq N \leq 20\,000\)),每头奶牛都…

记一次.net使用httpclient中代码中使用response.EnsureSuccessStatusCode()引发的误会

1.问题背景 有一个拉取第三方数据存储到本地的需求,使用.net开发,使用httpClient发送post请求。第三方接口里面会校验我们发送的json数据,如果我们的数据格式不正确会抛出异常。 2.返回的结果不同? 第一步,我用postman做了测试,对方的接口可以调用,正确和错误都可以返回…

等保安全设备配置

这篇文章带你了解等保2.0 二级和三级安全设备配置!本文介绍了不同等级的等保规划设计,包括二级等保(基础版)、三级等保(基础版、增强版、豪华版)。其中,各版本均需配备主机杀毒软件和日志审计系统等,增强版和豪华版还需增加 IPS、Anti-DDoS 等。此外,文章还提到内网安…

触想全新Z系列工控机扩展IIoT应用潜能

8月31日,触想重磅推出全新Z系列高性能、扩展型工控机——TPC05/06/07-WIPC,提供标准版/双卡槽/四卡槽3款机型选择。作为边缘计算、机器视觉、AI智能和工业应用的理想机型,Z系列工控机支持Intel第12/13/14代Core™ i3/i5/i7/i9处理器,最多搭载4个PCIe/PCI的扩展能力,可外接…