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

    Vivado DDS IP核仿真

    1 DDS IP概述 直接数字合成器(DDS)或数控振荡器(NCO)是许多数字通信系统中的重要部件。 •3位至26位带符号输出采样精度 IP 文档连接:PG141 2 DDS IP 架构 3 DDS IP 配置 (1)Component Name 可以修改IP核名字 (2)Configuration options 配置选项:这里我们选择phase generator and sin cos LUT (3)system clock(系统时钟) 100MHz(范围0.01—1000MHZ);通过奈奎斯特定理可知 programmability None(无);选择无相位偏移; Fixed(固定模式);固定相位偏移; Programmable(可编程模式);可以调整波形相位; Streaming(流水模式); (3DDS_top: module dds_top( input wire aclk, input wire reset_n, output valid, output

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

    ROS2+DDS+RTPS

    DDS 使用 QoS 来定义 DDS 实体的行为特征。 QoS 由单独的 QoS 策略(源自 QoSPolicy 的类型的对象)组成。这些在政策中有所描述。 DDS 域由域 ID 标识。 DomainParticipant 定义域 ID 以指定它所属的 DDS 域。具有不同 ID 的两个 DomainParticipants 不知道彼此在网络中的存在。 此外,Fast DDS 还支持 TCP 和共享内存 (SHM) 传输。 它旨在支持单播和多播通信。 在继承自 DDS 的 RTPS 顶部,可以找到域,它定义了一个单独的通信平面。 但是,Fast DDS 支持多种配置,允许您更改 RTPSWriters/RTPSReaders 的行为。 您可以继续阅读 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。 图3 matlab 1024点1个周期的正玄波 3 FPGA仿真 整个仿真结构如图1所示,由相位累加控制器和sin波形存储器组成。 `define NULL 0 3. module tb_dds(); 4. 5. parameter KHZ1 =44; 6. parameter KHZ2 =22; 7. parameter

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

    ROS2之DDS问题汇集

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

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

    常用模块3

    匹配除了字符组中字符的所有字符 3. 量词 我们到目前匹配的所有内容都是单一文字符号. 那如何一次性匹配很多个字符呢,我们要用到量词: *   重复零次或更多次 +   重复一次或更多次 ?    \\\n",这样就太麻烦了.这个时候我们就用到了 r'\n' 这个概念, 此时的正则是r'\\n'就可以了 print(r'how \t are \t u \n')   # r能取消掉转义 二. re模块 re模块是python提供的一套关于处理正则表达式的模块. 你要给我5000万').group() print(ret) # 5   3. match 只能从字符串的开头进行匹配 ret = re.match('a', 'abc').group() print( 两个坑   ★注意: 在re模块中和我们在线测试工具中的结果可能是不一样的. ret = re.findall('www.

    69310发布于 2020-01-19
  • 来自专栏技术开源分享

    3 模块整合

    一、vuex状态管理 首先下载vuex模块 npm install vuex -save 1、在store文件夹下新建5个子文件 每个文件夹的名字和内容如下所示 ?

    71340发布于 2018-10-31
  • 来自专栏OpenFPGA

    Xilinx DDS Compiler IP 使用教程

    从设备和主设备的逻辑; 3 - 一个集成逻辑分析仪 (ILA) IP,用于查看 DDS 的输出波形。 在加ILA的时候,一共加了4个探头监测DDS从接口的输入相位增量值和DDS主接口的输出数据和相位值。将芯片的深度设置为 65536。 实例化 ILA 和 DDS IP 后,编写了简单状态机来创建 AXI Stream 接口,将相位增量值输入到 DDS,然后等待 1 us,然后将 1MHz 步长添加到相位增量值并将其输入到DDS3 - 设置要在目标 IP 的从接口上输入的数据值(DDS 的相位增量值)。 4 - 检查来自目标 IP 从接口的 Tready 信号,验证它已准备好接收下一个数据值。 第三张图是输入到 DDS 的相位增量值。 底部的十六进制值只是状态机状态,用于演示每个状态如何与 DDS 控制关联。

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

    3 - collections 模块

    , 'b': 'B'}, {'b': 'C'}) key: a | value:A key: b | value:B 结论: 结果是没有合并,如果只是合并字典的值,还是直接使用update即可, 这个模块不怎么会用到 可以计算出一个序列中每个元素的个数,一个简单的例子 >>> import collections >>> collections.Counter("Hello World") Counter({'l': 3, : 1, 'h': 1, 'n': 1}) c1 - c2 = Counter({'l': 1, 'W': 1, 'r': 1, 'd': 1}) c1 | c2 = Counter({'l': 3, d['c']= 1 d['d']='B' d['c']='C' for k,v in d.items(): print(k,'=>',v) 输出: a => A b => 3 c => C d => B 但是 OrderedDict 会 d = OrderedDict() d['a']= 'A' d['b'] = 3 d['s']= 1 d['d']='B' d['c']='C' for k,

    42030发布于 2020-01-03
  • 来自专栏changxin7

    3.模块

    一,什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别:    1 使用python编写的代码(.py文件)   2 已被编译为共享库或DLL的C或C++扩展   3 包好一组模块的包   4 使用C编写并链接到 python解释器的内置模块 为何要使用模块? 这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用, 二,序列化模块。 c = Counter('abcdeabcdabcaba') print c 输出:Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1}) 七,时间有关的模块

    1.5K20发布于 2019-09-10
  • 来自专栏开源FPGA

    基于Vivado调用ROM IP core设计DDS

    DDS直接数字式频率合成器(Direct Digital Synthesizer)   下面是使用MATLAB生成正弦波、三角波、方波的代码,直接使用即可。 1 t=0:2*pi/2^12:2*pi 2 y=0.5*sin(t)+0.5; 3 r=ceil(y*(2^8-1)); %将小数转换为整数,ceil是向上取整。 48 fprintf(fid,','); 49 end 50 if i%15==0 51 fprintf(fid,'\n'); 52 end 53 end 54 fclose(fid);    设计DDS 这是DDS的原理图,DDS并没有像它的名字一样说的那么玄乎,它的核心便是控制频率的fword字输入,和相位字pword输入,最后调用IP核查找表即可,代码也十分简单,下面给出DDS design代码。 1 module DDS( 2 input mclk, 3 input rst_n, 4 input [31:0]fword

    1.7K50发布于 2018-01-05
  • 来自专栏素履coder

    Leetcode模块训练3

    示例 1: 输入:nums = [1,1,2,1,1], k = 3 输出:2 解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。 ([[3,0,1,4,2],[5,6,3,2,1],[1,2,0,1,5],[4,1,0,1,7],[1,0,3,0,5]]); numMatrix.sumRegion(2, 1, 4, 3); // _3 := obj.SumRegion(1, 2, 2, 4) fmt.Println(param_1) fmt.Println(param_2) fmt.Println(param_3) } 3 示例 2: 输入:numbers = [2,3,4], target = 6 输出:[1,3] 解释:2 与 4 之和等于目标数 6 。因此 index1 = 1, index2 = 3 。 示例 1: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。

    59330编辑于 2023-03-23
  • 来自专栏程序猿的大杂烩

    Python3 模块

    模块 Python3 模块简介 import 语句 from…import 语句 from…import* 语句 name属性 dir() 函数 标准模块 包 从一个包中导入* Python3 模块简介 3、sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。 ', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', '  prefix', 'ps1', 'ps2', 'py3kwarning __init__.py               初始化 sound 包 3.      formats/                  文件格式转换子包 4.               (例如,Windows 95就很讨厌的把每一个文件的首字母大写显示)而且 DOS 的 8+3 命名规则对长模块名称的处理会把问题搞得更纠结。

    1.1K30发布于 2020-09-23
  • 来自专栏EMQ 物联网

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

    } }NanoMQ 的 MQTT over TCP 部分采用的是 MbedTLS 库进行加解密,与标准的 TCP 连接不同,QUIC 部分采用的是 MsQUIC 子模块项目内置的 为了方便 MQTT 用户能够简单快速上手 DDS Proxy 功能,3 月这一工具正式发布:NanoMQ 推出了 IDL 代码生成器功能:idl-serial-code-gen。 = "DDS/topic1" struct_name = "remote_control_result_t" } ## MQTT to DDS mqtt_to_dds 其他修复和更新NanoMQ 0.17 版本还有一些小功能更新:支持 Retain 消息持久化至 SQLite3: 根据用户需求,为 NanoMQ 新增了,当开启 SQLite 的消息缓存和持久化功能时默认存储所有的 此功能的讨论:点击查看在 NanoNNG 模块中更新了新的 nng_mqtt_quic_open_conf API 用于开启 QUIC 连接。

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

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

    :https://fast-dds.docs.eprosima.com/en/latest/ FastDDS的前身是Fast-RTPS,实现了许多 DDS 规范。 3.安全性: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 仿真版)

    亲爱的看官,昨天后半夜没忍住,写了一个高速 ADC,其实表面参数之外,还有很多值得研究的东西,比如这么大的采样率,后面究竟在处理什么?

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

    python3--序列化模块,hashlib模块

    值a进行hash --> 存值 值b进行hash --> 判断值是否:相等 --> 说明是一样的 值b进行hash --> 判断值是否: 不相等  --> 在开辟一个空间,来存放b python常用模块 序列化的目的 1 以某种存储形式使自定义对象持久化 2 将对象从一个地方传递到另一个地方 3 使程序更具维护性 ? 支持python中所有的数据类型 shelve  python3. *之后才有的 序列化的使用场景: 1 能存储在文件中的一定是字符串 或者是 字节 2 能在网络上传输的 只有字节 json json模块提供了四个功能:dumps,dump,loads,load 序列化 = json.dumps(dic3) f.write(st3 + '\n') f.close() # 读取文件数据 f1 = open('user_info', 'r', encoding='utf-8

    1.1K10发布于 2018-08-02
  • 来自专栏sktj

    python3 常见模块

    sys模块 sys.argv[1] sys.exit() sys.stdin sys.stdout sys.stderr ? ? ordereddict 维持原来添加的顺序 迭代模块itertools ? ? ? 函数模块 functools 缓存结果,部分函数,reduce ? ?

    40820发布于 2019-12-12
  • 来自专栏毛利学Python

    Python3-logging模块

    本文链接:https://blog.csdn.net/a54288447/article/details/80804007 logging模块,Python3自带用来记录日志的模块。 因为工作需要用到关于日志的,最近一直都在看关于日志模块的东西,百度了很多文章,可惜都是看的让人一头雾水,最后运气不错,找到一篇很详细的文章。 : 第一种方式是使用logging提供的模块级别的函数 第二种方式是使用Logging日志系统的四大组件 logging模块定义的模块级别函数 函数 说明 logging.debug(msg, *args 提供了更细粒度的控制工具来决定输出哪条日志记录,丢弃哪条日志记录 格式器 Formatter 决定日志记录的最终输出格式 logging模块提供的模块级别的那些函数实际上也是通过这几个组件的相关实现类来记录日志的 ,并且报错信息单独存放,这需要不同的handler 3.info和error需要不同的日志格式 ?

    92110发布于 2019-10-24
  • 来自专栏程序员同行者

    python3模块: uuid

    3). uuid3()---基于名字和MD5散列值   通过计算名字和命名空间的MD5散列值得到,保证了同一命名空间中不同名字的唯一性,和不同命名空间的唯一性, 但同一命名空间的名字生成相同的uuid (5). uuid5()---基于名字的SHA-1散列值   算法和uuid3()相同,不同的是使用Secure Hash Algorithm 1 算法。 Python中没有基于DCE的,所以uuid2可以忽略 uuid4存在概率性重复,由无映射性,最好不用 如果在global的分布式计算环境下,最好用uuid1 若有名字的唯一性要求,最好使用uuid3或 使用 import uuid # uuid1() >>> print(uuid.uuid1()) 2cf0fa7e-48d9-11e6-93fb-c03fd53413ef # uuid3() >>> print(uuid.uuid3(uuid.NAMESPACE_DNS, 'test')) 45a113ac-c7f2-30b0-90a5-a399ab912716 # uuid4() >>> print

    1.8K20发布于 2018-06-22
领券