Median Filtering in LabVIEW
Introduction
本博客参考LabVIEW的官方范例:Median Filtering.vi
搭建一个简单的中值滤波器。
该范例对含有高斯白噪声的脉冲波形进行中值滤波,并根据滤波后的波形重新计算脉冲波形的赋值、宽度、延迟等参数。总的来说,这个示例比较简单,但也有一些值得注意的地方,下面分别进行介绍。
Sub-VI
范例程序使用了一个模块脉冲参数(Pulse Parameters.vi)
:
但是,这个模块在函数选板中是搜索不到的,并且上图左下角的在线帮助按钮是灰色的。也就是说,这个模块实际上不是LabVIEW内置的函数,而是一个子VI。如果我们双击该子VI,并进入到其程序框图中,可以看到,这个子VI实际上也比较简单,就是调用了一个动态链接库:
下面就复现一下这个子VI。
首先Ctrl+N
创建一个空的VI,之后在程序框图中添加一个调用库函数节点
:
将范例中的库名/路径
中的内容复制到这里,然后就可以打开函数名
下拉菜单,选择PulseParameters
:
注:为了和范例保持一致,线程
选项这里在后面改为了在任意线程中运行
。
之后,在参数
选项卡中设置与范例中相同的内容,下面函数原型
部分也会随之改变:
点击确定后,该节点的外观变为:
然后根据范例进行连线:
最终,我们将这个子VI保存为pm.vi
。
在主VI中打开函数选板,点击选择VI
插入子VI:
但此时的子VI没有输入输出的接线端,需要在子VI中的右上角进行手动设置:
除此之外,我们还可以根据自己的喜好设计子VI的图标:
最后,在主VI中进行里进行连线即可:
Showing Multiple Legends in Waveform Graph
波形图中各个曲线的LineWidth、LineStyle、DisplayName等内容都可以在”属性->曲线”中进行设置:
而前面板中图例显示的数量则需要在”属性->外观”中进行更改:
Left and Right Rank Setting
中值滤波方法的left rank和right rank的设置会影响滤波前后信号的时延,我们可以简单看一下影响: