新功能上线!德思特为您详解AWG多音DDS模式!

2024-05-27 12:28

本文主要是介绍新功能上线!德思特为您详解AWG多音DDS模式!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、多音DDS模式

DDS(直接数字合成)是一种从单个固定频率参考时钟生成任意周期波的方法,广泛用于信号生成应用。 德思特AWG(任意波形发生器)上实现的DDS功能基于添加多个“DDS 核心”以生成多载波(多音调)信号的原理,每个载波都有自己明确定义的频率、幅度和相位。除了这些静态参数之外,还内置了频率和幅度斜率等动态参数,以允许多个内核进行固有的线性变化。

在最简单的情况下,用户将特定 DDS 内核的命令频率和幅度写入,然后AWG将连续输出单个周期性正弦波,直到用户向其写入更改。这些更改以命令的形式写入(有关可用命令的列表,请参见下部分),并添加到先进先出 (FIFO) 缓冲区。然后,这些命令按照写入的顺序执行。

下方示例显示了16个DDS内核的输出,这些内核的独立固定频率在50 MHz到125MHz之间,间隔为5MHz。

16个正弦波DDS核在频域的输出

二、可用的DDS命令

1、内置单行命令

● 设置DDS核心频率

● 设置DDS核心的幅度

● 设置DDS核心的相位

● DDS核心的启动线性频率斜率

● DDS核心的启动线性幅度斜率

● 设置数字输出

● 改变执行模式

● 设置输出定时器

2、有多个命令组成的高级命令

从PC到AWG卡的快速DMA控制命令每秒可发送数百万条DDS命令。这提供了广泛的灵活性,并允许执行以下功能:

● 由多个线性斜率命令组成的S形频率/幅度斜率

● 由多个线性斜率命令组成的自定义频率/幅度斜率

● 由多个幅度变化命令组成的AM调制

● 由多个频率变化命令组成的FM调制

● 由多个频率变化命令组成的FSK(频率移位键控)调制

什么是斜率(slope)?

斜率Slope指的是频率或幅度随时间变化的速率。在信号生成和调制技术中,斜率通常用来描述信号参数(如频率或幅度)的变化速度。例如,一个线性斜率表示频率或幅度以恒定的速率增加或减少。

3、示例(C++API)

以下示例生成一个110 MHz的信号,持续100毫秒,然后在接下来的100毫秒内从110 MHz线性递增到120 MHz,之后保持120 MHz直到停止。这里没有显示AWG的通用初始化和放大器设置:

三、FIFO命令

DDS功能通过写入驱动程序内部列表的命令来控制,当发送以下命令时:

SPCM_DDS_CMD_WRITE_TO_CARD

这些命令列表会被写入AWG卡中。这些命令列表被放入一个先进先出FIFO(命令队列)缓冲区,并一个接一个地执行。下方的命令队列土概览展示了如何使用命令来生成单个DDS核心的不同输出状态。命令队列中的命令从上到下执行。

设置首先被写入一组“影子寄存器”,这些寄存器是与活动DDS配置寄存器并行的一组独立寄存器。一个命令接一个命令地操作影子寄存器,直到接收到SPCM_DDS_CMD_EXEC_AT_TRIG命令,然后停止从FIFO写入影子寄存器,AWG开始等待下一个内部触发。接收到触发后,影子寄存器会被传输到活动寄存器中。

左侧显示发出的 DDS 命令,右侧显示带有时间信息的结果输出

四、定时和触发

DDS命令被写入AWG内部存储器,并可以通过三种不同的方式执行:

● 手动:使用单独的执行命令来执行队列中的命令,计时完全由软件完成。

● 触发:命令执行等待外部触发信号,这允许与外部实验控制紧密交互。

● 定时器:具有非常精细的时间分辨率的可编程定时器定义了命令执行时间。

在大多数情况下,将使用所有三种模式的组合,在命令序列之间混合这些模式没有任何问题。上面的例子展示了定时器的用法。

五、优势

DDS模式可用于任何需要纯正弦信号的应用场合。无需计算数千甚至数百万个样本并将其传输到AWG内存,只需几个简单的DDS命令即可完成这项工作。多音DDS模式在控制声光偏转器 (AOD) 和声光调制器 (AOM) 时特别有用,这些通常用于物理学,尤其是量子实验。使用具有频率斜率的多音正弦信号可以在量子实验中以简单的方式移动原子,这允许通过实验控制软件的一些命令来操作光镊。

具有多音DDS模式的AWG通过附加放大器驱动声光调制器来控制激光

这篇关于新功能上线!德思特为您详解AWG多音DDS模式!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007472

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