电子科技大学自动化工程学院 张伟 王厚军 罗光坤
引言
LabVIEW" title="LabVIEW">LabVIEW编程语言,也被称为G语言,是一种数据流编程语言。程序员通过绘制导线连接不同功能的节点,图形化的程序框图(LV源代码)结构决定程序如何执行。
现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。一旦信号被估出,那么估计出的信号的信噪比将比原信号的高。对于数字滤波器,从实现方法上,有IIR滤波器和FIR滤波器" title="FIR滤波器">FIR滤波器之分。这两类滤波器无论是在性能上还是在设计方法上都有很大的区别。相对于IIR系统,FIR系统有自己突出的优点,其一是系统总是稳定的,其二是易实现线性相位,其三是允许设计多通代(或多阻代)滤波器。后两者都是IIR系统不易实现的。目前,FIR滤波器的设计方法主要是建立在对理想滤波器频率" title="频率">频率特性做某种近似的基础上的。这些近似方法有窗函数法、频率抽样法及最佳一致逼近法。本文介绍了一种在LabVIEW平台下用窗函数法快速设计FIR数字滤波器的方法。
FIR数字滤波器窗函数法设计原理
1) 基本设计原理
考虑理想低通数字滤波器,其频率特性为,现假定其幅频特性,相频特性,那么,该滤波器的单位抽样响应
(2.1.1)
是以为对称的sinc函数,。这样的系统是非因果的,因此是物理不可实现的。但是,如果将截短,例如仅取,并将截短后的移位,得
(2.1.2)
那么是因果的,且为有限长,长度为,令可得所设计的滤波器的转移函数。的频率响应将近似,且是线性相位的。
如果在指定的相频响应时,不是令其为0,而是令,即具有线性相位,那么(2.1.1)式可改为
(2.1.3)
这样,是以为对称的,为此,可取,。
以上设计的是FIR低通数字滤波器,若设计高通、带通、带阻数字滤波器,只需改变(2.1.3)式积分的上、下限。
高通数字滤波器:
(2.1.4)
带通数字滤波器:
(2.1.5)
带阻数字滤波器:
(2.1.6)
式(2.1.4),(2.1.5)和(2.1.6)均以 对称,为此,。
比较(2.1.3),(2.1.4),(2.1.5)和(2.1.6)可以看出,一个高通滤波器相当于用一个全通滤波器减去一个低通滤波器;一个带通滤波器相当于两个低通滤波器相减,其中一个截止频率在,另一个在。一个带阻滤波器相当于一个低通滤波器加上一个高通滤波器,低通滤波器的截止频率在,高通在。
选取一个合适的窗函数,令则即为要设计的滤波器的频率响应。按以上方法设计出的滤波器由于满足的对称关系,因此都具有线性相位。
2) 滤波器系数归一化
在按照式(2.1.3)设计FIR低通滤波器系数的时候直接求出的这些的和,即一般是不等于一,因此求出的。对于低通滤波器,我们希望在处的值为1,因此习惯上要将求出的归一化,即滤波器的每个系数都除以。
同理,对于高通、带通和带阻滤波器,一般也要将系数归一化。
3) 窗函数的设计
式(2.1.2)将无穷长的仅取长为,等于在上施加了长为的矩形窗口。加窗的结果,等于和矩形窗频谱的卷积。
本文所涉及到的窗函数有矩形窗、三角窗(Bartlett)、汉宁窗(Hanning)、汉明窗(Hamming)和布莱克曼窗(Blackman)。其表达式如下:
4)多余元素的删除
线性移不变离散时间(LSI)系统的线性卷积可记为。若是一个M点的序列,是一个N点的序列,那么卷积的结果将是一个M+N-1的序列。也就是说序列的长度为M,滤波器的长度为N,经过卷积后得到长度是M+N-1的序列。为了保证序列的长度与原输入序列一样,必须删除边界上的N-1个无效元素。具体删除哪N-1个元素与卷积运算的实现方式有关。
考虑到LabVIEW自带的卷积函数,本文所设计的滤波器采用分别删除序列的前(N-1)/2个元素和后(N-1)/2个元素。
FIR数字滤波器的LabVIEW设计
LabVIEW采用前面板和后面板来编程。前面板用于输入数据和显示结果;后面板则为滤波器设计的主程序。
程序设计共分为五部分:
图3.1 滤波器设计框图
1) 前面板设计
按滤波器的设计要求在前面板放置5个控件,分别为信号生成控件、滤波方式及参数控件、窗函数选择控件、采样参数控件和波形显示控件。其中,前四个控件(如下图)为用户自定义控件。
图3.2 用户自定义控件
2) 后面板设计
按图3.1分别设计各个子VI(图3.3)。从LabVIEW函数面板取出波形生成函数并与信号生成控件和采样参数控件连接起来构成信号产生VI。将设计好的滤波器子VI跟滤波方式及参数控件连接构成滤波器VI。窗函数子VI跟窗函数选择控件连接构成窗函数VI。最后将信号连接至元素删除VI经波形图显示控件显示。
图3.3 程序框图
滤波结果显示
设计一FIR低通滤波器,截止频率为1kHz。选取包含100kHz和3kHz两个正弦分量的信号作为输入信号,信号采样率为10 kHz,滤波器系数为40,窗函数选用汉宁窗。滤波显示如图4.1。
图4.1 滤波显示
结束语
本文介绍了基于LabVIEW的FIR数字滤波器的设计。本滤波器可以根据设计要求方便的调节各种参数以达到最佳的滤波效果。此滤波器主要用在与之配套的示波器上,通过读取示波器采集的数据然后在PC机上实现滤波功能。相对于示波器自带的滤波器,本文设计的滤波器运行在PC机上,能更方便快捷的处理更多的数据同时滤波效果更好。