【NI-DAQmx入门】外部采样时钟相关
1.时钟的作用
时钟在几乎所有测量系统中都起着至关重要的作用。通过硬件定时测量,时钟控制采样或更新的发生时间。与依赖软件计时测量相比,您可以选择硬件定时测量来实现采样或更新之间更一致的时间间隔。以数模转换器特性分析为例。该应用由三个基本部分组成:数模转换器 (DAC) 的数字数据激励、时钟信号以及用于采集 DAC 生成的模拟波形的数字化仪。DAC 在时钟信号的每个上升沿输入一个新的 n 位字,以生成模拟波形中的一个点。如果 DAC 的时钟信号存在误差,则 DAC 生成的模拟信号会反映该误差。

2.时钟误差的组成部分
时钟通常由晶体振荡器生成,并且没有振荡器完美地生成指定的频率。时钟误差由三个主要部分组成:精度、稳定性和抖动。时钟精度描述了实际频率与指定频率的匹配程度。时钟精度可能会受到振荡器晶体的质量以及振荡器的组装方式等因素的影响。时钟稳定性描述了振荡器频率抵抗波动的能力。影响稳定性的主要因素是温度变化,尽管随着时间的推移而老化、电源电压、冲击、振动以及时钟必须驱动的电容负载都会影响时钟稳定性。抖动是指时钟周期从一个边沿到下一个边沿的微小变化,测量设备上的每个附加硬件组件都会增加抖动。

在每个图中,虚线表示指定的所需频率,实线表示振荡器生成的实际频率。左上图显示了一个不准确且不稳定的时钟;实际频率并不以所需频率为中心,而是随时间变化。右上图显示了一个准确但不稳定的时钟;实际频率以指定频率为中心,但仍随时间变化。相反,左下图显示了一个不准确但稳定的时钟;实际频率并不以所需频率为中心,但振荡器的输出频率不会随时间变化。完美的振荡器会产生如右下图中所示的频率,其中时钟对于所需频率是准确的,并且不随时间变化。
实际上,如果放大每个图表,您会看到从一个样本到下一个样本的输出频率的微小变化。振荡器产生的实际频率中的这种明显噪声将代表时钟抖动。
3.时钟误差的影响
假设 DAC 产生特定频率的正弦波。有了完美的更新时钟,频域结果将是基频的单个脉冲。如果更新时钟不准确,则 DAC 的实际频率输出就会偏离所需频率。如果更新时钟准确但包含抖动,则 DAC 的输出包含除所需基频之外的多个频率分量。为了说明稳定性的影响,您需要检查频域随时间的变化,并了解 DAC 的频率输出如何随时间变化。

4.那种情况会用到外部时钟?
在一些应用中,用外部的时钟源替换DAQ设备的时基是必要的。这样做的原因可能是由于
- 应用需要一个比内部时钟更加稳定的时基
- 需要极其精确时基的应用将受益于基于铷或恒温晶体振荡器 (OCXO) 的频率源的使用。这些设备的精度可以优于±100 ppb。例如,精度为 ±100 ppb 的 OCXO 源可产生不确定度为 ±1 Hz 的 10 MHz 时钟。
- 以输入信号的速率捕获数据
- 如果要对非N分频采样率的信号进行采样,这时候需要用到采样时钟。通常用户需要配置一个TTL脉冲序列,由该序列充当外部采样时钟,该信号的每个买车呢用于同时采样所有通道的数据。
- 为了在同样的电脑或者机箱中将设备和其他的设备同步。
- 外部时钟提供了一种通过将公共时钟分配给多个设备来将高速数字化仪与测量系统中的其他设备同步的方法。此外,外部时钟可以在多个 PXI 机箱之间提供一致的时基。
每个NI板卡都有一个实时系统集成(RTSI)连接器来将板卡的时基用外部时钟源替换。有一个特定的被保留的RTSI引脚“RTSI 时钟”来引入这个时钟。RTSI时钟是唯一的可以驱动内部时基的引脚。没有其他的RTSI引脚或者PFI引脚可以实现这个功能。可以通过LabVIEW中的 Route Signal VI或者使用NI-DAQ API时的Select_Signal功能来实现这个配置。
5.使用外部采样时钟时为什么要指定采样率?
NI-DAQmx需要使用您输入的采样率来计算您数据采集操作过程中所需使用的缓存大小。如果您想要指定某一特定的缓存大小,使用DAQmx中的Configure Input Buffer VI或者DAQmx中的Configure Output Buffer VI来实现。
6.频率误差和频率精度的关系?
频率精度(或称为定时精度)通常以采样率的百万分率(ppm)给出。此值取决于您使用的设备,可以在设备的规格手册中找到。除了频率精度(f a )之外,还可以使用下面的算式计算频率误差(f e ):
测量频率(f m )=信号频率(f s )±频率误差(f e )。
![]()
重新排列上述等式以计算频率误差:
频率误差(f e )=信号频率(f s )*频率精度(f a )。

