手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

LabVIEW中逐点(实时)滤波,每次运行数值不一样

时间:2024-10-22 10:58:28

在LabVIEW中经常使用实时滤波(逐点滤波),输入参数都不变的情况下,如果被单次调用,每次运行的结果都会是一样的;如果被放在一个for循环或者while循环中使用,则每次运行的结果是不一样的。

工具/原料

LabVIEW

原因分析

1、进入到labview中的逐点滤波程序框图中,可以看到,在底层其实有一个首次调用的判断,如果是首次调用则会初始化滤波参数,进行一次全新的滤波,如果不是首次调用,则会续用前一次滤波的参数和结果,进而实现逐点实时滤波。

LabVIEW中逐点(实时)滤波,每次运行数值不一样
LabVIEW中逐点(实时)滤波,每次运行数值不一样

2、因此,当把逐点滤波放在循环中的时候,内存中一直存在的,除了循环的第一次外,其它次循环中,该逐点滤波都是被判断为非首次调用,因为即便输入参数不发生改变,逐点滤波也会把每一次的输入参数作为新来的数值进行计算,因此就会发生,每次循环中滤波出来的数值是不一样的,而且随着循环次数的增加,输出会慢慢逼近输入,最终会跟输入一致,就相当于是一直采集到的新的数值,但是数值的大小没有发生过改变,类似于一条直线进来后进行滤波。

LabVIEW中逐点(实时)滤波,每次运行数值不一样
LabVIEW中逐点(实时)滤波,每次运行数值不一样

3、此外,如果把该逐点滤波封装成dll,该dll也存在这种情况,因为dll一旦加载,就一直存在于内存中,即除首次外,其余时间均为非首次调用。

LabVIEW中逐点(实时)滤波,每次运行数值不一样
© 手抄报圈