首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏FPGA开源工作室

    Vivado DDS IP核仿真

    1 DDS IP概述 直接数字合成器(DDS)或数控振荡器(NCO)是许多数字通信系统中的重要部件。 的时候频率就开始不稳定;要想输出更大的频率,可以通过增加系统时钟来实现; (4)Number of channels(通道数选择) 1;最多可以选择16个通道输出,本项目为实现任意可调频率输出只用到单通道输出即可; (5) (正弦);选择正弦输出即可; Cosine (余弦); (4)Polarity (极性)没用上,不用选; Negative sine(负极性正弦); Negative cosine(负极性余弦); (5) config_tvalid, output wire [31 : 0] config_tdata ); //参数定义 parameter F_word_1KHz = 32'hA7C5 initial begin aclk =0; reset_n =0; #1000; reset_n =1; end always #(5)

    1.2K10编辑于 2024-02-22
  • 来自专栏机器人课程与技术

    ROS2+DDS+RTPS

    安装: zhangrelay@LAPTOP-5REQ7K1L:~$ sudo apt install ros-humble-rmw-fastrtps-cpp [sudo] password for zhangrelay DDS 使用 QoS 来定义 DDS 实体的行为特征。 QoS 由单独的 QoS 策略(源自 QoSPolicy 的类型的对象)组成。这些在政策中有所描述。 DDS 域由域 ID 标识。 DomainParticipant 定义域 ID 以指定它所属的 DDS 域。具有不同 ID 的两个 DomainParticipants 不知道彼此在网络中的存在。 此外,Fast DDS 还支持 TCP 和共享内存 (SHM) 传输。 它旨在支持单播和多播通信。 在继承自 DDS 的 RTPS 顶部,可以找到域,它定义了一个单独的通信平面。 您可以继续阅读 RTPS 层部分,了解更多关于快速 DDS 中 RTPS 协议的实现。 ----

    1.4K20编辑于 2022-06-27
  • 来自专栏Lauren的FPGA

    DDS Rasterized模式怎么用?

    直接数字频率合成器(DDS: Direct Digital Synthesizers)又称数字压控振荡器(NCO: Numerically Controlled Oscillator)在数字通信系统中被广泛使用 AMD提供了专门的DDS IP,用户只需根据设计需求进行定制。 这个IP有两种工作模式:Rasterized模式和Standard模式,如下图所示,可通过Mode Of Operation进行设定。 我们先了解一下DDS的工作原理,如下图所示,DDS由两部分构成:相位累加器和相位波形转换器。前者根据给定的初始相位和相位步进值输出目标相位值,后者又称波形存储器,根据输入的相位值输出对应的幅度值。 我们看一个案例,系统工作频率200MHz,模值M=1000,输出信号频率5MHz,故可得 基于此,DDS IP的参数配置如下图所示: 在Summary页面可以看到整体信息,这里需要注意无杂散动态范围SFDR 实际上,根据DDS的工作原理,除了可以输出正弦信号之外,还可以输出其他波形的信号。无需其他额外逻辑,在上述参数配置的情况下,相位累加器的输出将呈现锯齿波,而相位累加器的最高位将呈现方波,如下图所示。

    64721编辑于 2024-02-06
  • 来自专栏FPGA开源工作室

    基于LUT的DDS的设计

    基于LUT的DDS的设计 DDS(Direct Digital Synthesis)直接数字频率合成技术由USA J.Tierncy首先提出。 DDS主要出现在数字混频系统中。在数字混频中,通过DDS产生正交的本地振荡信号即正、余弦信号与输入信号相乘实现频谱搬移,如通信系统的调制、解调。 1 基于LUT的DDS理论 一个典型的基于LUT的DDS系统由相位累加器和波形存储器两部分构成,如图1所示。图中相位累加器的位宽为nbit,步进值为μ,LUT的深度N为2n,宽度为Lbit。 `define NULL 0 3. module tb_dds(); 4. 5. parameter KHZ1 =44; 6. parameter KHZ2 =22; 7. parameter 图5 FFT分析结果 由图5可知产生的正玄波频率为1KHZ。基于LUT的DDS设计完成,此节将是后期基于FPGA数字信号处理的基础和关键。 DSP往期 音频总线I2S协议 信号的产生 信号的基本概念

    1.2K10发布于 2019-10-29
  • 来自专栏机器人课程与技术

    ROS2之DDS问题汇集

    333 见过类似的问题,不是每个网络都有,但主要是无线网状网络有许多无线 AP 相互通信,其中 ROS2/DDS 流量导致它停止运行。

    1.3K20编辑于 2022-08-10
  • 来自专栏OpenFPGA

    Xilinx DDS Compiler IP 使用教程

    该输入值决定了输出波形的频率,值越小,DDS 通过正弦查找表的步进越慢,输出波形的频率越低。相反,输入值越高,DDS 步进查找表的速度越快,输出波形的频率也越高。 在加ILA的时候,一共加了4个探头监测DDS从接口的输入相位增量值和DDS主接口的输出数据和相位值。将芯片的深度设置为 65536。 实例化 ILA 和 DDS IP 后,编写了简单状态机来创建 AXI Stream 接口,将相位增量值输入到 DDS,然后等待 1 us,然后将 1MHz 步长添加到相位增量值并将其输入到DDS。 第三张图是输入到 DDS 的相位增量值。 底部的十六进制值只是状态机状态,用于演示每个状态如何与 DDS 控制关联。 ://docs.xilinx.com/v/u/en-US/pg141-dds-compiler 总结 希望这个简单的 DDS 示例对您有所帮助。

    2.6K31编辑于 2023-02-14
  • 来自专栏python3

    Python基础——5模块

    使用模块 ‘the first line is zhushi’ _author_ = ‘syz’ import sys def test(): args = sys.argv if len

    35610发布于 2020-01-19
  • 来自专栏漫漫架构路

    5. 缓存模块

    小结 本篇详细介绍了 MyBatis 缓存模块的底层原理,包括缓存的基础实现、具备各种扩展功能的缓存装饰器,以及缓存 Key 的设计思想。 个人认为,缓存模块中的精髓就是装饰器设计模式的灵活运用,它使得用户在使用缓存时,可以根据不同的需求来灵活地定制化功能。这种设计思想非常值得我们借鉴。

    39820编辑于 2023-10-12
  • 来自专栏python3

    5-functools模块

    functools functools 包含了用于创建装饰函数,启动面向切面的编程,超出面向对象编程范围的代码复用,同时提供了装饰函数用于丰富的快捷比较的API, partial 模块还创建了包含函数参数的函数引用 item: {}".format(i)) if __name__ == "__main__": # 传入两个不同的类型参数,其处理逻辑也是不同 myfunc([1,2,3,6,4,5] myfunc("Hello World") 输出: List item: 1 List item: 2 List item: 3 List item: 6 List item: 4 List item: 5

    54220发布于 2020-01-06
  • 来自专栏开源FPGA

    基于Vivado调用ROM IP core设计DDS

    DDS直接数字式频率合成器(Direct Digital Synthesizer)   下面是使用MATLAB生成正弦波、三角波、方波的代码,直接使用即可。 4 fid = fopen('sin.coe','w'); %写到sin.coe文件,用来初始化sin_rom 5 fprintf(fid,'MEMORY_INITIALIZATION_RADIX=10 这是DDS的原理图,DDS并没有像它的名字一样说的那么玄乎,它的核心便是控制频率的fword字输入,和相位字pword输入,最后调用IP核查找表即可,代码也十分简单,下面给出DDS design代码。 1 module DDS( 2 input mclk, 3 input rst_n, 4 input [31:0]fword ,//frequency control 5 input [11:0]pword,//phase control 6 7

    1.7K50发布于 2018-01-05
  • 来自专栏河湾欢儿的专栏

    5.模块

    什么是模块化? 1.一系列相关联的结构组成的整体 2.这个整体带有一定语义化 比如说page分页、比如说图片轮播。 怎么做? 1.为模块分类命名如(m-,md-)表示一个模块 2.唯一的根节点 3.使用以主选择器开头的后代选择器 <! html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> /*导航模块 */ .m-nav{}/*模块容器*/ .m-nav li{} .m-nav a{} .m-nav .active a{} </style html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> /*导航模块

    40520发布于 2018-09-06
  • 来自专栏网络收集

    5模块化开发

    5模块化开发 为什么需要模块化 JavaScript原始功能 在网页开发的早期,js制作作为一种脚本语言,做一些简单的表单验证或动画实现等,那个时候代码还是很少的。 那个时候的代码是怎么写的呢? 使用模块作为出口 我们可以使用将需要暴露到外面的变量,使用一个模块作为出口,什么意思呢? 来看下对应的代码: 我们做了什么事情呢? 非常简单,在匿名函数内部,定义一个对象。 我们只需要使用属于自己模块的属性和方法即可 这就是模块最基础的封装,事实上模块的封装还有很多高级的话题: 但是我们这里就是要认识一下为什么需要模块,以及模块的原始雏形。 幸运的是,前端模块化开发已经有了很多既有的规范,以及对应的实现方案。 常见的模块化规范: CommonJS、AMD、CMD,也有ES6的Modules image.png

    68720编辑于 2022-05-28
  • 来自专栏算法channel

    time 模块 5 个用法

    使用time模块打印当前时间 # 导入time模块 >>> import time # 打印当前时间,返回浮点数 >>> seconds = time.time() >>> seconds 1588858156.6146255 浮点数转时间结构体 >>> local_time = time.localtime(seconds) >>> local_time time.struct_time(tm_year=2020, tm_mon=5, %d %H:%M:%S') time.struct_time(tm_year=2020, tm_mon=5, tm_mday=7, tm_hour=21, tm_min=29, tm_sec=16, tm_wday

    37920发布于 2020-05-11
  • 来自专栏EMQ 物联网

    QUIC 双向认证、DDS 代理功能升级

    } }NanoMQ 的 MQTT over TCP 部分采用的是 MbedTLS 库进行加解密,与标准的 TCP 连接不同,QUIC 部分采用的是 MsQUIC 子模块项目内置的 NanoSDK 0.10 版本也在筹备开发中,将提供 MQTT5 over QUIC 协议支持和继续增加类 Paho 的使用方法。 MQTT5 桥接增加更多配置参数: 为 MQTT5 桥接新增了遗愿消息相关的配置参数。 此功能的讨论:点击查看在 NanoNNG 模块中更新了新的 nng_mqtt_quic_open_conf API 用于开启 QUIC 连接。 即将到来NanoMQ 项目目前的重点是提升 NanoSDK 的易用性和支持 MQTT5 over QUIC 桥接,并且将继续完善 DDS 协议代理功能和提供更多更丰富的文档和教程。

    2K50编辑于 2023-04-07
  • 来自专栏C++开发学习交流

    【C++】DDS:FastDDS环境配置与使用示例

    :https://fast-dds.docs.eprosima.com/en/latest/ FastDDS的前身是Fast-RTPS,实现了许多 DDS 规范。 5.高度可定制:Fast DDS 提供了丰富的配置选项和可扩展的插件机制,使用户能够根据具体需求进行自定义扩展和功能增强。 参考:https://www.jianshu.com/p/b9eb5dd9559f 3. /dds/publisher/Publisher.hpp> #include <fastdds/dds/publisher/DataWriter.hpp> #include <fastdds/dds/publisher /dds/subscriber/Subscriber.hpp> #include <fastdds/dds/subscriber/DataReader.hpp> #include <fastdds/dds

    7.1K11编辑于 2024-07-24
  • 来自专栏云深之无迹

    迷人的DDS数字下变频(YUNSWJ 仿真版)

    5 张图: 输入 RF 频谱 混频后基带(实部)频谱 低通滤波后频谱 抽取后的 I 通道频谱 抽取后 I/Q 时域片段(200 个采样点) “滤波前后”放在同一张图上 蓝色曲线 → 滤波前(混频后,2

    23410编辑于 2026-01-07
  • 来自专栏JavaEdge

    5-基础构建模块

    2 并发容器 Java5提供了多种并发容器来改进同步容器的性能。 同步容器将所有对容器状态的访问都串行化,以实现他们的线程安全性。 在Java 5中增加了 ConcurrentHashMap,用来替代同步且基于散列的Map,增加了对一些常见符合操作的支持,例如“若没有则添加”、替换以及有条件删除等。

    44520编辑于 2022-11-29
  • 来自专栏iSharkFly

    Hibernate 5模块包(modulesartifacts)

    Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义了 ORM 的特性和 API 以及一系列整合的 SPIs。

    51730发布于 2019-09-16
  • 来自专栏Web技术学苑

    揭秘webpack5模块打包

    ​在上一节中我们初步了解了webpack可以利用内置静态模块类型(asset module type)来处理资源文件,我们所知道的本地服务,资源的压缩,代码分割,在webpack构建的工程中有一个比较显著的特征是 ,模块化,要么commonjs要么esModule,在开发环境我们都是基于这两种,那么通过webpack打包后,如何让其支持浏览器能正常的加载两种不同的模式呢? IFEE模式,一个匿名的自定义自行函数内包裹了几大块区域 1、初始化定义了webpack依赖的模块 var __webpack_modules__ = { '. value就是一个函数,函数体内就是引入的具体代码内容,并且内部传入了一个形参module,实际上这个module就是为{exports: {}}定义的对象,把内部函数twoSum绑定了在对象上 2、调用模块优先从缓存对象模块取值 ' }); } Object.defineProperty(exports, '__esModule', { value: true }); }; })(); 5

    1.1K20编辑于 2022-07-28
  • 来自专栏企鹅号快讯

    Python模块知识5:日志logging

    logging模块提供了通用的日志系统,可以采用不同的方式记录日志,比如文件,HTTP、GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式; 日志分不同提醒级别,级别顺序为: logging.warning("user hh try wrong password more than 3 times") logging.critical("sever is down") 效果: logging模块包括 #4设置日志格式 screen.setFormatter(logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')) #5添加到 message') logging.info('This is info message') logging.warning('This is warning message') 执行结果:屏幕 文件: 案例5: logger.addHandler(screen) returnlogger logger=get_logger('access') logger.warning("hhh") 执行结果: 案例6:在一个程序中实际应用日志模块的案例

    1K70发布于 2018-01-11
领券