例:
若使用频率精度为25 ppm的设备测量精确的100kHz正弦波,则频率误差为100,000Hz * 25 / 1,000,000 = 2.5Hz。因此,频率精度为100kHz±2.5Hz。
若使用频率精度为50 ppm的设备生成1kHz的正弦波。则频率误差为1,000Hz * 50 / 1,000,000 = 50mHz。因此,频率精度为1kHz±50mHz。
相关文章:
【NI-DAQmx入门】外部采样时钟相关
1.时钟的作用 时钟在几乎所有测量系统中都起着至关重要的作用。通过硬件定时测量,时钟控制采样或更新的发生时间。与依赖软件计时测量相比,您可以选择硬件定时测量来实现采样或更新之间更一致的时间间隔。以数模转换器特性分析为例。该应用由三个基本部分…...
Amazon EC2 Hpc7g 实例现已在更多区域推出
即日起,Amazon Elastic Compute Cloud (Amazon EC2) Hpc7g 实例将在亚太地区(东京)、欧洲地区(爱尔兰)和 Amazon GovCloud(美国西部)区域推出。Amazon EC2 Hpc7g 实例由 Amazon Graviton 处理器…...
【开题报告】基于SpringBoot的药店药品管理系统的设计与实现
1.研究背景 随着人们对健康的日益关注和医疗技术的不断进步,药店在人们生活中的重要性越来越凸显。药店承担着提供药品和健康咨询等服务的角色,而药品管理是药店运营的核心内容之一。传统的药店药品管理往往依赖人工操作,存在着信息不透明、…...
Promise用法详解
文章目录 一、异步代码的困境1.异步任务的处理 二、认识Promise作用1.什么是Promise呢?2.Promise的代码结构 三、Promise状态变化1.Executor2.resolve不同值的区别3.then方法 – 接受两个参数4.then方法 – 多次调用5.then方法 – 返回值6.catch方法 – 多次调用7.c…...
7.spark sql编程
概述 spark 版本为 3.2.4,注意 RDD 转 DataFrame 的代码出现的问题及解决方案 本文目标如下: RDD ,Datasets,DataFrames 之间的区别入门 SparkSession创建 DataFramesDataFrame 操作编程方式运行 sql 查询创建 DatasetsDataFrames 与 RDDs 互相转换 使用…...
【2023】COMAP美赛数模中的大型语言模型LLM和生成式人工智能工具的使用
COMAP比赛中的大型语言模型和生成式人工智能工具的使用 写在最前面GitHub Copilot工具 说明局限性 团队指南引文和引用说明人工智能使用报告 英文原版 Use of Large Language Models and Generative AI Tools in COMAP ContestslimitationsGuidance for teamsCitation and Refe…...
数据结构-顺序表学习资料
什么是顺序表? 顺序表是一种线性数据结构,它按照元素在内存中的物理顺序存储数据。顺序表可以通过数组实现,也可以通过链表和动态数组实现。 顺序表的特点 元素连续存储:顺序表中的元素在内存中是连续存储的,这样可…...
微信小程序获取剪切板的内容到输入框中
xml代码 <navigation-bar title"Weixin" back"{{false}}" color"black" background"#FFF"></navigation-bar> <view><input placeholder"请输入内容" name"content" type"text" …...
【年底不想背锅!网络工程师必收藏的排障命令大全】
网络故障排除工具是每个网络工程师的必需品。 为了提升我们的工作效率, 不浪费时间,工具的重要性显而易见 特别是每当添加新的设备或网络发生变更时,新的问题就会出现,而且很难快速确定问题出在哪里。每一位网络工程师或从事网…...
Windows服务器用PowerShell script判断服务器启动时间并做reboot动作
脚本如下,Windows 2019环境 60*119 是119分钟 $x(Get-Date) - (gcim Win32_OperatingSystem).LastBootUpTime echo $x.TotalSeconds " seconds passed" if($x.TotalSeconds -gt 60*119) {Invoke-Expression -Command "msg.exe * /TIME:20 reboot i…...
【HTML】播放器如何自动播放【已解决】
自动播放器策略 先了解浏览器的自动播放器策略 始终允许静音自动播放在以下情况,带声音的自动播放才会被允许 2.1 用户已经与当前域进行交互 2.2 在桌面上,用户的媒体参与指数阈值(MEI)已被越过,这意味着用户以前播放带有声音的视频。 2.3 …...
Go Gin中间件
Gin是一个用Go语言编写的Web框架,它提供了一种简单的方式来创建HTTP路由和处理HTTP请求。中间件是Gin框架中的一个重要概念,它可以用来处理HTTP请求和响应,或者在处理请求之前和之后执行一些操作。 以下是关于Gin中间件开发的一些基本信息&am…...
财务数字化转型的切入点是什么?_光点科技
随着科技的不断进步,数字化转型已经成为各个行业追求的目标,财务领域也不例外。那么,财务数字化转型的切入点在哪里呢?如何确保转型的成功进行? 数据整合与管理 财务数据的准确性与及时性是财务管理的基石。数字化转型…...
Langchain知识点(上)
输出格式 Pydantic (JSON) 解析器 # 创建模型实例 from langchain import OpenAI model OpenAI(model_nametext-davinci-003)# ------Part 2 # 创建一个空的DataFrame用于存储结果 import pandas as pd df pd.DataFrame(columns["flower_type", "price"…...
Tomcat安装配置教程
目录 1、安装tomcat1.1、查看JDK版本1.2、 匹配对应的JDK版本1.3、 下载Tomcat1.3.1、 安装包版(推荐,不用配环境)1.3.2、 压缩包版 2、 运行Tomcat3、 不能运行问题 1、安装tomcat 1.1、查看JDK版本 由于不同版本tomcat对于jdk的版本有要求…...
Python小试牛刀:GUI(图形界面)实现计算器UI界面(三)
上一篇:Python小试牛刀:GUI(图形界面)实现计算器UI界面(二)-CSDN博客 回顾前两篇文章,第一篇文章主要实现了计算器UI界面如何布局,以及简单概述Python常用的GUI库。第二篇文章主要实现了计算器UI界面按钮组…...
王道计算机网络
一、计算机网络概述 (一)计算机网络基本概念 计算机网络的定义、组成与功能 定义:以能够相互共享资源的方式互连起来的自治计算机系统的集合。 目的:资源共享, 组成单元:自治、互不影响的计算机 网络协议 从不同角度计算机网络…...
【漏洞复现】IIS_7.o7.5解析漏洞
感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证 1.5、修复建议 1.1、漏洞描述 漏洞原理: cgi.fix_path1 1.png/.php该…...
Java 高效生成按指定间隔连续递增的列表(int,double)
简介 Java 按照指定间隔生成连续递增的List 列表(引入Stream 类和流操作来提高效率): 1. 生成递增的List< Integer> Testpublic void test009(){int start 1;int interval 2;int count 10;List<Integer> list IntStream.ite…...
C++ reference
cppreference.com 《现代C语言核心特性解析》 这是一本 C 进阶图书,全书分为 42 章,深入探讨了从 C11 到 C20 引入的核心特性。 本书不仅通过大量的实例代码讲解特性的概念和语法,还从编译器的角度分析特性的实现原理,让读者…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
