当前位置: 首页 > backend >正文

我的电赛(简易的波形发生器大一暑假回顾)

DDS算法:当时是用了一款AD9833芯片搭配外接电路实现了一个波形发生,配合stm32f103芯片实现一个幅度、频率、显示的功能;

在这个过程中,也学会了一些控制算法;就比如DDS算法,当时做了一些了解,可能理解不够深入,但是起码理解了,哈哈哈。

算法原理:

       微控制器向 AD9833 写入频率控制字和相位控制字,芯片内部的相位累加器根据频率控制字进行累加运算,得到的相位值作为地址去访问波形存储器(内部已固化正弦波、方波、三角波等波形数据),取出对应幅值的数字信号,再经过数模转换和低通滤波,输出模拟波形 。通过改变频率控制字,可以调整相位累加器的累加速度,从而实现输出波形频率的改变;通过修改相位控制字,能够改变输出波形的初始相位。

好迷,总体来说就是向寄存器写入一些值(下面应该是叫做控制码)来控制输出的波形变化;

AD9833 可输出正弦波、方波和三角波,通过向特定寄存器写入不同的控制码来选择波形类型。例如,写入控制码 0x2000 选择正弦波,写入 0x2100 选择方波,写入 0x2200 选择三角波。在程序中,根据用户选择的波形类型,将对应的控制码通过 SPI 通信写入 AD9833 的控制寄存器。

感觉如果嵌入式方面要应用的话,能理解上面这些就欧克了,至于具体的公式原理倒没有显得那么重要了。

下面就是一些关于DDS控制算法的频率和相关相位的计算了:

http://www.xdnf.cn/news/7176.html

相关文章:

  • 字节跳动开源通用图像定制模型DreamO,支持风格转换、换衣、身份定制、多条件组合等多种功能~
  • 【android bluetooth 协议分析 01】【HCI 层介绍 4】【LeSetEventMask命令介绍】
  • 【C语言】字符串函数及其部分模拟实现
  • JavaScript:元宇宙角色动作与移动
  • 6.2.5图的基本操作
  • TYUT-企业级开发教程-第二章
  • 学习STC51单片机05(芯片为STC89C52RC)
  • 发布时将多个bpl 打包成一个bpl的方法,或者说:不需要vcl60.bpl情况下 18.5K的exe 照常可以运行。
  • deepseek系列论文汇总(时至2025.5)
  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-高职组(省赛)解题报告 | 珂学家
  • AGI大模型(24):通过LangChain的接口来调用OpenAI对话
  • 【AWS入门】Amazon Bedrock简介
  • Compose笔记(二十四)--Canvas
  • 项目:在线音乐播放服务器——基于SSM框架和mybatis
  • redis持久化和数据淘汰方案
  • NB-IoT技术深度解析:部署模式与节能机制全指南
  • SONiC系统之高速数据遥测High Frequency Telemetry
  • Java中的伪共享(False Sharing):隐藏的性能杀手与高并发优化实战
  • Python训练营---Day29
  • 劳特巴赫trace32自定义调试界面
  • mysql的高可用
  • 基于MCP的AI Agent应用开发实践
  • 类的加载过程详解
  • 如何本地部署Qwen3系列的大小模型235B/32B并进行推理服务及并发测试?
  • 力扣1991:找到数组的中间位置(前缀和)
  • 三、关系数据库
  • leetcode报错原因总结需要背下来的程序片 [更新中]
  • MinIO:从入门到精通,解锁云原生存储的奥秘
  • 程序代码篇---python向http界面发送数据
  • Ubuntu搭建TFTP服务器的方法