智能化测控技术课程设计
第二章
基于Labview虚拟滤波器的设计
2.1
labview简介
LabVIEW
是NI(National
INSTRUMENT,美国国家仪器)公司推出的一种基于G
语言的虚拟仪器(virtual
INSTRUMENT,VI)开发工具。LabVIEW
编程使用图形化语言,它是非计算机专业人员使用的工具,它为设计者提供了一个便捷、轻松的设计环境,因此,LabVIEW
在世界范围内的众多领域如航空、航天、通信、电力、汽车、化学等领域得到广泛应用。
LabVIEW
有两个基本窗口:前面板窗口和流程图窗口。编译环境下显示两个窗口,前面板用于放置控制对象和显示对象,控制对象相当于常规仪器的控制和调节按钮;前面板用于显示程序运行结果,相当于常规仪器的显示屏幕或指针。流程图窗口用于编写和显示程序的图形源代码,它相当于语言编程中一行行的语句,它由各种能完成一定功能的模块通过连线连接而成。当编写的LabVIEW
程序调试无误后,可将程序编译成应用程序。此时,设计的虚拟仪器可以脱离LabVIEW
开发环境,用户只需通过前面板进行控制和观测。
2.2
基于labview的数字滤波器设计
数字滤波器的传统设计过程可归纳为以下三个步骤:
(1)按照实际需要确定滤波器的性能要求。
(2)用一个因果稳定的系统函数(即传递函数)去逼近这个性能要求。此函数可以分为两类:即IIR
传递函数和FIR
传递函数。
(3)用一个有限精度的运算去实现这个传递函数。
FIR
滤波器设计实质是确定能满足要求的转移序列或脉冲响应的常数,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。目前,FIR
滤波器设计没有封闭的设计公式。虽然窗函数法对窗口函数可给出计算公式,但计算通带与阻带衰减仍无计算公式。FIR
滤波器的设计只有计算程序可循,因此对计算工具要求较高,不用计算机编程一般很难实现。
IIR
滤波器的设计源于模拟滤波器设计,它通过对低通滤波器进行模拟频率变换得到。常用的IIR
滤波器有巴特沃斯滤波器、切比雪夫滤波器、切比雪夫Ⅱ滤波器、椭圆滤波器和贝塞尔滤波器。目前,IIR
滤波器的设计可以借助模拟滤波器的成果,有封闭形式的设计公式,对计算工具的要求不高。
IIR
滤波器的设计虽然简单,但脱离不了模拟滤波器的设计模式,主要用于设计低通、高通、带通及带阻滤波器。而FIR
滤波器的设计要灵活得多,尤其是频率采样设计法更易适应各种幅度特性和相位特性的要求。
电力系统滤波器可以从电力信号中将所需频段的信号提取出来并将干扰信号滤除或大大衰减。利用LabVIEW
可以设计出满足电力系统需要的滤波器,利用LabVIEW
设计的IIR
数字滤波器前面板,前面板上有参数设置、波形显示两个区域。在参数设置区域有六个设置项:滤波器选择、滤波器类型、下截止频率、上截止频率、采样频率、阶次、纹波、衰减;选择的滤波器不同时,需要设置的项也不同。波形显示区域用于显示滤波前后的波形,在此区域可直观地看出滤波效果。
利用LabVIEW
实现的数字滤波,采用了图形语言编程,与采用文本语言编程相比,能缩短40%~70%的开发时间;与硬件仪器相比,又具有容易调整滤波器类型、降低成本、滤波效果直观等优点。基于LabVIEW
编写的程序还可以将其作为子程序在其他虚拟仪器系统中调用,大大增强了程序的通用性。
2.3
数字滤波器的选择步骤
LabVIEW
为设计者提供了FIR
和IIR
滤波器VI,使用起来非常方便,只需要输入相应的指标参数即可,不需要进行复杂的函数设计和大量的运算。滤波器VI
位于LabVIEW
流程图面Function>>Analyze>>SignalProcessing>>Filters
上。不同滤波器VI
滤波时均有各自的特点,因此它们用途各异。在利用LabVIEW
实现滤波功能时,选择合适的滤波器是关键,在选择滤波器时,可参照不同滤波器的特点,考虑滤波的实际要求来选择合适的滤波器。各种滤波器的特点及选择滤波器的步骤见下图。
图2-1
数字滤波器选择步骤
第三章
软件设计
3.1前面板的设计
在Labview环境下开发的应用程序称为VI(Virtual
Instrument)。VI是Labview的核心,有一个人机交互的界面——前面板,和相当于源代码功能的菜单框图程序——后面板组成,前面板是程序的界面,在这一界面上有控制量和显示量两类对象。在前面板中,控制量模拟了仪器的输入装置并把数据提供给VI的框图程序,例如开关、旋钮等,而显示量则是模拟了仪器的输入装置并显示由框图程序获得或产生的数据,例如用于显示波形的窗口等。后面板又称为代码窗口或流程图,是VI图形化的源程序,在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出等功能,流程图中包括前面板上没有但编程必须有的对象,如函数、结构和连线等[2]。
前面板如图3-1所示,由以下几个部分组成:参考信号的参数设置、待处理信号的参数设置、滤波结果的实时显示以及原始信号的波形图和滤波结果的波形图,可以设置参考信号的幅值和频率,也可以对3路正弦信号设置频率幅值和相位,程序成功运行后就可以从滤波实时显示区得到滤波结果的频率幅值和初相位,同时在波形显示区中也可以得到相应的波形,使结果更为直观地反映出来。
数字滤波器的前面板如下图所示。前面板用于设置输入数值和观察输出量,用于模拟真实滤波器的前面板。由于虚拟面板直接面向用户,是虚拟滤波器控制软件的核心。在设计这部分时,主要考虑界面美观、操作简洁,用户能通过面板上的各种按钮、开关等控键来控制虚拟滤波器的工作。实际中的待测信号可以由
数据采集卡实时采集滤波,也可以由数据采集卡采集后保存为LabVIEW所能够识别的文件形式,之后再由LabVIEW进行分析滤波。在这里用基本的信号(正弦波,余弦波,方波,锯齿波)来模拟原始信号。程序采用窗函数法的计算流程,将窗函数与需要滤波的信号进行卷积实现信号的滤波。使用者可对原始信号,噪声信号和滤波器参数进行设置。原始信号的波形图,滤波的结果都可得到实时显示。这样,在程序成功的运行后就可以从显示区得到结果,使结果更为直观的反映出来。
图3-1
前面板的设计
3.2
流程图的设计
本数字滤波器的后面板即程序代码框图如图3-2所示。框图程序是由节点、端点、图框和连线四种元素构成的。节点类似于文本语言程序的语句、函数或者
子程序。框图中的每一个对象端点与前面板上的对象(控制或显示)一一对应。不同的线型代表不同的数据类型,在彩显上,每种数据类型还以不同的颜色予以强调。后面板如图3-2所示,后面板中的控件与前面板中的控件相对应,并且通过连线、添加程序以及加入各种信号等措施进行编程,实现自相关滤波的功能,同时通过在前面板设置各种不同的参数,成功地运行程序,实现所要求的目标,为了实现这一功能,笔者又添加了激励信号源、滤波器加法器和乘法器等各种运算器,经过运行程序,测试结果显示能够实现从一个包含多种频率成分的信号中提取出所需单一频率信号的功能,相当于实现了滤波,由于这种滤波的思路是从相关函数的定义出发的,因此成为相关滤波器。
在这里,用仿真信号发生器来模拟待测的信号,在实际中这个待测信号通常由数据采集卡采集得到,输入的待测信号为3路正弦信号的叠加,需要从中检测出20Hz的信号,这个测试VI实现了相关滤波过程的动态显示,使用了循环结构。
图3-2
滤波器的后面板
附录
图1
数字滤波器的输入输出信号波形