1、 分类号 编 号 一、毕业论文的目的 通过本次毕业设计的完成,锻炼学生综合运用所学知识进行实践的能力,提高学生自学新知识、掌握新技术的能力,培养学生的创新意识和创新能力,并通过毕业设计论文的完成提高学生知识表达,语言组织的水平,使学生的科研水平上一个层次。 二、主要内容 通过研究利用MATLAB实现基本序列的计算、基本信号的产生、离散傅里叶变换、数字滤波器设计等实验,让基于MATLAB的教学实验系统更具体化,充分利用MATLAB仿真软件以加深对课程原理和方法的理解。三、重点研究问题 1.分析基本信号的产生、序列的基本运算和傅里叶变换、滤波器设计等实验; 2.使用MATLAB编辑GUI界面,设计
2、出对信号的系统分析、离散傅里叶变换和数字滤波器等并进行仿真; 四、主要研究方法1.研究分析数字信号处理实验; 2.利用MATLAB这个平台,设计各个实验的GUI界面; 3.使用MATLAB进行设计,调试,收集并分析数据。 五、论文成果要求 1.翻译外文资料,要求不少于2000汉字;2.给出实现基本信号的产生、序列的基本运算、离散傅里叶变换等实验的设计程序(正常运行)及分析结果;3.提交正文在10000字以上毕业设计说明书,要求格式规范,文字叙述严谨流畅,图形图表清晰美观,正文中应包括目录、中英文摘要、序言、研究内容、参考文献等。六、时间安排第12周:实习;第34周:查阅参考文献、写开题报告;第
3、5周:进行理论分析第6周:进行基本信号的产生、基本序列运算、傅里叶变换、数字滤波器等实验分析;第7周:进行数字滤波器等实验的设计; 第89周:具体编程、调试;第1011周:建立GUI界面,对结果进行分析;第1213周:外文翻译、撰写论文;第14周:提交论文、准备答辩,组织预答辩;第15周:答辩。七、参考书目 1、数字信号处理 2、MATLAB教程 3、MATLAB在数字信号处理中的应用 4、MATLAB图形技术 5、MATLAB 7.X界面设计与编译技巧 华北水利水电学院本科生毕业设计(论文)开题报告学生姓名学号专业题目名称基于MATLAB数字信号处理教学实验系统课题来源 自选主要内容一、 课
4、题意义“数字信号处理”在电子信息专业中是一门很重要的课程,它涉及的知识广泛,包括微积分、概率论、信号与系统等。学生在学习这方面的内容的时候,通常感觉比较抽象,对其中的基本理论和分析方法难以具体地理解和掌握。为此,很多学校安排了实验课程,借助一些优良的软件平台(如MATLAB等)来解决这一实际问题,帮助学生更好地理解和掌握数字信号处理中的基本理论和分析方法,激发他们的学习兴趣,从而达到良好的教学效果。二、相关背景1.MATLAB是matrix laboratory即矩阵实验室的缩学,是1984年由美国的Mathworks公司数值计算及图形工具软件,它最初是作为“矩阵理论”和“数值分析”的等课程的
5、计算工具,经过十几年的发展和完善,目前已成为世界各国在科学分析和计算领域的主流软件。2.它的特点是:(1)友好的工作平台和编程环境;(2)简单易用的程序语言;(3)强大的科学计算机数据处理能力;(4)出色的图形处理功能;(5)应用广泛的模块集合工具箱;(6)实用的程序接口和发布平台;(7)应用软件开发(包括用户界面)。3.以MATLAB为平台开发的数字信号处理教学辅助软件充分利用了计算机的快速运算、文字、动态图形、声音及交互人机界面的特点,利用MATLAB的数值分析和计算结果可视化、信号处理工具箱的强大功能,将数字信号处理中较难掌握和理解的部分,形象、生动的表现出来,从而使学生理解的更加透彻,
6、同时运用教学软件中的数值计算工具箱,将使学生从大量繁琐的手工运算中解放出来,将更多时间用于对基本概念和基本方法的思考。三、理论分析数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。 1.MATLAB在数字信号处理实验中的运用MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文
7、字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。MATLAB实现了给定参数信号波形生产、DTFT频谱分析、FIR、IIR滤波器等功能。系统提供了参数滤波器分析功能,学生可以通过自己输入滤波器参数的方式查看该参数下滤波器的频率特性,从而增强学生对滤波器工作过程的理解。四、可行性分析1.重点知识演示系统它包括常用信号和基本运算、卷积积分、卷积和、周期信号的分解与合成、连续信号的频谱、连续系统的频率特性、模拟低通滤波器等。MATLAB内部提供了大量的函数用于产生噪声及常用的信号波形。如方波函数、三角波函数周期信号函数等。这些信号在信号处理
8、中非常重要。它充分利用MATLAB的计算结果可视化和图形处理的强大功能,将数字信号处理中较难掌握和理解的部分,以文字、动态图形、声音及交互人机界面的形式表现出来,有助于学生更好地理解和掌握。2.数值分析工具箱该系统是学生利用计算机完成数字信号处理中大量繁杂手工运算的有力工具其目的在于让学生学会用科学的计算方法解决问题,将使学生从大量繁琐的手工运算中解放出来,将更多时间用于对基本概念和基本方法的思考,从而把握住问题的关键,理解的更加透彻。数值工具箱的功能包括:积分、微分、微分方程求解、差分方程求解、多项式求根、系统零极点计算、单变量信号绘图、部分分式展开和系统稳定性判断等。五、目标任务分析离散信
9、号与系统分析基础是信号频谱分析和系统设计的理论基础,所以要对序列的基本运算和基本信号的产生有一定的理解,实验列举了正弦信号、阶跃信号、冲激信号等信号的产生和计算;通过有限长序列的傅里叶表示定义有限长系列的离散傅里叶变换,并利用DFT分析连续非周期信号的频谱,通过频谱分析信号是否重叠;数字滤波器是一个离散系统,包括有限冲激响应滤波器(FIR)和无限冲激响应滤波器(IIR)。该系统能对输入的离散信号进行处理,从而获取所需的有用信息。最后将选取的实验利用MATLAB的GUI界面整合成一个系统,使得在教学过程中帮助学生理解和掌握数字信号处理的理论知识。采取的主要技术路线或方法GUI 即人机交互图形化用
10、户界面设计,是指采用图形方式显示的计算机操作用户界面。流程图如下:GUI界面退出实验主界面退出实验子界面实验结果实验内容退 出返 回退出该实验系统包括基本序列的计算、基本信号的产生、傅里叶变换、卷积和数字滤波器设计等实验。基本系列计算包括翻转、位移等,在实验界面上,可以通过输入参数可以产生不同的序列图形,通过输入卷积的幅度得到两个序列卷积后的图形;基本信号包括正弦信号、单位脉冲、矩形等信号,输入它们的平移量或者幅度等一系列参数,可以得到不同的结果,并可以就这些结果进行比较;傅里叶变换是数字信号处理这门课程的核心算法之一,信号的傅里叶变换建立了信号的时域与频域之间的一一对应关系,拓展了信号表达的
11、空间,为信号与系统的频域分析奠定了理论基础,该实验是对方波信号和指数信号的频谱进行分析,观察信号是否会发生混叠;卷积是离散信号处理中的重要运算,卷积运算实验是要计算两个给定数值的序列的卷积;滤波器设计是数字信号处理课程的重要内容,通过输入不同的截止频率,得到给定参数下的信号频谱。预期的成果及形式1对数字信号处理和MATLAB软件进行理论研究和分析;2用Matlab语言写出各个实验的程序;3对模拟结果进行分析;4提交正文在10000字以上毕业设计说明书,要求格式规范,文字叙述严谨流畅,图形图表清晰美观,正文中应包括目录、中英文摘要、序言、参考文献等;时间安排第12周:实习第3-4周:查阅参考文献
12、、写开题报告;第5周:进行理论分析第6周:进行数字滤波器等实验分析;第7周:进行数字滤波器等实验的设计; 第89周:具体编程、调试;第10-11周:对结果进行分析;第12-13周:外文翻译、撰写论文;第14周:提交论文、准备答辩,组织预答辩; 第15周:答辩。指导教师意见签 名:年 月 日备注 、容主要是信号的获取、传输和处理、识别及综合等。信号时2010年 3 月19日目 录摘要1Abstract2第1章 绪论31.1 课题研究的背景及意义31.2 教学实验系统简介31.3 设计的目标任务4第2章 数字信号处理与开发环境的简介52.1 数字信号处理的简介52.2 MATLAB简介与特点62.
13、2.1 MATLAB的简介62.2.2 MATLAB的特点6第3章 实验系统方案设计93.1 系统的基本模块93.2系统设计步骤103.2.1创建GUI103.2.3 写回调函数 CallBack123.2.4 句柄图形之间的层次关系133.2.5 获取与设置对象属性14第4章 系统界面设计154.1 系统的GUI界面154.2 实验主界面164.3 实验子界面18第5章 系统实验的具体内容215.1基本信号的产生215.2 序列的基本运算225.3 离散傅里叶变换245.4 卷积运算265.5数字滤波器设计275.6 数字系统的结构285.6.1级联型滤波器285.6.2格型滤波器295.7
14、 多速率信号处理基础305.7.1设计多带FIR滤波器305.7.2设计等波纹FIR滤波器32第6章 总结33参考文献34致谢35附录1:外文文献和翻译36外文原文36外文翻译40附录2:程序43 华北水利水电学院毕业设计摘要随着信息技术的不断发展,数字信号处理已成为一个极其重要的学科和技术领域,在通信、语音、图像、遥感、生物工程等众多领域得到了广泛的应用。数字信号处理的核心内容主要是信号的获取、传输和处理、识别及综合等。信号是信息的载体,系统是信息处理的手段。因此,为了更好的研究信号和系统的基本理论与方法,使同学们更好地理解和掌握数字信号处理的理论知识,在实验过程中,借助MATLAB这个平台
15、来进行辅助设计。MATLAB是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。作为强大的科学计算平台,它几乎满足所有的计算要求。随着对仿真和程序设计通用性及可视化需求的日益增加,MATLAB着重改善了图形用户界面的制作,极大地满足了用户的需求。 MATLAB的GUID是专门用于图形用户界面的快速开发环境,本文利用该工具设计教学实验系统,该系统将MATLAB软件和多媒体硬件结合,将数字信号处理的实验内容融入进去,形成一种新的计算机教学实验方式。该系统的形象直观,总体界面友好,具有开放性,便于学生对所学理论知识的理解,大大提高教学的效果和效率。关键词:数字信号处理;教
16、学实验系统;MATLAB;GUIAbstractWith the continuous development of information technology,digital signal processing has become a very important subject and technology field。It has widely applicated in the communication, audio and image, remote sensing, biological engineering. The core content of digital sig
17、nal processing, mainly is the signal transmission and processing, identification and so on. When the signal system is a carrier of information, information processing. Therefore, in order to better research signal and system of basic theory and method, help students better understand and master of d
18、igital signal processing theory knowledge, in the experimental process by MATLAB, the platform for computer-aided design.MATLAB algorithm is used to develop, data visualization, data analysis and numerical calculation of the advanced technology and the interactive language environment. As a powerful
19、 scientific computing platforms, it almost to satisfy all computing requirements. As for simulation and program design and visualization of generality demand has increased, emphatically improve the MATLAB graphical user interface, greatly satisfy the needs of the users.GUIDE of matlab is a quick dev
20、elopment enviroment.A graphics user interface for a teaching experiment software of digital signal process has been designed and implemented.Integrating DSP experiments,a new computer aided instruction mode is derived throught this system which combing matlab and multimedia.Being active and this int
21、erface is friendly and open,this system is beneficial for the students to comprehend DSP theory and improves the teaching effect and efficiency.Key words: digital signal process; teaching experiment; Matlab; graphics user interface第1章 绪论1.1 课题研究的背景及意义“数字信号处理”在电子信息专业中是一门很重要的课程,它涉及的知识广泛,包括微积分、概率论、信号与系
22、统等。学生在学习这方面的内容的时候,通常感觉比较抽象,对其中的基本理论和分析方法难以具体地理解和掌握。为此,很多学校安排了实验课程,借助一些优良的软件平台(如MATLAB等)来解决这一实际问题,帮助学生更好地理解和掌握数字信号处理中的基本理论和分析方法,激发他们的学习兴趣,从而达到良好的教学效果。1.2 教学实验系统简介 数字信号处理实验环节在教学过程中是非常重要的,实验有助于学生理解和掌握所学的理论。MATLAB是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。作为强大的科学计算平台,它几乎满足所有的计算要求。随着对仿真和程序设计通用性及可视化需求的日益增加,M
23、ATLAB着重改善了图形用户界面的制作,极大地满足了用户的需求。 MATLAB的GUID是专门用于图形用户界面的快速开发环境,本文利用该工具设计教学实验系统,该系统将MATLAB软件和多媒体硬件结合,将数字信号处理的实验内容融入进去,形成一种新的计算机教学实验方式。该系统的形象直观,总体界面友好,具有开放性,便于学生对所学理论知识的理解,大大提高教学的效果和效率。现在大多数高校都借助于MATLAB进行辅助教学,MATLAB语言是一种非常适合信号分析与处理的语言,它的使用对学生理解数字信号处理中的许多基本理论起到极其重要的作用。MATLAB具有强大的图形用户界面生产能力,用户可以根据自己的需要设
24、计图形界面。本实验系统以MATLAB为开发平台,保证了该系统具有一定的通用性,它采用图形交互的界面,不仅可以用于实验教学,也可以用于辅助理论教学,操作起来非常方便,形象直观。它开发了基本信号的产生,常用序列的计算,傅里叶变换,滤波器的设计等MATLAB辅助分析与设计实验。通过这个实验系统,可以将数字信号处理课程中许多抽象的理论知识形象地表示出来,使得原先实验中较难观察到的现象以及繁琐的设计计算等,都能较简单的解决。该实验系统为学生提供了一个形象而全面的演示,激发学生的学习兴趣,加深学生对数字信号处理课程中理论知识的理解。1.3 设计的目标任务在许多高校的相关专业,数字信号处理都被列为专业必修课
25、。但是,它涉及的知识广泛,包括微积分、概率论、信号与系统等。学生在学习这方面的内容的时候,通常感觉比较抽象,对其中的基本理论和分析方法难以具体地理解和掌握。目前,我校的数字信号处理课程总共48个学时,其中有6个实验学时,要想在这么短的时间内让学生较好地掌握数字信号处理的理论知识,这是比较困难的,所以可以利用MATLAB友好的人际交互界面,制作出形象、开放的教学实验系统,以此达到帮助学生更好的掌握数字信号处理理论知识的目的。第2章 数字信号处理与开发环境的简介2.1 数字信号处理的简介随着信息技术的高速发展,信息时代和数字世界悄然到来,数字信号处理已成为一门重要的学科和一个极其重要的科学领域。它
26、被广泛地应用于电子信息工程、通信工程、语音、图像、自动控制、雷达、遥感和生物工程等众多领域。数字信号处理是把信号用符号或者是数字的形式表示成序列,通过通用(专用)信号处理设备或计算机,用数值计算的方法进行各种处理,它的目的是对真实世界的连续模拟信号进行测量或滤波,达到提取有用信息并加于利用的效果,例如检测、变换、增强、参数提取、频谱分析等。数字信号处理系统具有以下一些明显的优点:(1)精度高。模拟网络的精度由元器件决定,模拟元器件的精度很难达到10-3以上,而数字系统只要14位字长就可达到10-4的精度。在高精度系统中,有时只能采用数字系统。(2)灵活性高。数字系统的性能主要由乘法器的系数决定
27、,而系数是存放在系数存储器中的,只需改变存储的系数,就可得到不同的系统,比改变模拟系统方便得多。(3)可靠性强。因为数字系统只有两个信号电平“0”、“l”,因而受周围环境温度以及噪声的影响较小,而模拟系统,各元器件都有一定的温度系数,且电平是连续变化的,易受温度、噪声、电磁感应等的影响。如采用大规模集成电路,可靠性就更高。(4)容易大规模集成。这是由于数字部件有高度规范性,便于大规模集成、大规模生产,对电路参数要求不严,故产品成品率高。尤其是对于低频信号,例如地震波分析,需要过滤几赫兹到几十赫兹信号,用模拟网络处理时,电感器、电容器的数值、体积和重量都非常大,性能亦不能达到要求、而数字信号处理
28、系统在这个频率处却非常优越。(5)时分复用。也就是利用数字信号处理器同时处理几个通道的信号。处理器运算速度越高,能处理的信道数目也就越多。(6)可获得高性能指标。例如对信号进行频谱分析,模拟频谱仪在频率低端只能分析到1OHz以上频率且难于做到高分辨率(足够窄的带宽),但在数字的谱分析中,已能做到10-3Hz的谱分析。又如有限长冲激响应数字滤波器,则可实现准确的线性相位特性,这在模拟系统中是很难达到的。(7)二维与多维处理。利用庞大的存储单元,可以存储一帧或数帧图象信号,实现二维甚至多维信号的处理,包括二维或多维滤波、二维及多维谱分析等。数字信号处理系统也有其局限性,例如,数字系统的速度还不算高
29、,硬件的速度也只在几十兆赫以下,故不能处理很高频率的信号。另外,系统比较复杂,因而价格昂贵等也是其缺点。2.2 MATLAB简介与特点2.2.1 MATLAB的简介MATLAB是矩阵实验室(Matrix Laboratory)的简称,MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接
30、其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。GUIDE(Graphical User Interface Development Enviroment)是MATLAB中一个专门用于GUI程序设计的向导设计器,通过GUIDE可以很方便地设计出各种符合要求的图形用户界面,用户可以根据提示完成新界面的制作,却不必了解新界面内部是如何工作的。GUI设计既可以以基本的MATLAB程序设计为主,也可以用鼠标利用GUID工具进行设计,也可以综合以上两种方法进行设计。2.2.2 MATLAB的特点(1)友好的工作平台和编程环境 MATLAB
31、由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。 (2)简单易用的程序语言 Matlab一
32、个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C语言基础上的,因此语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。 (3)强大的科学计算机数据处理能力 MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,
33、可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C+ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。 (4)出色的图形处理功能
34、MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MAT
35、LAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。 (5)应用广泛的模块集合工具箱 MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原
36、型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。 (6)实用的程序接口和发布平台 新版本的MATLAB可以利用MATLAB编译器和C/C+数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C+代码。允许用户编写可以和MATLAB进行交互的C或C+语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科
37、专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。 (7)应用软件开发(包括用户界面) 在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。 第3章 实验系统方案设计3.1 系统的基本模块 基于MATLAB强大的功能,许多高校数字信号处理课程的实验都是以MATLAB作为仿真工具。本文利用MATLAB的GUIDE工具箱设计并实现了数字信号处理教学实验系统的图形用户界面GUI、实验主界
38、面和实验子界面。这些界面以按钮、静态文本、编辑框和坐标轴等友好界面形式构成,即便是不理解MATLAB程序,也可以很方便地使用,系统内容丰富,结果直观易懂,便于分析。通过该实验系统,将MATLAB软件与多媒体硬件相结合,形成一种新的计算机辅助教学方式,有助于提高学生学习的效率,帮助学生理解课堂数学理论。该实验系统提供的主要功能有:友好的用户界面和数据图形结果输出。本系统按功能要求主要划分以下几个模块:GUI模块、实验主界面模块、实验结果和实验内容模块。GUI模块是一个主界面,实验主界面模块根据数字信号处理课程的重点和难点选择了几个典型的实验。在对实验教学系统的各界面开发过程中,需要对MATLAB
39、的图形用户界面的功能有充分的理解,包括静态文本的输入、数据的读入、按扭的响应、坐标轴的链接等。整个系统的功能结构如图1所示。 GUI界面退出实验主界面退出实验子界面实验结果实验内容退 出返 回退出 图3.1 系统流程图首先进入GUI主界面,让用户可以自由选择想了解的内容和实验。在每个实验的窗口上又分别安放了实验内容和实验结果,学生可以通过实验主界面了解想要了解的知识,也可以通过输入参数得到不同的实验结果,即把几个实验放在一个界面上,这样便于比较和分析。此实验系统既利于教师在课堂教学,也为学生在课后自学提供了便利。3.2系统设计步骤在该系统的设计中,界面布局设计是自顶向下的,即先设计GUI界面,
40、再设计各个实验子界面,界面上包括按钮、坐标轴、文本框等控件。界面设计完成后,只是一些静态的画面,而没有实际操作意义,还不能用于实验操作,想要达到实验演示和分析的功能,还必须借助于callback函数调用一系列的程序。在设计中,各个回调函数的编写顺序则是自底向上的,即先编写各个子界面中的回调函数下的程序,再编写GUI界面的回调函数下的程序。其设计的具体操作步骤如下:(1)使用MATLAB图形用户界面开发环境GUIDE提供的一系列创建用户图形界面工具,设计整个系统的GUI界面、实验主界面和各个子界面。(2)分别编写各个子界面的各个控件对象的回调函数下的一系列程序,以实现控件相应的控制功能,达到直接
41、通过界面上各个控件就可以控制数据的输入,并可以方便、直观地对实验内容及实验结果进行对照分析。(3)编写GUI界面的回调函数下的程序,将各个子界面整合在GUI界面中,即通过GUI界面就可以进入任何一个子界面并进行操作。3.2.1创建GUI创建Matlab GUI界面通常有两种方式:第一种,在 .m文件中动态添加,即自己编写程序,设置参数;第二种,使用GUIDE帮助创建GUI;在Command 里面输入 GUIDE 或者从菜单里面,或者从快捷按钮均可进入 GUIDE。新建并且保存后,会生成相应的fig文件和m文件,在Layout编辑视图中,可以使用如下工具:Layout Editor:布局编辑器;
42、Alignment Tool:对齐工具;Property Inspector:对象属性观察器;Object Browser:对象浏览器;Menu Editor:菜单编辑器。3.2.2 使用控件新建一个布局(窗口),可以在新窗口中添加如下控件1静态文本(Static Text) 2编辑框(Edit Text)控件3列表框(Listbox)控件 4滚动条(Slider)控件5按钮(Push Button)控件 6开关按钮(Toggle Button)控件7单选按钮(Radio Button)控件 8按钮组(Button Group)控件9检查框(Check Box)控件 10列表框(Listbox
43、)控件11弹出式菜单(Popup Menu)控件 12坐标轴(Axes)控件13面板(Panel)控件每一个控件都有自己的属性常规属性。1.控件风格和外观(1)BackgroundColor:设置控件背景颜色,使用R G B或颜色定义。(2)CData:在控件上显示的真彩色图像,使用矩阵表示。(3)ForegroundColor:文本颜色。(4)String属性:控件上的文本,以及列表框和弹出菜单的选项。(5)Visible:控件是否可见。2.对象的常规信息(1)Enable属性: 表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可。(2)Style:控件对象类型。(3)T
44、ag:控件表示(用户定义)。(4)TooltipString属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息。(5)UserData:用户指定数据。(6)Position:控件对象的尺寸和位置。(7)Units:设置控件的位置及大小的单位。(8)有关字体的属性,如 FontAngle, FontName等。 3.控件回调函数的执行(1)BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)。(2)ButtonDownFcn属性:按钮按下时的处理函数。(3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属
45、性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值。(4)CreateFcn:在对象产生过程中执行的回调函数。(5)DeleteFcn:删除对象过程中执行的回调函数。(6)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数。4.控件当前状态信息(1)ListboxTop:在列表框中显示的最顶层的字符串的索引。(2)Max:最大值。(3)Min:最小值。(4)Value:控件的当前值。可以使用属性编辑器来设置属性3.2.3 写回调函数 CallBack 每个控件都有几种回调函数,右键选中的控件一般会有如下菜单:然后就可以跳转到相应的 Editor中编辑代码,GUIDE会自动生成相应的函数体,函数名,名称一般是控件 Tag+ Call类型名参数有三个( hObject, eventdata, handles),其中hObject为发生事件的源控件,eventdata为事件数据结构,handles为传入的对象句柄,CreateFcn 是在控件对象创建的时候发生(一般为初始化样式,颜色,初始值等),DeleteFcn 实在空间对象被清除的时候发生,ButtonDownFcn和KeyPressFcn分别为鼠标点击和按键事件Callback,CallBack为一般