一种基于VB的虚拟数字滤波器的设计
扫描二维码
随时随地手机看文章
从构成要素讲,虚拟仪器系统是由计算机、应用软件和仪器硬件组成的。计算机与仪器硬件又称为VI的通用仪器硬件平台。基于PC机平台的虚拟仪器,不但具有强大的软件开发资源,而且造价低,适合于普通用户。本设计就是采用PC DAQ系统来实现的。本设计的系统构成如图1所示。其采用研华公司的PCL2818LS数据采集卡为主,构建计算机硬件外围电路,实现信号调理和高速数据采集。PCL2818LS数据采集卡有如下的功能和特点:
16路单端或8路差分模拟量输入;40 kHz 12位A/D转换器;可对每个输入通道的增益进行编程;带DMA的自动通道/增益扫描;16个数字量输入和16个数字量输出;一个12位模拟量输出通道(D/A转换);可编程定时触发器/计数器;软件支持包括VisiDAQ 3.1,ActiveDAQ和Windows 3.1/95/NT高速DLL驱动程序。由于测量信号没有经过硬件滤波,因此必须对采集进来的信号进行数字滤波,否则对测量结果产生大的干扰,影响测量精度。
2 数字滤波器的结构
数字滤波器(Digital Filter)是指用来对输入信号进行滤波的硬件和软件。所谓数字滤波器是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的器件。与模拟滤波器相比,数字滤波器的主要优点是:
(1) 精度和稳定性高;
(2) 系统函数容易改变,因而灵活性高;
(3) 不存在阻抗匹配问题;
(4) 便于大规模集成;
(5) 可以实现多维滤波,一个数字滤波器可以用系统函数表示为:
直接由H(z)得出,表示输入输出关系的常系数线性差分方程为:
可以用两种方法来实现数字滤波器:一种方法是采用通用计算机,利用计算机的存储器、运算器和控制器把滤波器所完成的运算编成程序通过计算机来执行,也就是采用计算机软件来实现;另一种方法是设计专用的数字硬件来实现。数字滤波器有IIR和FIR两种。从结构上看,IIR数字滤波器采用递归结构,FIR数字滤波器主要采用非递归的结构。由于无限冲激响应滤波器IIR具有无限记忆和运算项数较少的特点,本文将介绍由IIR滤波器满足“终端机”中滤波器技术指标的设计方法与实现。
3 IIR滤波器的设计理论和方法
递归型滤波器的结构及其转移函数的形式决定了他的设计方法,递归滤波器的转移函数一般为式(1)的形式。设计递归滤波器就是确定滤波器的系数ak和bk,使他满足滤波器的技术指标。
3.1 递归滤波器的设计
设计IIR数字滤波器的方法主要有两种。一种利用模拟滤波器的理论来设计;另一种是计算机辅助设计,也就是利用最优技术进行设计。他的设计步骤如下:
(1) 确定满足要求技术指标的模拟滤波器的转移函数H(s);
(2) 把模拟滤波器数字化。利用模拟滤波器来设计数字滤波器,就是要把s平面映射到z平面,使模拟系统函数Ha(s)变换成所需的数字滤波器的系统函数H(z),这种由复变量s到复变量z之间的映射关系,必须满足两条基本要求:
① H(z)的频率响应要能模仿Hz(s)的频率响应,即s平面的虚轴jΩ必须映射到z平面的单位圆ejΩ上,也就是频率轴要对应;
② 因果稳定的Ha(s)应能映射成因果稳定的H(z),也就是s平面Re(s)<0的左半平面必须映射到z平面单位圆的内部|z|<1。
上述两个条件既保持模拟滤波器的频率特性,亦保持模拟滤波器的稳定性,所以,映射关系得到的数字滤波器频率特性和稳定性不变。
3.2 由模拟滤波器得到数字滤波器的方案
从模拟滤波器变换成数字滤波器方案主要有以下3种:
冲激响应不变法:
阶跃响应不变法:
双线性变换法:
设计步骤:按一定技术指标将给出的数字滤波器转换为模拟低通滤波器;根据转换后的技术指标设计模拟低通滤波器H(s)。再将H(s)转换成H(z):对于高通、带通或带阻数字滤波器的设计,先将其技术指标转化为与之相应的作为“样本”的低通模拟滤波器的技术指标,再进行频率变换,然后按上述步骤设计出低通H(s),再将H(s)转换成需要的H(z)。
冲激响应不变法设计IIR数字滤波器的主要缺点是数字滤波器的幅度响应产生混迭失真,双线性变换法可克服这个缺点,但是他却引起频率失真。双线性变换的频率标度的非线性失真可以通过预畸变的方法来补偿,即:
模拟滤波器按这两个预畸变了的频率ΩP和ΩT来设计,这样用双线性变换得到的数字滤波器便具有所希望的截止频率特性,因此,本文讨论的是后一种方法,双线性变换法设计首先找出模拟滤波器的转移函数H(s),然后求出对应的数字滤波器的转移函数H(z):
T为采样周期。
4 虚拟IIR数字滤波器的设计与实现
4.1 软件
在虚拟仪器的概念中,“软件就是仪器”。虚拟仪器系统所用的软件,除了计算机所必须的操作系统等基本软件外,还需要设备驱动软件和用户应用程序。功能强大的、现成的驱动软件是数据采集系统的心脏,他为用户使用不同的编程环境和语言提供了强有力的应用程序编程接口(API)。驱动软件在保留高性能的前提下将底层的、复杂的硬件编程细节隐藏起来,为用户提供一个便于理解的接口。对于设备驱动软件,一般情况下都由硬件设备或接口板的厂家提供,用户编程时只需直接调用这些设备驱动程序,一般都符合VISA(虚拟仪器软件结构)标准。
对于用户应用软件,我们选用了工具软件VB,用他进行开发具有周期短,产品可视性好、可靠性高、可维护性强的特点。软件开发步骤如下:
(1) 根据设计要求建立窗体,然后在代码编辑窗口编辑代码。窗体应包含输入控制信息和输出显示信息。在程序代码中对采集进来的原始信号进行数字滤波,为后面电气参数的测量做好准备。
(2) 使用文件输入输出操作存储数据或从文件中读取数据,以便于存储和显示波形数据,也可用于打印和分析结果。
(3) VB 6.0的调试工具包括断点、中断表达式、监视表达式、逐语句运行、逐过程运行、通过窗口显示变量和属性的值。VB 6.0还包括特别的调试功能,比如在运行过程中进行编辑,设置下一个执行语句以及在应用程序处于中断模式时进行过程测试等。
4.2 IIR数字滤波器的设计与实现
本设计采用数字巴特沃斯滤波器(Butterworth)。巴特沃斯滤波器的幅度响应在通带内具有最平坦的特性,并且在通带和阻带内幅度特性是单调变化的。模拟Butter-worth滤波器的幅度平方函数为:
其中ω为角频率,ωc为截止频率,N是滤波器的阶数。从式(9)看出,随着N的增大,幅度响应曲线在截止频率附近变得更加陡,即在通带内有更多部分的幅度接近于1,而在阻带内以更快的速度下降至零。如果用s代替jω,即经解析延拓,则式(9)可写为:
由此得到极点
从上式看出,Butterworth滤波器的极点分布有如下特点:他在s平面上共有2N个极点等角距地分布在半径为ωc的圆上,这些极点对称于虚轴,而虚轴上无极点。N为奇数时,实轴上有两个极点。N为偶数时,实轴上无极点。各极点间的角度距为π/N,Butterworth其传递函数如下:
当N为偶数时:
当N为奇数时:
根据上述方法,我们编制了IIR数字滤波器的设计程序,采用此程序只需选择模拟低通滤波器原型和目标滤波器种类,输入采样频率ω和目标滤波器截止频率ωc,即可自动完成对IIR数字滤波器的设计,如3阶低通数字滤波器的设计实例如下:
选择归一化的3阶Butterworth低通滤波器作为设计型,采样频率为10 kHz,截止频率为1 kHz,运行设计程序得到低通数字滤波器的传递函数为:
幅频图如图2所示。
选择归一化的3阶Butterworth低通滤波器作为设计型,采样频率为10 kHz,截止频率ωc1为1 kHz,ωc2为2kHz,运行设计程序得到带通数字滤波器的传递函数为:
幅频图如图3所示。
5 结 语
数字滤波器可以通过编程实现各种不同系统,满足不同的需要,又可以随时改动系数,调整滤波器参数,选择最佳方案。使用虚拟仪器逐步代替传统仪器已经成为测试领域发展的趋势。但是在实际应用中,仍需要根据具体情况进行程序的优化和软硬件的结合,使虚拟仪器发挥更高的性能。本文作者创新点是使用了VB软件平台开发电气参数测量仪等,虚拟仪器实现了更高的效率,节省了更多的硬件开销,方便了系统的维护并减轻了仪器更新的负担。