基于LabVIEW逐点数字滤波实验设计
Experimental Design of Point-by-Point Digital Filtering Based on LabVIEW
DOI: 10.12677/CSA.2021.112043, PDF, HTML, XML, 下载: 516  浏览: 1,303  科研立项经费支持
作者: 马 妍, 丁洪影, 王 建, 陈世超:徐州工程学院,江苏 徐州;陈 奎*:徐州工程学院,江苏 徐州;江苏省大型工程装备检测与控制重点建设实验室,江苏 徐州
关键词: 逐点处理数字滤波器设计与仿真实验LabVIEWPoint-by-Point Processing Digital Filter Design and Simulation Experiment LabVIEW
摘要: 针对MATLAB环境下设计滤波器不便于构建一个虚拟仪器系统的问题,文中采用LabVIEW逐点分析工具设计数字滤波器教学演示与实验系统,实现动态逐点的信号生成与滤波。系统前面板参数可任意设定,滤波过程实时逐点可视。系统采用LabVIEW事件状态机模式实现,具有开放性特点,方便后续实验项目的增减。使用结果表明其有利于学生理解数字滤波的设计与应用过程、理解信号系统实时性需求。
Abstract: In order to solve the problem that it is not easy to build a virtual instrument system to design filter in MATLAB environment, this paper uses LabVIEW point by point analysis tool to design digital filter teaching demonstration and experimental system to realize dynamic point by point signal generation and filtering. The front panel parameters of the system can be set freely, and the filtering process is dynamically visible. Moreover, based on the LabVIEW’s event state machine mode, this system is convenient for the subsequent increase and decrease of experimental projects. We argue that by using this system, it is easier for students to understand the design and application process of digital filtering, and also real-time requirements of the signal system.
文章引用:马妍, 陈奎, 丁洪影, 王建, 陈世超. 基于LabVIEW逐点数字滤波实验设计[J]. 计算机科学与应用, 2021, 11(2): 435-442. https://doi.org/10.12677/CSA.2021.112043

1. 引言

“数字信号处理”是高校信息类专业重要的专业基础课,具有理论性、实践性和应用性强的特点,其知识体系严谨、概念抽象、理论推导繁琐复杂、理论与实际联系紧密 [1] [2] [3]。FIR/IIR是课程主要内容与难点之一,教学中对其理论推导和仿真验证缺乏交互性与动态性,学生对众多参数及其实际效应没有直观认识、难以理解 [1]。另外,教材中数字滤波是基于数据缓存数组进行推导、分析和验证的,信号实时逐点的特性被模糊或弱化,不利于学生理解实时滤波的过程。

目前MATLAB文本程序或辅以GUI界面是数字滤波器教学验证演示主要方式 [4] [5] [6]。基于案例教学演示可辅助学生感性地理解滤波理论 [7] [8]。上述方法的缺点是不利于学生硬件认识。可通过实验板将信号与系统知识与电路知识有机结合,既能够解决硬件实现的缺陷,又能够认识信号的特点,但是电路的搭建耗时,且容易转移学生学习重心。而LabVIEW以其图形化编程方式、丰富控件资源、完备信号处理函数非常适合快速构建交互良好、动态直观的案例式教学演示与验证系统,且编程与使用过程都动态直观 [8],将实体实验与虚体实验相结合。基于LabVIEW开发虚拟实验广泛应用于工业、科研和教学领域 [10] - [17]。LabVIEW实时逐点运算功能可仿真与验证包括滤波在内的各种实时信号处理 [10],贴近硬件实际,上述文献未见提及。

2. LabVIEW滤波与逐点滤波

2.1. 逐点滤波工具

信号分析及滤波处理方式一般分为在线和离线两种,其最大区别在于采集与分析处理发生的时刻。即在信号进入的起始阶段或信号参数变化时两者计算结果有差别。理论上当数据稳定且缓存一定数量时两者结果一致 [9] [10]。LabVIEW信号处理工具和高级信号处理工具中为信号生成、调理、运算、变换、滤波、分析等提供了丰富的函数族。针对信号实时性要求,LabVIEW还提供了一套逐点处理函数如图1图2所示,它们分别位于信号处理工具和高级信号处理工具之内。

