针对MATLAB环境下设计滤波器不便于构建一个虚拟仪器系统的问题,文中采用LabVIEW逐点分析工具设计数字滤波器教学演示与实验系统,实现动态逐点的信号生成与滤波。系统前面板参数可任意设定,滤波过程实时逐点可视。系统采用LabVIEW事件状态机模式实现,具有开放性特点,方便后续实验项目的增减。使用结果表明其有利于学生理解数字滤波的设计与应用过程、理解信号系统实时性需求。 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.
针对MATLAB环境下设计滤波器不便于构建一个虚拟仪器系统的问题,文中采用LabVIEW逐点分析工具设计数字滤波器教学演示与实验系统,实现动态逐点的信号生成与滤波。系统前面板参数可任意设定,滤波过程实时逐点可视。系统采用LabVIEW事件状态机模式实现,具有开放性特点,方便后续实验项目的增减。使用结果表明其有利于学生理解数字滤波的设计与应用过程、理解信号系统实时性需求。
逐点处理,数字滤波器,设计与仿真实验,LabVIEW
Yan Ma1, Kui Chen1,2*, Hongying Ding1, Jian Wang1, Shichao Chen1
1Xuzhou Institute of Technology, Xuzhou Jiangsu
2Jiangsu Key Laboratory of Large Engineering Equipment Detection and Control, Xuzhou Jiangsu
Received: Jan. 22nd, 2021; accepted: Feb. 17th, 2021; published: Feb. 24th, 2021
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.
Keywords:Point-by-Point Processing, Digital Filter, Design and Simulation Experiment, LabVIEW
Copyright © 2021 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
“数字信号处理”是高校信息类专业重要的专业基础课,具有理论性、实践性和应用性强的特点,其知识体系严谨、概念抽象、理论推导繁琐复杂、理论与实际联系紧密 [
目前MATLAB文本程序或辅以GUI界面是数字滤波器教学验证演示主要方式 [
信号分析及滤波处理方式一般分为在线和离线两种,其最大区别在于采集与分析处理发生的时刻。即在信号进入的起始阶段或信号参数变化时两者计算结果有差别。理论上当数据稳定且缓存一定数量时两者结果一致 [
实现某种特定逐点滤波需求,上述很多独立函数可以满足使用。为简化系统设计仅采用“经典数字滤波器设计”(DFD Classical Design)与“数字滤波”(DFD Filtering)两个通用性强的函数分别实现滤波器设计和逐点滤波。
图1. 部分逐点滤波函数
图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信号采样数。
数字滤波器分为FIR和IIR滤波器。FIR冲激响应在有限时间内衰减为零,其输出取决于当前和过去输入信号。IIR冲激响应理论上无限持续,其输出取决于当前和过去输入信号,还取决于过去信号输出。
FIR传递函数极点固定在原点,仅能改变零点位置来改变性能,达到高的频率选择性时必须用较高阶数。IIR传递函数包括零点和极点两组可调因素,对极点唯一限制是在单位圆内,可用较低阶数获得高的频率选择性。一般同样的设计指标,FIR阶数比IIR高5~10倍。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强调其逐点计算的特性。
采用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所示。
图3. 滤波器设计与滤波特性程序实现部分
图4. 逐点滤波及滤波效果程序实现
图5. 数字滤波器可视化演示系统操作流程
设计案例:占空比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。
滤波器特性如图6和图7所示,图中可见同样指标下两种滤波器的显著区别,尤其是有限的脉冲响应、零极点分布与数量。
图6. FIR滤波器设计结果
图7. 系统界面及滤波器设计结果
图8给出了方波信号逐点滤波结果,其中,(a)中方波信号逐点输入,在输入过程中可以手动添加干扰和噪声。(d)和(f)是滤波器前后信号的功率谱。未加噪声与干扰时,初始阶段功率谱曲线随信号输入不断变换直至稳定。稳定条件是信号不发生改变且信号没有干扰和噪声。(d)、(f)两图表明滤波器性能达到设计要求,滤除了谐波和高次的随机脉冲干扰,但1105 Hz随机脉冲干扰无法滤除。因此(f)图中峰值是方波基频成分与随机脉冲干扰的叠加。
图8. 信号逐点滤波结果((a) 原始信号;(b) 随机脉冲和高斯噪声;(c) 逐点滤波;(d) 滤波前功率谱;(e) 干扰与噪声功率谱;(f) 滤波后功率谱)
系统在使用过程中,可由老师或学生提出不同的滤波需求和信号源特性,通过图示结果可直观观察原信号、噪声与干扰、信号功率谱和逐点滤波的效果,可增强对FIR/IIR滤波器设计与逐点滤波过程的理解。
面向FIR/IIR滤波器数学与实验需求,利用LabVIEW良好的交互性和逐点计算功能设计并实现了辅助教学演示系统。教师在课堂讲授时可通过交互的方式对课程中FIR/IIR滤波器的概念和原理进行实时仿真、验证,形象具体地展示课程中抽象的理论知识,充分激发学生的学习兴趣;学生可在该平台改变输入参数,理解并掌握各种FIR/IIR滤波系统的分析方法,深刻体会滤波器性能特点。通过具体实现的案例可见,系统计算结果符合理论分析,且界面交互性好,程序框架通用性强。
江苏省科学技术厅项目(BY2015024-03)、徐州市科技计划项目(KC19208)、江苏省大型工程装备检测与控制重点建设实验室开放基金(JSKLED201414)资助。
马 妍,陈 奎,丁洪影,王 建,陈世超. 基于LabVIEW逐点数字滤波实验设计Experimental Design of Point-by-Point Digital Filtering Based on LabVIEW[J]. 计算机科学与应用, 2021, 11(02): 435-442. https://doi.org/10.12677/CSA.2021.112043