博客写作背景----项目中解决的问题
最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
编程知识点–算法函数–做题思路
LabVIEW对一些成熟的算法已经编写出了相应的函数,在相关VI的编写中可以直接使用。这些函数都位于函数选板上,具体又分别位于“数学”“信号处理”和Express三个子选板上,如图所示。
在“数学”子选板中,提供了“拟合”“内插与外推”和“积分与微分”等函数,这些函数最基本,它们的输入和输出一般多为数组。“信号处理”子选板又分为“波形生成”“波形测量”和“滤波器”等子选板,利用这些函数,可以直接生成波形,或者对波形进行分析及处理。选中这些函数,将其拖曳到程序框图面板上,双击其图标,会一层层地看到其内部实现的具体算法。在Express子选板上,再进入其“信号分析”子选板去,其中提供的Express VI的输入和输出一般多为DDT数据类型。对于这些函数的使用,LabVIEW的帮助中提供了丰富的范例,具体使用时,可以找到相应的范例进行学习。
信号处理与分析的算法很多,在设计测试系统时,需要根据系统的功能要求和所处理信号的实际情况选择合适的分析与处理方法方法。常用的信号分析与处理方法有:
(1)时域分析
通过时域分析可以得到信号在时域的各种特征量,如测量波形的幅度信息(峰值、均值、有效值)和时间信息(周期、频率等),主要的时域分析方法有相关性分析、卷积处理以及对信号的其他一些处理。
(2)频域分析
测量时直接采集到的信号是时域波形,由于时域分析的局限性,所以往往把问题转换到频域来处理。通过频域分析可以得到信号在频域的各种特征量及信号的频率组成信息。最主要的频域分析方法就是快速傅立叶变换及其反变换。
(3)加窗处理
LabVIEW中提供了多种窗处理函数,如汉宁窗(Hanning)、海明窗(Hamming)、布拉克曼窗(Blackman)及凯赛窗(Kaiser)等。
(4)滤波处理
使用滤波器对信号进行滤波,可以得到想要的频率分量。滤波器分为模拟滤波器和数字滤波器,可以用软件实现的只有数字滤波器。
(5)信号仿真
当没有信号输入时,可以用数字函数通过计算得到数据,用来模拟实际信号的离散值,称为仿真信号。仿真信号可用于检验后续的信号分析是否正确,这种方法称之为信号仿真。
在测试系统设计和软件开发过程中,数学分析与信号处理是两个不可缺少的重要内容。系统采集到的测量信号与数据必须经过一定的数学分析和处理,才能给出人们需要的信号和结果,数学分析与信号处理已经形成了标准的算法程序。