2.2. 逐点滤波函数

实现某种特定逐点滤波需求,上述很多独立函数可以满足使用。为简化系统设计仅采用“经典数字滤波器设计”(DFD Classical Design)与“数字滤波”(DFD Filtering)两个通用性强的函数分别实现滤波器设计和逐点滤波。

Figure 1. Partial point-wise filtering function

图1. 部分逐点滤波函数

Figure 2. Advanced signal processing toolbox

图2. 高级信号处理工具箱

DFD Classical Design函数提供三种FIR和四种IIR滤波器设计方法,依次为Kaiser Window、Dolph-Chebyshev Window、Equi-Ripple、Butterworth、Chebyshev、Inverse Chebyshev、Elliptic。可实现低通、高通、带通、带阻四种滤波器类型。函数需要四个主要输入参数,滤波器设计方法、滤波器类型,滤波器设计规范参数(Filter Specifications),即采样频率 f s ,通带频率 f p a s s 1 f p a s s 2 ,阻带频率 f s t o p 1 f s t o p 2 ,和滤波器纹波规范参数(Ripple Specifications),即通带纹波与阻带衰减。

DFD Filtering函数可实现单通道单采样、多通道多采样信号的连续逐点滤波,其输入端为滤波器类型数据。

实时信号采用工具箱中全部逐点信号生成函数、干扰与噪声函数,引出其众多输入参数后用子VI封装。

滤波器设计完成后,使用“滤波器分析(Filter Analysis)”类工具函数生成绘制滤波器的幅频与相频特性、脉冲与阶跃响应零极点图以及传递函数等,增强系统可视性。

最后,用信号的逐点自功率谱对比与验证滤波器的滤波性能。逐点自功率函数为:

P ( f ) = F F T ( * x ( n ) ) × F F T ( x ( n ) ) n 2

其中,*表示复共轭,n信号采样数。

3. 逐点FIR/IIR滤波

3.1. FIR/IIR原理

数字滤波器分为FIR和IIR滤波器。FIR冲激响应在有限时间内衰减为零,其输出取决于当前和过去输入信号。IIR冲激响应理论上无限持续,其输出取决于当前和过去输入信号,还取决于过去信号输出。

FIR传递函数极点固定在原点,仅能改变零点位置来改变性能,达到高的频率选择性时必须用较高阶数。IIR传递函数包括零点和极点两组可调因素,对极点唯一限制是在单位圆内,可用较低阶数获得高的频率选择性。一般同样的设计指标,FIR阶数比IIR高5~10倍。FIR非递归结构使其在有限精度运算中不存在稳定性问题,频率特性误差相对IIR要小。

3.2. FIR/IIR逐点滤波

LabVIEW中FIR、IIR逐点滤波公式为:

y [ i ] = j = 0 n 1 { b [ j ] x [ i j ] }

y i = 1 a 0 ( j = 0 N b 1 b j x i j k = 0 N a 1 a k y i k ) i

其中 x i j y i 分别为逐点输入与输出。 b i 是FIR的前向系数数组, a k N a b j N b 分别是IIR反向与正向系数及系数个数。上式逐点滤波与常规教材中滤波函数表达一致,逐点仅通过下标i强调其逐点计算的特性。

4. 系统设计和案例演示

4.1. 程序框架和功能

采用LabVIEW事件状态机模式实现系统工作状态间交互式切换。工作状态划分为:1) 参数、控件属性、文件初始化;2) 滤波器与信号设计参数交互设置;3) 滤波器特性图形化呈现;4) 信号生成与滤波实时逐点呈现;5) 滤波器文件存储与管理;6) 系统操作简介。状态机模式程序框架通过自定义枚举“状态常量”项的增减实现实验项目的改变。

核心程序段如图3图4所示。图3中包括DFD Classical Design函数和子VI封装的各滤波器分析函数。程序段接收移位寄存器左端口传来的Filter Specifications簇和Error簇,输出如图7所示的滤波器各项指标的特性图,输出Filter和Error簇到移位寄存器右端口用于系统状态时备份数据。图4为信号逐点进入和逐点滤波部分,包括封装后逐点信号源子VI,DFD Filtering函数,逐点自功率谱函数。输出信号(噪声与干扰操作手动叠加)、噪声与干扰、滤波后信号的时域波形和功率谱,用于对比验证滤波前后的变化。数字滤波器可视化演示系统操作流程如图5所示。

