当前位置: 首页 > 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选择无,另外一

相关文章:

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仿真 总结 前言 …...

Vue3 插槽 使用笔记

Vue3 插槽 使用笔记 介绍 在 Vue 3 中,插槽(Slot)是一个非常强大的特性,它允许我们更好地组织和重用组件。通过定义插槽,子组件可以预留出由父组件控制的区域,这样父组件就可以向这些区域填充自己的内容。…...

Vue2与Vue3响应式原理对比

Vue2.x 响应式原理 Vue2.x 响应式: 实现原理 对象类型:通过 Object.defineProperty() 对属性的读取、修改进行拦截( 数据劫持 )数组类型:通过重写数组方法,并作为拦截器挂载到数组对象与数组原型之间,来实现拦截。 存在…...

Android系统Android.bp文件详解

文章目录 1. 基本语法结构2. 常见模块类型3. 模块属性常见属性包括: 4. 具体示例5. 高级功能5.1. 条件编译5.2. 变量定义与使用5.3. 模块继承 6. 总结 Android.bp 是 Android 构建系统(Android Build System)中的配置文件,用于描述…...

eNSP 华为静态路由配置

R1&#xff1a; <Huawei>system-view [Huawei]sysname R1 [R1]int g0/0/0 //进入g0/0/0端口 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24 //给端口配置IP地址和子网掩码 [R1-GigabitEthernet0/0/0]int g0/0/1 [R1-GigabitEthernet0/0/1]ip addr…...

Type-C PD芯片:引领智能充电与数据传输的新时代

随着科技的飞速发展&#xff0c;智能设备已经成为我们日常生活中不可或缺的一部分。无论是智能手机、平板电脑、笔记本电脑&#xff0c;还是智能家居设备&#xff0c;都需要高效、安全、便捷的充电与数据传输解决方案。在这样的背景下&#xff0c;Type-C PD&#xff08;Power D…...

天气查询 免费

免费的前提是需要有高德地图key 前去申请一个key 调用IP查询 | 高德控制台 ------ 申请key之后调用下面的接口或者查看官方文档 api地址&#xff1a; restapi.amap.com/v3/weather/weatherInfo 天气查询-基础 API 文档-开发指南-Web服务 API | 高德地图API 参数名 含义 规…...

VC 与 VS(visual studio) 的对应版本

VC 与 VS 对应版本的关系&#xff1a; VC9&#xff1a;对应的是 Visual Studio 2008 版本。在这个版本中&#xff0c;开发环境提供了一系列的新特性和改进&#xff0c;为开发者提供了更高效的编程体验。例如&#xff0c;增强了对 C 标准的支持&#xff0c;优化了调试工具等。 …...

Qt使用lupdate工具生成.ts文件

Qt提供了lupdate工具&#xff0c;用于从源代码中提取需要翻译的字符串【1】&#xff0c;并生成或更新.ts文件 注解【1】&#xff1a;使用tr()函数&#xff08;或者QCoreApplication::translate()等其他相关的翻译函数&#xff09;来标记所有需要翻译的文本。例如&#xff1a; …...

编程-设计模式 1:工厂方法模式

设计模式 1&#xff1a;工厂方法模式 定义与目的 定义&#xff1a;工厂方法模式定义了一个创建对象的接口&#xff0c;但允许子类决定实例化哪一个类。工厂方法让一个类的实例化延迟到其子类。目的&#xff1a;提供一种方式来封装对象创建的过程&#xff0c;使得客户端不需要…...

Linux 快速构建LAMP环境

目录 部署方式&#xff1a; 基础环境准备&#xff1a; 1.安装Apache服务 &#xff08;1&#xff09;安装Apache &#xff08;2&#xff09;安装一些Apache的扩展包 2.安装PHP语言 &#xff08;1&#xff09;下载php软件仓库 &#xff08;2&#xff09;指定php安装版本…...

【C/C++】语言基础知识总复习

文章目录 1. 指针1.1 数组和指针1.2 函数指针1.3 const 和 指针、static、#define、typedef1.4 指针和引用的异同1.5 sizeof与strlen 2. 库函数及其模拟实现3. 自定义类型4. 数据存储5. 编译链接过程6. C入门基础6.1 函数重载6.2 引用和指针6.3 建议使用const、inline、enum去替…...

【漏洞修复】Tomcat中间件漏洞

1.CVE-2017-12615 抓包上传一句话木马 密码passwd 2.后台弱口令部署war包 先用弱口令登录网站后台 制作war包 将172.jsp压缩成.zip文件&#xff0c;修改后缀为.war 上传 蚁剑链接 3.CVE-2020-1938 Python2 CVE-2020-1938.py IP -p 端口 -f 要读取的文件 漏洞修复&#xf…...

10.动态路由绑定怎么做

为什么要动态路由绑定 因为,如果我们的导航栏没有这个权限,输入对应网址,一样可以获取对应的页面,为了解决这个问题,有两种解决方案,一种是动态路由绑定(导航有多少个,就有多少个路由,在路由修改之前,先进行一个导航路由的加载和路由的动态绑定,然后看是否有这个路由,有就跳转…...

操作ArkTS页面跳转及路由相关心得

本文为JS老狗原创。 当前端不得不关注的点&#xff1a;路由&#xff0c;今天聊一聊鸿蒙相关的一点心得。 总体上套路不意外&#xff0c;基本就是&#xff08;尤其是Web&#xff09;前端那些事&#xff1a;维护路由表、跳转带参数、历史堆栈操作&#xff0c;等等。 历史原因&…...

Vue2-低版本编译兼容-基础语法-data-methods-双向数据绑定v-model

文章目录 1.安装编译命令2.低版本兼容3.vue2响应式数据3.1.data定义3.2.双向数据绑定v-model3.3.单向数据绑定v-bind4.方法methods5.子组件向父组件传值6.父组件向子组件传值1.安装编译命令 命令行工具 vue create zhiliaoplugins8824barcodebatch cd zhiliaoplugins8824barc…...

提取“c语言的函数定义“脚本

------------------------------------------------------------ author: hjjdebug date: 2024年 08月 11日 星期日 16:35:31 CST description: 提取c语言的函数定义脚本 ------------------------------------------------------------ c 文件中包含很多函数定义, 我想在每…...

pytorch学习(十二):对现有的模型进行修改

以VGG16为例&#xff1a; VGG((features): Sequential((0): Conv2d(3, 64, kernel_size(3, 3), stride(1, 1), padding(1, 1))(1): ReLU(inplaceTrue)(2): Conv2d(64, 64, kernel_size(3, 3), stride(1, 1), padding(1, 1))(3): ReLU(inplaceTrue)(4): MaxPool2d(kernel_size2…...

服务器虚拟内存是什么?虚拟内存怎么设置?

服务器虚拟内存是计算机系统内存管理的一种重要技术&#xff0c;它允许应用程序认为它们拥有连续且完整的内存地址空间&#xff0c;而实际上这些内存空间是由多个物理内存碎片和外部磁盘存储器上的空间共同组成的。当物理内存&#xff08;RAM&#xff09;不足时&#xff0c;系统…...

深度学习入门指南(1) - 从chatgpt入手

2012年&#xff0c;加拿大多伦多大学的Hinton教授带领他的两个学生Alex和Ilya一起用AlexNet撞开了深度学习的大门&#xff0c;从此人类走入了深度学习时代。 2015年&#xff0c;这个第二作者80后Ilya Sutskever参与创建了openai公司。现在Ilya是openai的首席科学家&#xff0c;…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...