龙源期刊网 http://www.qikan.com.cn
信号与系统软件实验室的设计与实现
作者:陈晓娟 韩雅茹
来源:《职业时空》2008年第09期
一、介绍
“信号与系统”是一门实用性较强、涉及面较广的专业基础课。但同时“信号与系统”也是一门以数学推导为核心的理论性很强的学科,它的概念比较抽象,数学计算比较繁琐。如果没有实践性教学环节,只靠黑板式的单一教学方式,学生只能依靠做习题来巩固和理解所学知识,而大量应用性较强的内容学生则不能实际动手设计、调试和分析,那么教学中的负面效应将会越来越突出。因此,实验在课程学习中起着很重要的作用。纯粹的硬件实验常常是通过模拟仪器、搭建硬件电路来实施的,实验的灵活性和实时性较差。硬件实验需要的仪器仪表价格昂贵,要开多少组实验,就要重复准备多少套装置,且一套装置只能做一种实验。
为了克服纯粹硬件实验的困难,近年来,计算机软件仿真实验技术得到了广泛应用,并取得了一定的研究成果。利用教学辅助软件帮助学生完成数值计算、信号分析的可视化建模及仿真调试是对传统教学手段的跨越性改进。具体来说,有以下几个优点:(1)实验成本低,且实验器材的选择余地大。(2)易于实现较为复杂的实验过程。(3)实验所需时间较少,实验效率高。(4)不必担心损坏实验设备,能轻松地进行边缘情况的实验。(5)便于记录和分析实验过程和实验结果。
而计算机仿真实验不仅投资小,还可达到相同的甚至于更好的实验结果。一般高校的计算机装备水平都比较好,只要开发得心应手的软件,便能充分利用计算机资源,达到资源共享。软件实验系统又具有可扩展性,随着课程内容范围的扩大,可随时增加实验内容。因此,本论文提出了一种基于MATLAB的信号与线性系统仿真实验系统平台的设计和实现方案。这一实验平台采用了将MATLAB和Visual Basic有机结合的方法,使用者能够获得较为真实的实验感受,对信号处理有一个更深层次的理解。
二、信号与系统软件实验室
1.信号与系统软件实验室组成
龙源期刊网 http://www.qikan.com.cn
信号与线性系统的课程实验包括信号分析,时频域变换、分析等等,因此本实验系统设计了基本性实验、设计性实验、综合性实验三块,要求学生完成主要的实验任务,并通过本系统友好的主机界面来进行分析,输出结果可在VB界面上以图形显示出来。这三块实验系统基本覆盖了信号与系统课程的全部内容。实验中每一菜单的信息框阐述了有关实验内容的基本概念、基本性质及实验步骤。演示框如同通用示波器,显示了信号分析与系统设计的动态仿真过程。
2.VB与Matlab混合编程
信号与系统软件实验室主要采用MATLAB进行开发。但由于信号与线性系统实验包含了很多复杂的信号处理计算和图象,完全由MATLAB来开发具有相当的难度和庞大的工作量。因此,在实验中采用了MATLAB与VB混合编程的方法,采用了几种MATLAB与VB的集成技术。
(1)利用ActiveX自动化。ActiveX自动化是ActiveX的一个协议,它允许应用程序采用VB与MATLAB或组件控制另一个应用程序或组件的运行,它包括自动化服务器或控制器。MATLAB可以作为自动化服务器,可以由其它应用程序编程驱动。MATLAB支持COM技术,它提供了一个自动化对象,其外部名称是Matlab.Application,其它程序通过COM技术提供的函数得到自动化对象支持的接口指针,通过调用接口函数便可控制和使用自动化对象了,利用这一特性用户可以非常方便地在应用程序中调用MATLAB命令,向MATLAB输入数据,使用MATLAB功能丰富的工具箱,完成所需要的设计,获取数据图形结果。
利用ActiveX进行VB和Matlab的交互通信时,所采用的Matlab语句是直接使用Matlab提供的函数和图形库命令。该方法编程效率高,但程序的执行必须在Matlab环境下,这样会占用内存,使程序的执行速度受一定影响。
(2)利用DDE技术。动态数据交换(简称DDE)是一种开放的、与语言无关的、基于消息的协议,它是应用程序通过共享内存进行进程间通信的一种形式。DDE方式运行时必须打开Matlab的命令窗口。程序编码简单但占用系统资源多,效率低下,功能相对较弱。把Matlab文件编译成VB可以执行的DLL文件,执行的效率高,但当M文件一旦编译成功之后,其功能就不能变化,所编程序的数据交换能力弱。
(3)采用动态链接库DLL方法。Matcom是一个从MATLAB到C++的编译器,它可以节省用户的运算时间和内存要求。
(4)利用文件实现VB与MATLAB的数据交换。利用VB和MATLAB的混合编程,主要是想利用VB方便、简洁的功能来设计美观的应用程序界面和MATLAB强大的计算、图形表达能力来完成所需的系统功能设计。
龙源期刊网 http://www.qikan.com.cn
本文利用ActiveX技术和文件传递数据来实现了VB与MATLAB之间的动态数据交换。 在VB应用程序中创建了Matlab的ActiveX对象后,就可以使用这个对象所包含的各种方法来实现对Matlab的调用。 3.设计步骤
软件开发的主要工作是根据信号与线性系统课程的特点,为用户设计一个美观、简洁、明了的操作界面,使教师和学生不需要VB和MATLAB知识就能掌握和应用,操作尽量简单。为了实现这一目标,软件接口界面按照如下方式设计:
(1)菜单界面:根据信号与线性系统课程的内容特点,在主菜单页上排列四项该软件的主要功能,每项功能的子窗口页上有该项功能所包含的主要内容,其功能和操作方式一目了然。各操作窗口页面的切换按照Windows程序操作规范设计,操作简单。使用者只需要掌握应用软件操作方法,就能使用本软件。
(2)数据选择:数据选择采用统一格式的数据输入对话框。操作者只需要掌握了课程有关章节的内容,选择所需要的数据,就能完成分析任务。
(3)结果输出:计算结果输出尽量采用直观的图形显示方式。结果大多保存在单独的图形窗口中,用户可以根据需要保留多次的计算结果,以便进行分析比较。
三、信号与系统软件实验室实现
当用户在主机上进行实验操作时,主机进入相应的实验模块进行计算,计算结果随即被存入已设定好的内存空间,并将数据进行相应处理,得出的图象通过VB的调用显示到VB界面上,学生就可以看到最终的实验结果波形。名称是Matlab.Application,其它程序通过COM技术提供的函数得到自动化对象支持的接口指针,通过调用接口函数便可控制和使用自动化对象了,利用这一特性用户可以非常方便地在应用程序中调用MATLAB命令,向MATLAB输入数据,使用MATLAB功能丰富的工具箱,完成所需要的设计,获取数据图形结果。 (1)基本性实验。①信号及其运算的软件实现:连续信号的实现、离散信号的实现、信号运算的实现等。②时域分析的软件实现:连续时间系统的零状态响应、连续时间系统的冲激响应和阶跃响应、离散时间系统的零状态响应、离散时间系统的冲激响应和阶跃响应、卷积的计算等。③频域分析的软件实现:、周期信号的频域分析、非周期信号的频域分析、系统的频率特性分析、连续时间系统的s域分析、离散时间系统的z域分析等。(2)设计性实验:虚