Figure 3. Filter design and filter characteristic program realization part

图3. 滤波器设计与滤波特性程序实现部分

Figure 4. Point-by-point filtering and filtering effect program realization

图4. 逐点滤波及滤波效果程序实现

Figure 5. Digital filter visual demonstration system operation process

图5. 数字滤波器可视化演示系统操作流程

4.2. 案例实验及演示效果

设计案例:占空比20%的受干扰方波信号,其频率为1 kHz,干扰为周期性的20点随机脉冲,脉冲频域幅值0.1,噪声为标准差0.5高斯噪声。要求:滤除方波信号的高次谐波、随机脉冲干扰与噪声干扰,用FIR/IIR两种滤波器进行对比。

设定FIR/IIR滤波器设计方法分别为Kaiser Windows和Elliptic。方波具有 ( 2 n + 1 ) × 1 kHz 奇次谐波,20点随机脉冲将造成 n f s / 20 = n 1.105 kHz 干扰,因此,采样频率设定为音频信号常用的 f s = 22.1 kHz ,满足本案例使用外也可为后续声卡信号输入实验准备。滤波器类型为低通,设计规范参数中 f p a s s 1 = 2 kHz f s t o p 1 = 2.4 kHz ,通带纹波0.5 dB、阻带衰减50 dB。

4.3. 实验结果

滤波器特性如图6图7所示,图中可见同样指标下两种滤波器的显著区别,尤其是有限的脉冲响应、零极点分布与数量。

Figure 6. FIR filter design results

图6. FIR滤波器设计结果

Figure 7. System interface and filter design results

图7. 系统界面及滤波器设计结果

图8给出了方波信号逐点滤波结果,其中,(a)中方波信号逐点输入,在输入过程中可以手动添加干扰和噪声。(d)和(f)是滤波器前后信号的功率谱。未加噪声与干扰时,初始阶段功率谱曲线随信号输入不断变换直至稳定。稳定条件是信号不发生改变且信号没有干扰和噪声。(d)、(f)两图表明滤波器性能达到设计要求,滤除了谐波和高次的随机脉冲干扰,但1105 Hz随机脉冲干扰无法滤除。因此(f)图中峰值是方波基频成分与随机脉冲干扰的叠加。

Figure 8. Signal point-by-point filtering result ((a) Original signal; (b) Random pulse and Gaussian noise; (c) Point-by-point filtering; (d) Power spectrum before filtering; (e) Interference and noise power spectrum; (f) Filtered power spectrum)

图8. 信号逐点滤波结果((a) 原始信号;(b) 随机脉冲和高斯噪声;(c) 逐点滤波;(d) 滤波前功率谱;(e) 干扰与噪声功率谱;(f) 滤波后功率谱)

系统在使用过程中,可由老师或学生提出不同的滤波需求和信号源特性,通过图示结果可直观观察原信号、噪声与干扰、信号功率谱和逐点滤波的效果,可增强对FIR/IIR滤波器设计与逐点滤波过程的理解。

5. 结语

面向FIR/IIR滤波器数学与实验需求,利用LabVIEW良好的交互性和逐点计算功能设计并实现了辅助教学演示系统。教师在课堂讲授时可通过交互的方式对课程中FIR/IIR滤波器的概念和原理进行实时仿真、验证,形象具体地展示课程中抽象的理论知识,充分激发学生的学习兴趣;学生可在该平台改变输入参数,理解并掌握各种FIR/IIR滤波系统的分析方法,深刻体会滤波器性能特点。通过具体实现的案例可见,系统计算结果符合理论分析,且界面交互性好,程序框架通用性强。

基金项目

江苏省科学技术厅项目(BY2015024-03)、徐州市科技计划项目(KC19208)、江苏省大型工程装备检测与控制重点建设实验室开放基金(JSKLED201414)资助。

NOTES

*通讯作者。

参考文献

