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的设置会影响滤波前后信号的时延,我们可以简单看一下影响:


