Labview是美国国家仪器公司推出一种基于“图形”方式的集成化程序开发环境,是目前国际上唯一的编译型图形化编程语言,在以PZ机为基础的测量和工控软件中,Labview的市场普及率仅次于C++/C语言,Labview开发环境具有一系列优点,从流程图式的编程,不需要预先编译就存在语法检测和调试过程使用的数据指针,到其丰富的函数、数值、信号处理和设备驱动等功能,应用Labview进行滤波器设计,效率高,操作简单,并能对误差精度进行实时调整,把传统仪器利用Labview用软件的方法来实现,开发周期短,易于维护和升级,可以设计出传统仪器所不能比拟的虚拟仪器,“软件就是仪器”——这就是虚拟仪器技术的精髓。
2 虚拟相关滤波器的设计
2.1 前面板的设计
在Labview环境下开发的应用程序称为VI(Virtual Instrument)。VI是Labview的核心,有一个人机交互的界面——前面板,和相当于源代码功能的菜单框图程序——后面板组成,前面板是程序的界面,在这一界面上有控制量和显示量两类对象。在前面板中,控制量模拟了仪器的输入装置并把数据提供给VI的框图程序,例如开关、旋钮等,而显示量则是模拟了仪器的输入装置并显示由框图程序获得或产生的数据,例如用于显示波形的窗口等。后面板又称为代码窗口或流程图,是VI图形化的源程序,在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出等功能,流程图中包括前面板上没有但编程必须有的对象,如函数、结构和连线等[2]。
前面板如图2所示,由以下几个部分组成:参考信号的参数设置、待处理信号的参数设置、滤波结果的实时显示以及原始信号的波形图和滤波结果的波形图,可以设置参考信号的幅值和频率,也可以对3路正弦信号设置频率幅值和相位,程序成功运行后就可以从滤波实时显示区得到滤波结果的频率幅值和初相位,同时在波形显示区中也可以得到相应的波形,使结果更为直观地反映出来。
2.2 后面板的设计
后面板如图3所示,后面板中的控件与前面板中的控件相对应,并且通过连线、添加程序以及加入各种信号等措施进行编程,实现自相关滤波的功能,同时通过在前面板设置各种不同的参数,成功地运行程序,实现所要求的目标,为了实现这一功能,笔者又添加了激励信号源、滤波器加法器和乘法器等各种运算器,经过运行程序,测试结果显示能够实现从一个包含多种频率成分的信号中提取出所需单一频率信号的功能,相当于实现了滤波,由于这种滤波的思路是从相关函数的定义出发的,因此成为相关滤波器。
在这里,笔者用仿真信号发生器来模拟待测的信号,在实际中这个待测信号通常由数据采集卡采集得到,输入的待测信号为3路正弦信号的叠加,需要从中检测出20Hz的信号,这个测试VI实现了相关滤波过程的动态显示,使用了循环结构。
3 改进后的滤波器设计
上述实现相关滤波的基础上,还可以进一步改进,使程序更加简单,改进后的前面板如图4所示,将多路信号集于一个图中显示,更加直观,同时增加了粗调和细调旋钮,显得更加精确。改进后的前面板结构更加紧凑,设计也更加合理。
改进后的后面板如图5所示,可以看到,滤波器用一个信号平均值测量VI代替了原来的滤波器VI,这是因为相关滤波中,滤波器的作用实际上就是求取测试信号的直流分量,因此这样同样可以实现相关滤波,利用相关函数,可以识别并提取混淆在噪声中的信号,即进行相关滤波。
在数字技术迅速发展以后,相关滤波经常利用A/D板对信号采样后在计算机中实现,成为数字滤波的一种形式,而在Labview中实现相关滤波的方法,也是相关分析测试技术中的一个典型应用。
4 结束语
虚拟仪器已经为越来越多的人所使用和接受,因为虚拟仪器系统更快速简捷和方便,也可以节省硬件资源。通过虚拟滤波器设计,可对虚拟仪器有更深的理解和领悟,也为以后进行更进一步的研究提供了基础。