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

VIVADO IP核之DDS直接数字频率合成器使用详解

VIVADO IP核之DDS直接数字频率合成器使用详解

目录

前言

一、DDS基本知识

二、DDS IP核使用之SIN COS LUT only

三、DDS IP核之SIN COS LUT only仿真

四、DDS IP核使用之Phase Generator and SIN COS LUT

五、DDS IP核之Phase Generator and SIN COS LUT仿真

总结


前言

        在数字调制解调,数字上下变频,软件无线电等应用中,均需要用到不同频率的正弦信号或者复正弦信号,VIVADO中的DDS IP核便可以产生不同频率的正弦信号,同时还可以用来计算三角函数值,本文将仔细介绍该IP核的使用,同时将该IP核计算的结果导入MATLAB中分析以验证该IP核被正确使用。


提示:以下是本篇文章正文内容,欢迎各位阅读,转载请附上链接。

一、DDS基本知识

        DDS的核心原理是通过数字计算直接生成波形数据,然后将这些数据转换为模拟信号。其基本组成包括:

相位累加器(Phase Accumulator):

        相位累加器负责生成波形的相位信息。它是一个寄存器,每个时钟周期都会根据相位增量(Phase Increment)进行累加,累加的结果表示当前波形的相位。相位增量决定了输出信号的频率。
波形查找表(Waveform Lookup Table, LUT):

        查找表存储了一周期波形的离散采样点,如正弦波的采样值。相位累加器的输出被用作查找表的地址,从而得到当前相位对应的波形幅度值。

数模转换器(Digital-to-Analog Converter, DAC):

        查找表输出的数字波形幅度值经过数模转换器转换成模拟信号。DAC的分辨率决定了输出波形的精度。

低通滤波器:

        DAC输出的是离散的步进信号,通过低通滤波器可以去除高频成分,得到平滑的模拟波形。

在VIVADO DDS IP核中,只有前两个,产生的是数字信号。

        假设f_{clk}为工作时钟频率(采样频率),N为相位增量控制字位数,x为相位增量控制字,则生成正弦波信号的频率为:

f_0=\frac{K}{2^N}\cdot f_{clk}

频率分辨率为f_{clk}/2^N

不理解这个公式的可以从周期出发理解:

T_0=\frac{2^N}{K}*T_{clk}

二、DDS IP核使用之SIN COS LUT only

        IP核命名为DDS_test,配置选项选择SIN COS LUT only,这个是用来计算三角函数值的。Nosie shaping选择无,另外一

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c#怎么折叠代码快捷
  • el-form-item,label在上方显示,输入框在下方展示
  • Bug太多,苹果手机升级到18.1后怎么降级
  • 状态模式-系统架构师(四十二)
  • 飞天发布时刻:大数据AI平台产品升级发布
  • Webpack入门基础知识及案例
  • 短视频SDK,支持Flutter跨平台框架,加速产品上线进程
  • 3D展示的前景如何?
  • 线程与多线程(二)
  • 中秋节喝酱酒的习俗是什么时候开始的?
  • 【07】JVM是怎么实现invokedynamic的
  • Django内置后端和自定义后端
  • HCIP学习 | OSPF---LSA限制、不规则区域、附录E、选路
  • 【QML】Qt.rgba()的正确使用方法
  • Linux知识复习第2期
  • 【个人向】《HTTP图解》阅后小结
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • android图片蒙层
  • Date型的使用
  • ES6 学习笔记(一)let,const和解构赋值
  • Flannel解读
  • Java 多线程编程之:notify 和 wait 用法
  • JAVA并发编程--1.基础概念
  • Lucene解析 - 基本概念
  • mongodb--安装和初步使用教程
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Vue UI框架库开发介绍
  • 分布式任务队列Celery
  • 分享几个不错的工具
  • 力扣(LeetCode)357
  • 马上搞懂 GeoJSON
  • 如何编写一个可升级的智能合约
  • 三栏布局总结
  • 手写一个CommonJS打包工具(一)
  • 怎样选择前端框架
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)JAVA使用POI操作excel
  • (二开)Flink 修改源码拓展 SQL 语法
  • (二十三)Flask之高频面试点
  • (二十四)Flask之flask-session组件
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (回溯) LeetCode 40. 组合总和II
  • (六)激光线扫描-三维重建
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (顺序)容器的好伴侣 --- 容器适配器