基于 LabVIEW 的IIR 数字滤波器的设计

时间:2009-11-27

  0 引言

  正常情况下,电力系统中三相电力是对称的,它们之间满足一定的幅值和相位条件;但当负载变化时,系统受到影响,波形会发生畸变。随着经济的发展,许多非线性电力负荷投入使用,使电网中谐波分量猛增,而电力系统微机保护和二次控制中,很多信号的处理与分析是基于基波和某些整次谐波的,因此,滤波器一直是电力系统二次装置中的关键部件。

  目前,微机保护和二次信号处理软件主要采用数字滤波器。传统的数字滤波器设计使用繁琐的公式计算,改变参数后需要重新计算,在设计滤波器尤其是高阶滤波器时工作量很大。利用LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器工作平台)使用G 语言(Graphics Language,图形化编程语言)编程,可以快速有效地实现数字滤波器的设计与仿真。由于G 语言编程具有诸多优点,因此基于LabVIEW 设计的数字滤波器具有高效、灵活、界面友好、集成性强、费用低、用户自定义功能强等诸多优点[1]。

  1. 数字滤波器及其传统设计方法

  1.1 数字滤波器概述

  滤波器是一种使有用频率信号通过同时抑制(或大为衰减)无用频率信号的装置。工程上常将它用于信号处理、数据传送和抑数字滤波器是数字信号分析中的重要组成部分,它的输入和输出信号都是离散的,与模拟滤波器相比,它具有准确度和稳定性高,系统函数容易改变,灵活性高等优点,因而数字滤波器在工程中得到了广泛的应用[2]。数字滤波器有多种分类,按频率特性分类可以分为:高通、低通、带通、带阻;按数字滤波器冲激响应的时域特征分类可以分为:有限冲激响应滤波器(finite impulse response, FIR)和无限冲激响应滤波器(infinite impulse response, IIR)。FIR 滤波器的冲击响应h(n) 是有限序列,IIR 滤波器的冲击响应h(n) 是无限序列的。

  数字滤波器的差分方程可以用下式表示:

  式中, x(n) 为输入序列, y(n) 为输出序列, k a 、k b 分别为输出、输入序列的系数。

  数字滤波器对应的传递函数为:

  当k a 不全为0 时,为IIR 滤波器;当k a 全为0 时,为FIR 滤波器。

  从性能上看,FIR 滤波器和IIR 滤波器各有优点:FIR 滤波器可以得到严格的线性相位;但是需要较多的存储器和较长的运算,成本比较高,信号延时也较大。IIR 滤波器可以用较少的阶数获得很高的选择特性,所用存储单元少,运算次数少,效率高的优点;但是相位是非线性的,且选择性越好其相位非线性越严重[3]。

  1.2 数字滤波器的传统设计方法

  数字滤波器的传统设计过程可归纳为以下三个步骤:

  (1)按照实际需要确定滤波器的性能要求。

  (2)用一个因果稳定的系统函数(即传递函数)去逼近这个性能要求。此函数可以分为两类:即IIR 传递函数和FIR 传递函数。

  (3)用一个有限的运算去实现这个传递函数。

  FIR 滤波器设计实质是确定能满足要求的转移序列或脉冲响应的常数,设计方法主要有窗函数法、频率采样法和等波纹逼近法等。目前,FIR 滤波器设计没有封闭的设计公式。虽然窗函数法对窗口函数可给出计算公式,但计算通带与阻带衰减仍无计算公式。FIR 滤波器的设计只有计算程序可循,因此对计算工具要求较高,不用计算机编程一般很难实现。

  IIR 滤波器的设计源于模拟滤波器设计,它通过对低通滤波器进行模拟频率变换得到。常用的IIR 滤波器有巴特沃斯滤波器、切比雪夫滤波器、切比雪夫Ⅱ滤波器、椭圆滤波器和贝塞尔滤波器。目前,IIR 滤波器的设计可以借助模拟滤波器的成果,有封闭形式的设计公式,对计算工具的要求不高。

  IIR 滤波器的设计虽然简单,但脱离不了模拟滤波器的设计模式,主要用于设计低通、高通、带通及带阻滤波器。而FIR 滤波器的设计要灵活得多,尤其是频率采样设计法更易适应各种幅度特性和相位特性的要求。

  2 基于LabVIEW 的数字滤波器设计

  2.1 LabVIEW 简介

  LabVIEW 是NI(National Instrument,美国国家仪器)公司推出的一种基于G 语言的虚拟仪器(virtual instrument,VI)开发工具。LabVIEW 编程使用图形化语言,它是非计算机人员使用的工具,它为设计者提供了一个便捷、轻松的设计环境,因此,LabVIEW 在世界范围内的众多领域如航空、航天、通信、电力、汽车、化学等领域得到广泛应用[4]。

  LabVIEW 有两个基本窗口:前面板窗口和流程图窗口。编译环境下显示两个窗口,前面板用于放置控制对象和显示对象,控制对象相当于常规仪器的控制和调节按钮;前面板用于显示程序运行结果,相当于常规仪器的显示屏幕或指针。流程图窗口用于编写和显示程序的图形源代码,它相当于语言编程中一行行的语句,它由各种能完成一定功能的模块通过连线连接而成。当编写的LabVIEW 程序调试无误后,可将程序编译成应用程序(EXE 文件)。此时,设计的虚拟仪器可以脱离LabVIEW 开发环境,用户只需通过前面板进行控制和观测。

  2.2 LabVIEW 中的数字滤波器

  利用文本软件设计实现的滤波器在使用过程中往往出现难以调整波形系数,与硬件接口程序复杂,开发周期长等问题。而使用LabVIEW 设计的滤波器不仅设计简单,而且使用起来要比利用文本文件实现的滤波器方便得多。

  LabVIEW 为设计者提供了FIR 和IIR 滤波器VI,使用起来非常方便,只需要输入相应的指标参数即可,不需要进行复杂的函数设计和大量的运算。滤波器VI 位于LabVIEW 流程图面板的Function>>Analyze>>Signal Processing>>Filters 上。

  不同滤波器VI 滤波时均有各自的特点,因此它们用途各异。在利用LabVIEW 实现滤波功能时,选择合适的滤波器是关键,在选择滤波器时,可参照不同滤波器的特点,考虑滤波的实际要求来选择合适的滤波器[5]。各种滤波器的特点及选择滤波器的步骤见图1。

  图1 滤波器选择步骤

  3 基于LabVIEW 的数字滤波器设计实例

  电力系统滤波器可以从电力信号中将所需频段的信号提取出来并将干扰信号滤除或大大衰减。利用LabVIEW 可以设计出满足电力系统需要的滤波器,图2为利用LabVIEW 设计的IIR 数字滤波器前面板,前面板上有参数设置、波形显示两个区域。在参数设置区域有六个设置项:滤波器选择、滤波器类型、下截止频率、上截止频率、采样频率、阶次、纹波、衰减;选择的滤波器不同时,需要设置的项也不同。波形显示区域用于显示滤波前后的波形,在此区域可直观地看出滤波效果。

  图2 数字滤波器前面板

  滤波器的输入信号是从电力系统中采集的,信号中含有频率为50Hz,有效值为220V 的基频分量,和频率为100Hz、150Hz、200Hz 的二次、三次、四次谐波。现欲提取出基频分量,滤去高次谐波,采用低通滤波方式滤波,滤波阶次为8 阶,纹波为0.1,衰减为60,下截止频率为50Hz,分别采用巴特沃斯滤波器、切比雪夫滤波器、切比雪夫Ⅱ滤波器、椭圆滤波器和贝塞尔滤波器滤波,滤波器的输入信号与不同滤波器的输出波形如图3 所示。由图3 可以看出采用不同的滤波器滤波,滤波效果是不同的。在此实例中,巴特沃思滤波器和切比雪夫滤波器的滤波效果相对较好;而切比雪夫Ⅱ滤波器的滤波延迟时间较长;贝塞尔滤波器滤波的衰减较大。因此,要根据不同的工况要求来选择合适的滤波器滤波。



  4 结论

  利用LabVIEW 实现的数字滤波,采用了图形语言编程,与采用文本语言编程相比,能缩短40%~70%的开发时间;与硬件仪器相比,又具有容易调整滤波器类型、降低成本、滤波效果直观等优点。基于LabVIEW 编写的程序还可以将其作为子程序在其他虚拟仪器系统中调用,大大增强了程序的通用性。


  
上一篇:基于PIC单片机的电波数码显示时钟的设计
下一篇:NPXI智能传感器的TPMS系统设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料