基于GUI的数字信号处理仿真平台的设计
2017-10-23肖正安
肖正安
(湖北第二师范学院 物理与机电工程学院,武汉 430205)
基于GUI的数字信号处理仿真平台的设计
肖正安
(湖北第二师范学院 物理与机电工程学院,武汉 430205)
“数字信号处理”是我院电子信息科学与技术专业的核心课程之一,该课程实用性强,理论内容丰富,概念抽象。为了优化教学环节,本文采用MATLAB GUI平台,设计开发并完成基于GUI的数字信号处理仿真实验平台。主要包含三个部分:时域离散信号及系统、离散傅里叶变换及其快速算法、IIR及FIR数字滤波器的设计。实验结果表明,该软件便于学生对各类信号调制有更直观认识,帮助学生将复杂抽象的理论变得简单直观。
GUI;仿真平台;数字信号处理
近几十年来,数字信号处理作为一门新兴交叉学科,随着计算机技术与信息科学技术的快速发展,无论在理论方面还是应用方面,都得到了快速的发展与完善,在电子、信息、计算机科学技术、自动控制、生物医学、国防军事等众多应用领域中日趋重要。“数字信号处理”课程已经成为各类本科专业的一门重要专业课,同时更是一门理论与实践应用相结合的典型课程,且和数字图像处理、数字语音处理、信号和系统、现代数字信号处理、DSP原理与应用等相关课程形成了一个信号类课程的有机整体[1]。目前,在“数字信号处理”课程的教学中,如何实现在学习理论知识与实践算法的基础上真正培养学生解决实际问题的能力及自主创新的意识,一直是其教学过程中值得讨论并有待解决的关键问题[2]。
MATLAB提供的可视化交互界面为信号处理的学习和实验提供了一个便利的仿真分析平台,其强大的数值运算能力为数字信号处理中的复杂运算提供了帮助,同时,它的可视化界面可以将课程中的重难点清晰、直观的用图形呈现出来,加深学生对课堂知识的了解和掌握[3,4],对优化教学环节非常有效。本文利用Matlab的图形界面设计工具(GUI),以数字信号处理理论知识为基础,开发了一套与课堂教学、实验内容相配套的辅助学习平台。该辅助学习平台可用于我校《数字信号处理》课程的课堂教学演示、实验辅助教学以及信号处理方面的设计研究,也可作为学生的开放学习平台,真正地将课堂及实验内容融入教学过程中。
1 MATLAB GUI简介
在计算机及通信技术飞速发展的今天,人与计算机的通信方式也随之发生了巨大的变化,原来的通讯方式已经不能满足当今的通信需求,图形界面下的交互方式已经逐渐成为当今多数应用程序的选择。
MATLAB图形用户界面开发环境简称GUIDE (matlab graphical user interface development environment), 其实质是一个界面设计工具集。GUI(Graphical User Interface)就是MATLAB软件下的图形用户界面开发环境。在Matlab2008这一版本下, GUI包含多种图形对象的界面,包括用于图形界面设计用户控件区域、界面设计及调试窗口及自定义的功能菜单等。Matlab将常用的用户控件集成起来, 供用户使用,并且提供程序界面属性、外观以及行为响应方法等设置方法。用户在设计开发过程中, 可以按照实际情况对各个图形对象合理布局。当程序激活一个GUI对象时, 就会执行其相应的属性设置,用户可以通过实时调试来达到最佳效果。最后, 保存和发布自己创建的GUI使得用户可以应用该对象[5]。
编写Matlab程序时,M文件进行创建及编写是不可缺少的一个环节,所有对象都可以调用M文件,GUI作为Matlab对象,同样可以用M文件创建。而GUIDE创建GUI对象,有着执行效率高, 交互式组件布局, 生成保存和发布GUI的对应文件等优点[5]。
GUI将用户设计并保存好的界面保存在以FIG为扩展名的文件中,自动生成包含组件界面布局控制代码及图形用户界面初始化的M文件。M文件中包含控制函数、GUI设计及控件的回调函数,主要用来控制界面展开时的各种特征,可以分为GUI初始化和回调函数二个部分。FIG文件则是一个二进制文件,主要是保存用户创建图形窗口时设计的属性,对对象句柄进行保存。
2 仿真设计主结构图
基于GUI数字信号处理仿真平台的主功能结构图如图1所示。考虑到和教学内容相一致,本设计以章节内容进行划分,包含6大主要模块,50多个GUI图形界面。为简化每个基本模块的设计,借助菜单设计功能实现层次设计方案,将每个基本模块又分解为若干个子模块,子模块下面可以继续包括子模块,不断扩充,不断完善。
图1 基于GUI的数字信号处理仿真平台
3 基于GUI的设计与实现
3.1 用户登录或注册界面
用户登录或注册界面是用户使用平台的第一个界面,如图2所示。出于对安全性的考虑,用户需要输入正确的用户名和密码后方可进入,注册后用户名和密码会存储在excel文件中。
3.2 实验仿真平台主界面
用户登录进入系统主界面后,界面如图3所示。首先以菜单的形式列出每一主模块的内容。用户根据学习或实验内容选择相应的菜单,进入6个主模块界面。
图2 仿真系统登录界面
图3 仿真系统主界面
3.3 时域离散信号仿真实验
数字信号处理首先学习离散时间信号与系统,典型常用的离散信号如单位取样序列、矩形序列、单位阶跃序列、复指数序列、实指数序列、正弦型序列等是学习信号分析的基础。例如复指数序列可表示为x(n)=e(σ+jω)n,这里σ为阻尼系数,ω为数字频率。当ω=0时,x(n)为实指数序列;当σ=0时,序列实部为余弦序列,虚部为正弦序列,即
ejωn=cos(ωn)+jsin(ωn)
(3.1)
本设计实验界面演示如图4、图5所示。
图4 仿真界面
图5 仿真结果
3.4 LSI系统处理与分析
z变换可以将离散系统的差分方程转换成代数方程,从而简化求差分方程的过程。该设计模块由若干演示实验,使学生清晰直观的掌握z变换、逆z变换、离散系统的零极点分析(系统极点位置对系统响应的影响)、离散系统的频率响应特性等信号处理实验内容。例如:已知某离散LSI系统的系统函数为:
(3.2)
画出该系统在0~π频率范围内的幅频特性与相频特性、相对频率特性以及零极点分布图。仿真界面及处理结果如下图所示:
图6 求频率响应仿真界面
图7 频率响应仿真结果
3.5 离散傅里叶变换及其快速算法
已知离散傅里叶变换是唯一在时域和频域均为离散序列的变换方法,主要用于有限长序列。但是该变换有一个显著的缺点,就是当序列长度很大时,将占用很大的内存空间,且运算时间很长,这就限制了该算法在数字信号处理领域的应用。
而快速傅里叶变换FFT为DFT变换的高效快速算法的统称。典型的FFT主要有基为2的频域抽取算法和基为2的时域抽取算法,基本思想是将一个长度为N的序列分解成多个长度为2的DFT运算,其速度可以提高成千上万倍。本文设计的仿真系统通过界面操作,化繁为简实现了各种序列的DFT、FFT等运算,并将运算结果通过直观展示出来,省去了matlab的程序编写环节,有助于学生的学习和理解。例:已知一个矩形窗函数序列为:
(3.3)
取样周期Ts=0.5s,要求通过实验求其频谱。
由于是长度为6的实序列,根据FFT变换的原理,先按要求补零。假如N=32补零,则主值区域在n=0~31,输入序列为:xn=[ones(1,6),zeros(1,N-11),ones(1,5)]。即原来n=[-5:-1]的前五个点移到n=[27:31]中去了。下例考虑分别用N=32、64、512,观察不同N值情况时FFT对频谱的影响。
图8 FFT变换仿真设计
图9 FFT变换仿真结果
上图所示的图形中左边为长度分别为32、64、512时的FFT变换幅度特性,右边为对应的相位特性,可以看到不同长度的变换,频谱的主要结构基本不变。
3.6 基于GUI平台的IIR、FIR滤波器设计
离散LSI系统对信号的响应过程实际上就是对信号进行滤波的过程。因此,离散LSI系统又称为数字滤波器。数字滤波器从滤波功能上可以分为高通、低通、带阻、带通以及全通滤波器;根据单位脉冲响应的特性,又可以分为有限长单位脉冲响应滤波器(FIR)和无限长单位脉冲响应滤波器(IIR),设计滤波器主要是找到一个合适的H(Z)。例如:
存在离散LSI系统函数为:
(3.4)
或者用差分方程来表示:
(3.5)
以上两个公式中,当系数ak全都为0时,系统不存在极点,系统为一FIR数字滤波器,而当ak至少有一个不为0时,则Z平面上存在极点,系统为一个IIR数字滤波器。FIR数字滤波器可以看成是IIR数字滤波器的ak全都为0时的一个特例。FIR数字滤波器的基本结构分为横截型(又称直接型或卷积型)、级联型、线性相位型及频率采样型等;IIR数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、直接Ⅲ型、级联型和并联型。设计IIR滤波器的基本方法有脉冲响应不变法、双线性变换法等;设计FIR滤波器主要采用窗函数法。
例如:利用双线性变换法,设计一个切比雪夫Ⅰ型IIR数字带通滤波器,要求:通带ωp1=0.35π,ωp2=0.65π,Rp=1dB;阻带ωs1=0.2π,ωs2=0.8π,As=20dB滤波器采样周期Ts=0.001s。
图10 双线性变换法IIR滤波器仿真设计
图11 双线性变换法IIR滤波器仿真结果
在窗口中填写正确的参数,运行输出如图11所示,由频率特性曲线可知,该设计结果满足通带截止频率Rp≤1dB、阻带截止频率As≥20dB的设计指标要求,系统的极点全部在单位圆内,系统稳定。由n=3可知,由3阶的模拟低通滤波器原型用双线性变换法设计出来的切比雪夫Ⅰ型数字带通滤波器是一个6阶系统。其系统函数为:
H(z)=
(3.6)
4 结束语
基于GUI的数字信号处理仿真平台的设计已初步运用到我校物理与机电工程学院“数字信号处理”的课堂教学和实验环节中。平台依据电子信息科学与技术本科专业教学大纲进行设计,交互性强,操作方便,可扩充,除计算机外无需额外硬件,节约教学成本,实验室建设快,是课堂教学演示、实验验证与开发、课外自学的有效辅助平台。通过直观便捷的界面操作,帮助学生更深刻的学习数字信号处理抽象概念,使学生摆脱繁琐的数学公式以及深奥的计算机编程,极大程度提高学生学习数字信号处理与信号系统课程的兴趣。
[1]王艳芬,张剑英,张晓光,等.信号处理课程群实验教学体系的构建[J].实验室研究与探索,2013,32(4):132-134.
[2]张安清,林洪文,陈洪泉.《数字信号处理》课程教学改革与方法研究[J].高等教育研究学报,2013,36(4):113-115.
[3]王嘉梅.基于 MATLAB 的数字信号处理与实践开发[M] .西安: 西安电子科技大学出版社,2007:1-20.
[4]沈捷,王莉.基于 MATLAB的图形交互式数字信号处理教学实验系统[J].电脑开发与应用,2007,20(9):59-61.
[5]邱金蕙,王矞辉,李振全.基于Matlab/ GUI的新型界面开发方式[J].河北工业科技,2008,7(4):234-235.
[6]刘艳.基于MATLAB GUI的数字信号处理仿真平台的设计[J].电子世界,2013,30(17) : 133-134.
[7]严慧,于继明.基于Matlab的IIR数字滤波器设计[J].软件导刊,2013,(1) : 112-115.
[8]罗华飞.MATLAB GUI设计学习手记(第2版)[D].北京:北京航空航天大学出版社,2014.
[9]甘俊英,胡异丁.基于MATLAB 的信号与系统实验指导[D].北京:清华大学出版社,2010.
[10]王峰,丁金林.基于MATLAB/GUI的数字通信系统虚拟实验平台的设计[J].南通职业大学学,2013,3(1):96-99.
[11]王帆,刘慧.基于Matlab GUI的数字图像处理实验平台设计[J].中国科技信息,2010,(11):124-125.
Design of Digital Signal Processing Simulation Platform Based on GUI
XIAO Zheng-an
(School of Physics and Electronics Information, Hubei University of Education, Wuhan 430205, China)
“Digital signal processing” course is one of the important courses of electronic information major. It is of high practicability and abundant theory, but difficult to understand for abstract concept. In order to improve the quality of teaching, this paper designs a digital signal processing simulation platform based on MATLAB GUI. It consists of discrete time signal and system, Discrete Fourier Transform and its fast algorithm, IIR and FIR digital filter design. Experimental results show that the platform can give students a more objective perspective of signal modulation to grasp theories more easily which has a degree of application value.
GUI; simulation platform; digital signal processing
TN79
A
1674-344X(2017)8-0029-05
2017-06-12
湖北省教育厅指导性项目(B2015025)。
肖正安(1974 -),男,湖北钟祥人,讲师,硕士研究生,研究方向为数字信号处理。