[1] 吴镇扬. 讲好“数字信号处理”的绪论课[J]. 电气电子教学学报, 2018, 40(4): 81-84. http://dx.chinadoi.cn/10.3969/j.issn.1008-0686.2018.04.022
[2] 林永照, 黄文准, 李宏伟, 等. 数字信号处理实践与应用[M]. 北京: 电子工业出版社, 2015.
[3] 屈召贵, 周永强. 应用型本科电子信息工程专业实践教学体系探索[J]. 实验室研究与探索, 2018, 37(12): 240-244. http://dx.chinadoi.cn/10.3969/j.issn.1006-7167.2018.12.056
[4] 肖菊兰. 数字信号处理虚拟实验平台在教学中的应用[J]. 成都工业学院学报, 2019, 22(1):104-108. http://dx.chinadoi.cn/10.13542/j.cnki.51-1747/tn.2019.01.024
[5] 张林, 王艳芬, 张晓光, 芦楠楠. 基于Matlab GUI的数字信号处理演示平台设计[J]. 实验技术与管理, 2016, 33(12): 154-157. http://dx.chinadoi.cn/10.16791/j.cnki.sjg.2016.12.038
[6] 翟霄雁, 齐善东, 张莹, 周在芳. 发动机控制软件中常用滤波器设计及其matlab实现[J]. 内燃机, 2020(5): 19-21+25.
[7] 张晓光, 汤文豪, 王艳芬, 王刚. 数字信号处理案例教学法研究与实践[J]. 实验技术与管理, 2018, 35(5): 214-217+235. http://dx.chinadoi.cn/10.16791/j.cnki.sjg.2018.05.055
[8] 栗学丽. 基于LabVIEW的频域抽样定理实验[J]. 实验技术与管理, 2019, 36(8): 134-138. http://dx.chinadoi.cn/10.16791/j.cnki.sjg.2019.08.032
[9] 全晓莉, 古良玲. 基于LabVIEW的电子类虚拟实验系统设计[J]. 实验技术与管理, 2018, 35(2): 121-123+129. http://dx.chinadoi.cn/10.16791/j.cnki.sjg.2018.02.029
[10] 王艳霞, 韩如成, 宋卫平, 李广伟. 基于LabVIEW逐点分析库的火车车轮状态实时检测系统[J]. 工业控制计算机, 2009, 22(3): 26+28. http://dx.chinadoi.cn/10.3969/j.issn.1001-182X.2009.03.014
[11] 刘鹏飞, 周宾, 陶依贝, 寇潇文, 陈海轩. 基于LabVIEW的烟气速度场实时监测系统[J]. 仪表技术与传感器, 2019(7): 72-77. http://dx.chinadoi.cn/10.3969/j.issn.1002-1841.2019.07.017
[12] 李毅, 李晓辉, 郭万里. 基于LabVIEW-Multisim的低频虚拟实验室设计与实现[J]. 现代电子技术, 2019, 42(6): 72-75. http://dx.chinadoi.cn/10.16652/j.issn.1004-373x.2019.06.018
[13] 河北工业大学. 基于NI myDAQ的综合实验平台及其构建方法[P]. 中国发明专利, CN201610039887.4. 2016-04-06.
[14] 厦门大学. 一种基于LabVIEW的多功能光学测试系统及方法[P]. 中国发明专利, CN201811149032.2. 2019-01-08.
[15] 毕晓伟, 梁万鹏, 罗学宇. Lab-VIEW逐点分析滤波在电力系统的应用研究[J]. 东北电力大学学报, 2010, 30(6): 55-58. http://dx.chinadoi.cn/10.3969/j.issn.1005-2992.2010.06.013
[16] 周城旭, 王冬霞, 曹玉东, 曹洪奎. 数字信号处理虚拟仿真综合实验平台的设计[J]. 辽宁工业大学学报(自然科学版), 2021, 41(1): 5-10. http://dx.chinadoi.cn/10.15916/j.issn1674-3261.2021.01.002
[17] 陈俊良, 康林, 李广伟, 朱润涛. 基于Matlab的FIR数字滤波器设计及在接收机中的应用[J]. 兵工自动化, 2020, 39(12): 33-35+49. http://dx.chinadoi.cn/10.7690/bgzdh.2020.12.008