博客写作背景----项目中解决的问题
最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
编程知识点–信号运算例子笔记
验证卷积结合律实例
离散时间序列信号的卷积运算在求解系统响应时经常需要用到,手工计算比较复杂,容易出错,而LabVIEW中提供的卷积VI(Convolution.vi)就能够直接对两个输入序列信号进行卷积运算,并返回输出结果序列,非常方便。
卷积VI是一个多态型VI,它能够进行一维或二维的实卷积或复卷积,因此就有四种不同的形式,以最常用到的一维实卷积为例,其连线板如图
VI输入参数中的X和Y是两个待卷积的实序列,参数“算法”用于指定卷积算法,指定为direct时使用直接的线性卷积方法,指定为frequency domain时使用基于FFT的频域算法,当序列长度较小时使用前者更快一些,当序列长度较大时则使用后者更快一些,其他情况下相差不多,默认值为使用后者。
输出参数X*Y即为卷积结果。
相反,反卷积VI(Deconvolution.vi)可以提供卷积的逆运算——反卷积,其连线板如图
该VI的输入参数X*Y为卷积结果,Y为其中的一个被卷积序列,输出参数X为求出的另一个被卷积序列
下面以卷积结合律的验证为例,介绍LabVIEW在卷积中的应用。卷积结合律是指信号x(n)、h1(n)、h2(n)在连续进行卷积运算时可以按顺序先进行前两者或后两者的卷积运算,再与第三者卷积,其结果相等,即:
[x(n)*h1(n)]h2(n)=x(n)[h1(n)*h2(n)]
新建名为“验证卷积结合律.vi”的VI,在框图中放入Chirp信号VI(Chirp Pattern.vi)、方波VI(Square Wave.vi)、斜坡信号VI(Ramp Pattern.vi),分别用于生成三个离散时间序列信号:x(n)为线性调频信号,h1(n)为方波信号,h2(n)为斜坡信号。
添加若干卷积VI,将这三个序列信号按验证式两侧的运算顺序分别进行卷积后,将得到的结果显示在两个波形图中,程序前面板和框图如图