最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
编程知识点–信号时域分析–做题思路
信号时域分析是指在时间域上对信号的时域参数进行测量和计算,从而提取出有助于研究和分析的信号时域特性。时域分析往往是对原始信号进行分析的第一个步骤,信号的时域特性往往也是使用其他方法进行分析的重要参考和基础。
LabVIEW中对信号的时域分析相关VI主要分布在两个VI库下。
(1)波形测量:提供对波形类型信号数据的分析,如图1所示。其中,前六个VI为时域分析VI,它们的名称和功能如表1所示。
(2)信号运算:提供对数组类型信号数据的分析,如图5-13所示。其中,部分VI为时域分析VI,其名称和功能如表2所示。
上述VI提供了非常丰富的信号时域分析功能,使得用户能够通过编写LabVIEW程序轻松获得常用的信号时域处理方法,下面举几例进行说明。
直流分量与均方根值的测量实例
对于信号处理中常用到的直流分量与均方根值的测量,可以使用基本平均直流-均方根VI(Basic Averaged DC-RMS.vi)或平均直流-均方根VI(Averaged DC-RMS.vi)来实现。
以基本平均直流-均方根VI为例,它的连线板如图3所示。
该VI将输入的时域信号先加窗,然后对加窗后的信号按指定的平均类型计算信号的直流分量与均方根值。该VI是一个多态型VI,输入的信号可以为一个通道的信号,也可以是以数组形式输入的多个通道的信号。该VI主要输入和输出参数的含义为:
● 重置:输入参数,指定是否重置信号的历史数据;
● 信号输入:输入参数,即待测量的信号,为波形类型或者波形类型的数组;
● 平均类型:输入参数,设定所生成信号的类型,可指定为线性型或者指数型;
● 窗:输入参数,设定信号的加窗类型,可指定为矩形窗(相当于不加窗)、Hanning窗或者Low side lobe窗;
● 直流值:输出参数,计算得到的信号直流分量;
● 均方根值:输出参数,计算得到的信号均方根值;
● 测量信息:输出参数,测量信息,主要包括计算过程中产生的一些警告信息等。
在LabVIEW中实现直流分量与均方根值的测量,具体步骤如下。 新建“直流分量与均方根值的测量.vi”,添加一个while循环结构,以便连续地生成和观察信号波形。
在while循环中放入混合单频与噪声波形VI(Tones and Noise Waveform.vi),以生成两个不同频率的正弦波的叠加信号,并混有白噪声信号。 添加“Basic Averaged DC-RMS.vi”,并为“窗”和“平均类型”输入参数添加相应的控件,将它的“直流值”和“均方根值”输出参数捆绑后连接到一个波形图表进行实时显示。
编写好的程序前面板和框图如图所示。运行程序后,指定参数为使用Hanning窗和指数类型平均方法,通过前面板上的波形图表就可以观察到实时测量出的信号的直流分量和均方根。