算法分析之波形数据的产生方法(一)(图)

引发的问题

在LabVIEW中编写测试软件,尤其是在做算法分析的时候,肯定离不开测试数据,而测试数据的来源不外乎以下两个主要渠道:

1. 从硬件获取中获取

2. 从软件模拟中获得

但是,一般来说,对于整个系统的设计(如数据采集和分析系统),硬件部分的工作往往滞后于软件部分的工作,而软件部分却不能等到硬件平台完成。开始施工前调试。此时,用于预算法验证的数据源依赖于软件仿真。

在LabVIEW中,代表测试信号的数据类型分为三种:数组、波形数据和动态数据。针对不同的数据形式,LabVIEW中也有3个不同层次的信号发生器函数,如下图所示:

所有三个级别的功能都可以生成基本的测试信号,但它们的易用性和使用灵活性各不相同。其中Express VI仿真信号发生器生成动态数据类型的信号,这是最容易使用的,但有很多限制。比如有些参数不能在程序中动态设置;普通的信号发生器VI生成数组类型的信号,使用起来比较复杂。但更灵活,更接近C等其他编程方法;波形发生器VI生成波形数据,使用复杂度介于两者之间。

相对而言,波形数据是LabVIEW中最常用的方法之一。波形数据本质上是一个由时间起始值t0、dt值(两个采样点的时间间隔)和一维数组Y组成的簇(对应C语言中的一个结构),其物理意义即,对于一个模拟信号x(t),从t0时刻开始采样和A/D转换,采样率为fs,对应的采样时间间隔dt=1/fs,数组Y为每一时刻的采样值.

对于波形数据的生成,LabVIEW提供了非常方便的函数,位于函数面板的“信号处理”–>“波形生成”子面板中,如下图所示:

下面通过一个简单的例子演示LabVIEW中仿真波形数据的生成方法。

示例说明

本例需要设计一个简单的仿真多波形发生器,可以产生常见的波形数据,包括正弦波、三角波、方波和锯齿波等常见信号,并且可以叠加均匀的白噪声。在软件界面,可以设置信号类型、频率、幅度、偏移量、采样信息等常用参数。软件操作主界面如下图所示:

框图实现

本例的框图代码如下图所示:

程序代码比较简单,主框架采用while循环结构,每100ms刷新一次波形。主要调用“基本函数发生器”和“均匀白噪声波形”这两个函数信号发生器 函数发生器 区别,将这两个函数叠加实现该功能,前面板上的相应参数可以直接与函数中的相应参数相连。

其中,两个主要功能的参数说明如下图所示:

在这个例子中,前面板上只设置了几个主要参数,其他参数使用默认值。另外需要注意的是,两个函数的“采样信息”参数必须设置完全一致信号发生器 函数发生器 区别,才能保证信号叠加的正确性。

总结

下面介绍如何在LabVIEW中生成常用的波形测试数据。对于其他复杂的波形,甚至是自定义波形,LabVIEW也提供了相关函数,可以直接在程序中调用。您可以参考相关的帮助文档和参考示例。

如果本文对你有用,请关注+转发+收藏+点赞。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论