LabVIEW连续采样与有限采样模式

简介: LabVIEW连续采样与有限采样模式

LabVIEW连续采样与有限采样模式


连续采样、N采样、或者其他采样模式的时候,各自都有什么样的含义?


每一种情况都需要一种合适的采样定时模式,而每一种采样定时都使得特定的DAQ编程流程更有意义。在开始之前,有必要介绍一下将测量转变成您计算机中的数字的两个步骤。


第一步是由DAQ硬件决定的。这一步是将输入的电压值实际转化为RAM缓冲区中比特的过程。这是由硬件中的模数转换器(ADC)实现的。


第二步是将缓冲区的比特读取出来的过程。这些比特在大多数情况下是按照浮点数的格式读取出来的,而这都是由计算机中的CPU和CPU中的程序实现的。


这两步发生的频率是连续采样和有限点采样的主要区别。


连续采样意味着DAQ硬件连续地按照采样时钟设定的速率,将输入的电压转化为缓冲区的比特。如果担心计算机或程序的延迟会导致漏掉采样的点,那么连续采样将会是一种好的选择。DAQ硬件采样的速度总是由采样时钟设置决定的,而这一部分的采集是完全由硬件实现的。硬件的采样是非常快速并且稳定的,同时软件的读取是异步的,并且是以一个不定的速率进行的。为了解决这个冲突,DAQ板卡采用了缓冲区的结构。


对于连续采样任务,当“开始任务”vi运行的时候,采集就开始了。由于它需要一定的开支以及与CPU的交互,这个vi只能允许防止在While循环的前面。之后,在一个循环内,DAQmx开始实际地读取缓冲区。因此解释了为什么一次要读很多的点,因为如果一次读得太少,就会引起缓冲区的溢出。DAQ驱动仅允许在一个连续采样中读取两个或更多的采样。如果发现每次只需要一个采样,那么就应该考虑一下重新设计程序或者采样模式了。如果设定的读取点数(每通道采样数)超过了缓冲区已经准备好的数据,那么DAQmx读取vi就会一直等待采样点数充足之后才结束。这会表现为图形刷新过程中会有一定的延迟,但是并不意味着有采样点被遗漏了。采样点数设置为-1,则会在每次读取尽可能多的采样点。


N采样(也叫有限点采样)用在已知需要的总共采样点数情况下的采集任务,尤其是用在带触发的采样任务中。例如,可能需要在某个触发信号开始之后采集10秒钟长度的数据,就可以使用有限点采样。有限点的模式仅仅缓冲调用“开始任务”这个VI的时候。DAQmx函数将从缓冲区中将这些数据读取出来,因此需要设定采样的数目N。这种任务与While循环或者状态机是相互匹配的。


但是和连续采样不同,必须在每个循环中调用“开始任务”,然后进行“读取”,接下来“停止任务”。否则,否则DAQ驱动会继续尝试读取数据的,尽管采样需求已经结束了,这样就会得到错误。需要注意的是,每次采样之间的时间间隔是受软件定时的。如果需要精确控制时序的问题,建议使用连续采样。


通过硬件定时或者软件定时进行单采样和之前讲到的N采样是一致的。如果需要对每次来的数据进行处理或者反应,并且并不十分关心精准的计时,那么这种采样方式是比较值得推荐的。比如,有个电池正在缓慢地放电,整个过程耗时几分钟或几个小时。在此的过程中,每次电压低于某个设定的数值,就发送一封邮件给控制人员。这种情况就适合使用单采样。通常情况下,采样在“开始任务”被调用的时候开始。如果是硬件定时的,需要考虑一下硬件同步问题。采样点会在“开始任务”VI被调用后的下一个采样时钟被采集。


选择合适的采样方式,进行正确的编程,就会编写出最有效的程序,也会避免错误信息的出现。


db3f6b66566dd5a8c18003fb770fbfcc.png

编辑

添加图片注释,不超过 140 字(可选)

LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序

上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们。

相关文章
|
5月前
|
机器学习/深度学习 编解码 PyTorch
【YOLOv8改进】HWD: Haar小波降采样,用于语义分割的降采样模块,减少特征图的空间分辨率
YOLOv8专栏探讨了卷积网络的改进,特别是提出了一种名为HWD的基于Haar小波的下采样模块,用于语义分割,旨在保留更多空间信息。HWD结合了无损编码和特征表示学习,提高了模型性能并减少了信息不确定性。新度量标准FEI量化了下采样的信息保留能力。论文和代码可在提供的链接中找到。核心代码展示了如何在PyTorch中实现HWD模块。
配电网三相不平衡潮流计算【隐式Zbus高斯法】【可设定变压器数量、位置、绕组方式】
配电网三相不平衡潮流计算【隐式Zbus高斯法】【可设定变压器数量、位置、绕组方式】
|
7月前
|
数据安全/隐私保护 Perl
批量计算地震波PGA/PGV/PGD、PSA/PSV/PSD、特征周期、卓越频率、Arias强度、特征强度、能量密度、Housner强度等30+参数
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
编解码 算法 数据可视化
【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)
【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)
115 0
|
7月前
|
机器学习/深度学习 编解码 自然语言处理
LRP-QViT完美而来 | 输出层分配相关性+剪切通道让Swin Transformer量化后居然涨1.5个点
LRP-QViT完美而来 | 输出层分配相关性+剪切通道让Swin Transformer量化后居然涨1.5个点
303 0
|
7月前
|
机器学习/深度学习 传感器 编解码
快7倍 | SpirDet基于降采样正交重参化+稀疏解码器有效减少延迟,同时提升小目标检测精度
快7倍 | SpirDet基于降采样正交重参化+稀疏解码器有效减少延迟,同时提升小目标检测精度
125 0
|
机器学习/深度学习 传感器 算法
【视频处理】通过调用图像来重建新影片及计算颜色通道的平均灰度值,并检测帧与前一帧之间的差异(Matlab代码实现)
【视频处理】通过调用图像来重建新影片及计算颜色通道的平均灰度值,并检测帧与前一帧之间的差异(Matlab代码实现)
C++-采样函数GridSampling(采样提速必备)
C++-采样函数GridSampling(采样提速必备)
150 0
|
传感器 数据采集 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
183 0
|
运维 算法
【信号变化检测】使用新颖的短时间条件局部峰值速率特征进行信号变化/事件/异常检测(Matlab代码实现)
【信号变化检测】使用新颖的短时间条件局部峰值速率特征进行信号变化/事件/异常检测(Matlab代码实现)