本科毕业设计-公选课结课论文—基于java与matlab集成的数字通信原理虚拟实验平台的设计与实现.doc

上传人:教**** 文档编号:87908148 上传时间:2023-04-18 格式:DOC 页数:15 大小:251.50KB
返回 下载 相关 举报
本科毕业设计-公选课结课论文—基于java与matlab集成的数字通信原理虚拟实验平台的设计与实现.doc_第1页
第1页 / 共15页
本科毕业设计-公选课结课论文—基于java与matlab集成的数字通信原理虚拟实验平台的设计与实现.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《本科毕业设计-公选课结课论文—基于java与matlab集成的数字通信原理虚拟实验平台的设计与实现.doc》由会员分享,可在线阅读,更多相关《本科毕业设计-公选课结课论文—基于java与matlab集成的数字通信原理虚拟实验平台的设计与实现.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 淮 阴 工 学 院公选课结课论文作 者:学 号:学 院:经济管理学院专 业:信息管理与信息系统题 目:基于Java与MATLAB集成的数字通信原理虚拟实验平台的设计与实现2014年11月1绪论1.1研究背景1989年,美国Virginia大学的钻ilialnwulf教授提出了“虚拟实验室”【1】的概念也称为“合作实验室(cof一Laboratory)”,它用来描述一个计算机网络化的虚拟实验环境。它致力于构筑一个综合不同工具和技术的电子化、网络化的科学研究集成环境。在这个环境里,科学家们可以非常有效地利用地理上分布的各种资源(数据、信息、设备、人力)来从事科研活动。wulf形象地把虚拟实验室称

2、为“无墙的研究中心”【2】。所谓虚拟实验室就是以计算机网络为核心,将虚拟仪器通过网络连接起来,以实现数据采集、分析、远程操作的一个系统。它主要具有如下特点:(1)虚拟实验室具有开放性、直观性。利用虚拟实验室,通过网络能实现远程异地为学习者实时或跨地域地提供图文、音像并茂且丰富多彩的人机界面,配合先进的传感测试技术,利用计算机的模拟功能、动画效果实现缓慢过程的快速化或快速过程的缓慢化,并把误操作后可能产生的报废或爆炸情况模拟地显示出来,对有毒有害、污染环境和破坏性实验,也可以在虚拟实验室内完成,实现经济效益和社会效益的双赢。(2)虚拟实验室更新快捷,易于扩充维护,操作方便。当今社会一方面是科学技

3、术的飞速发展,新技术、新设备、新工艺不断出现,加快了仪器设备的更新换代;另一方面高等教育经费与日益扩大的招生规模相比相对不足,难以大量购买高、新、尖仪器设备,教学多只能演示,难以满足实验教学科研的需要。而虚拟实验室可随时开放,反复实践,满足学生的求知欲,提高动手能力。(3)虚拟实验室可降低经费成本,提高教学科研效益。虚拟实验室的建立能有效降低耐用品的消耗量,避免设备的重复购置,提高教学科研效益。虚拟实验室操作方便,不受实验条件的影响,没有实验时间的限制,灵活方便可移植,充分实现资源共享。随着Intemet的发展,虚拟实验室呈现出网络化的趋势,即在客户端不需要任何的安装和维护工作,可直接通过网络

4、访问远程的虚拟实验室,这种实现方式代表着当前虚拟实验室研究发展的一个新的方向3。1.2课题的研究现状国内外有很多组织都已经开展了虚拟实验系统的研究和建设工作,特别是在一些著名的大学和虚拟实验室中,已经建好并投入使用的虚拟实验系统也不少。新加坡国立大学建立的网络虚拟实验室【4】,利用了JavaAPplet来控制远程硬件实验设备。美国亚利桑那州立大学采用JavaAPPlet技术开发的数字信号处理编辑器J一Dap5,可以让用户通过,web浏览器实现跨平台访问。与西方发达国家相比,国内在虚拟实验方面开展的工作还不多。德国Ruhr大学网络虚拟实验室。该实验室是一个有关控制工程的学习系统,它通过直观的三维

5、实验场景视觉效果,依赖各虚拟实验设备的仿真特性,实现对虚拟实验的交互式操作6。目前从网上可查到的信息和各院校开放的对外服务看,国内清华大学、北京大学、上海交通大学、华南理工大学、中南大学等高校己陆续在网上设立了自己的电子教室。其中有少数电子教室提供了有限的虚拟实验服务,如中南大学信息科学与工程学院建立了一个数字图像处理网上虚拟实验室7,学生可以通过联网计算机终端来进行仿真实验。华中科技大学机械学院建立的工程测试网上虚拟实验室,学生可以通过联网计算机终端来进行仿真实验。上海电视大学的虚拟炒股和虚拟法庭网上实验室也是一个很好的例子。中央广播电视大学远程教育学院建设的虚拟校园采用基于Intemet的

6、类游戏图形引擎,在此基础上,将网络学院的诸多具体功能整合在图形引擎中,突破了目前对虚拟校园的应用仅仅停留在校园一般性浏览的应用上,并作为基础平台进行大规模应用,取得了较好的效果,这种基于虚拟校园的思想搭建远程教育基础平台,并以学员为中心,构想一些实际的教学功能,在虚拟校园的应用方面进行了有益的尝试8文献描述了虚拟生物学实验室的设计与开发,该系统是以JavaApPlet作为客户端,以JavaBean的形式实现实验组件,用XML来描述应用和实验数据;文献巧提出的基于Internet虚拟实验室平台是以Java语言实现的,客户端是JavaApPlet,设备组件由JavaBean实现。该实验室以组件的方

7、式提供具体的仪器设备,用户可视化地定制自己的实验流程。这些虚拟实验环境有着组件重用、平台独立、可扩充性等特点。但这些虚拟环境的开发普遍存在着开发周期较长、组件实现工作量大等缺陷。因此,人们尝试着将Java与其他软件集成来解决当前存在的问题。1.3虚拟实验平台中基于Java与MATLAB集成开发的提出由于虚拟实验平台上组件开发存在一些难点,开发人员尝试用集成方式来克服上述问题。通常,在采用纯Java来集成MATLAB的方案中,通常有如下几种方案【9】:1.利用CORBA实现连接。CORBA定义了一个开放的分布对象总线(对象请求代理ORB)标准,允许分布式对象应用程序之间进行互操作,不管这些应用程

8、序采用什么语言编写或驻留在什么地方,可实现对Java对象以及非Java对象的远程调用,并可采用一种“位置透明”的形式与传统的系统进行沟通。CORBA对象是标准的软件对象,具有语言独立性。每个CORBA对象有一个清晰定义的接口,该接口用CORBA接口定义语(hiterface Definition Language,IDL)来定义。虽然利用CORBA技术可以实现应用程序之间的相互操作,MATLAB语言是解释性语言,Java是编译性质的语言,不能利用IDL实现Java与MATLAB之间的通信。要解决这个问题,可以借助C或C+语言,因为CORBA可以实现Java与C+之间的通信,而MATLAB提供了

9、C+语言的编程接口。这样客户端和服务器端使用相同的IDL接口,客户端利用Java语言编程,并用Java编译器进行编译,产生客户端ORB。服务器端利用C+编程调用MATLAB的接口函数,并用C+译器编译,产生服务器端ORB。这样通过IDL实现了客户端对服务对象的方法调用。2.利用MATLAB的COMBullder连接。COM由一组规范和一个系统级的实现构成,这组规范由COM核心、结构化存储、统一数据传输以及智能命名构成。其中,COM核心定义了软件组件的对象与客户通过接口进行交互通信的规格说明;结构化存储定义了复合文档的存储格式,以及创建文档的接口;统一数据传输定义了组件之间数据交换的标准接口;智

10、能命名给予对象一个系统可识别的名字。对于COM客户来说,使用组件功能只能通过调用组件的接口函数完成。3.利用JNI技术和MATLAB引擎函数实现连接。JNI(sunMierosystems,2003)是定义Java程序如何调用非Java程序的一种方法,已成为公开的标准。JNI使在JVM中运行的Java代码可以调用原生函数(nativemethods)。而且,通过调用API,甚至JVM都可以被嵌入到其他非Java的系统中。目前的JNI设计只能用来和C或C+所写的原生函数(nativemethods)相连接,MATLAB提供了C/C+语言的接口函数,这恰好可以满足调用的需求。我们可以利用JNI技术

11、,实现在Java程序中调用使用了MATLAB引擎函数的C/C+原生函数,这就实现了Java对MATLAB的功能调用。这三种方法,各有其优缺点,在应用时应根据实际情况选择合适的方法。通过coRBA或JMs等技术,优点是它完全遵照技术标准,可以实现对MATLAB的远程的调用,但正由于这种方法的标准,使开发变的复杂,不利于快速的开发,而且集成异构软件的通信时间比较长。利用MATLABCOMBullder的方法,不受操作系统平台的限制,只需要安装MATLAB的组件,集成后的系统可以在不安装MATLAB的环境中完成MATLAB的功能。但是其必须针对特定的功能生成特定的COM组件,通用性差。利用JNI技术

12、,虽然失去了与平台独立的优越性,必须针对特定的操作系统设计程序,并且在运行的系统中必须安装MATLAB,但由于这种开发的方法存在了开源的调用程序库,可以快速的实现对MATLAB的调用,在不要求平台无关的情况下是一种很好的选择。现在已有一个叫做JMatLinkIZI的开源应用,它利用C语言的本地方法调用MATLAB引擎函数,并把包含C语言原生函数Java类集成到该应用中,利用该类库中的方法,可以方便的在Java程序中实现初始化MATLAB工作空间,向MATLAB工作空间读写数据等操作。因此,在己有技术支持的条件下,将与MATLAB集成到虚拟实验平台上开发数字通信原理课程的实验室将是十分有价值的。

13、2数字通信实验平台的需求分析和总体设计2.1平台的需求分析及其功能划分2.1.1平台的需求分析随着数字化技术的发展,数字通信原理由80年代的专业课已转变为一门专业基础课。该课程的实验对学生理解和掌握一些理论知识有着指导意义。一般来说,在考虑实验平台的开发过程中,要充分从该课程的特点,实验环境及教学对实验的要求等方面来进行分析。1.从课程的特点来看,数字通信原理是一门理论性很强的基础课程,成为很多高校的本科教学的必修课程,该课程的重要性不言而喻。而实验对学生和老师在学与教上起着相辅相成的作用,理论课程的学习脱离不了实验环节的支撑,而实验的实施也是要以课程为基础。因此,在课程的教与学的同时,一定要

14、参与到实验课程当中来,对课程的学习和教育科研来说,能在一定程度上起到推动作用。2.从实验的环境来看,真实条件下的实验环境受人员、场地、时空和设备等的限制,它们成为了教学实验的瓶颈。在对真实实验的充分把握下,我们需要开发的数字通信原理虚拟实验室应该要能符合现代教学的特色,能够满足多用户的使用要求,并能克服现有的物理设备存在的一些不足。在基于这些角度的考虑后,虚拟实验室应该具有下列一些特性:(l)需采用基于Iniemet的B/s模式。客户端通过浏览器登录到虚拟实验室的用户界面,通过因特网与服务器方进行通信。利用这么一个特性,解决了用户的时空和场地的限制,同时客户端的开发应该与用户使用的操作系统独立

15、。(2)应该解决多任务、多用户访问的问题。对于使用者而言,虚拟实验环境当然是不能受到单一和访问的限制,他们希望自己可以在不同地方或者不同时间来做实验。因此,我们在开发的过程中,需要考虑实验平台的多功能性、分布式访问等要求,为用户提供一个友好交互的实验平台。(3)灵活、动态和逼真的仿真效果。实验的结果对使用者来说最为关键,对其理解一门课程相当重要。在设计时,需要考虑到实验的效果是否能接近和达到真实的实验效果。(4)具有丰富的虚拟实验设备。由于该课程本身的实验比较多,需要的设备又较为苛刻,因此平台的实验设备组件要根据要求尽量丰富,方便用户实验时进行选择。(5)可交互、可扩展。对于用户而言,在实验过

16、程中,应该能参与到实验中来,通过更改实验设备的属性,能获得用户需要的结果;同时,应该提供一个用户有新算法要进行验证或者提交的功能,另外,开发人员在熟悉开发规则后能在短期内进行组件的开发以此扩充实验设备组件。3.从教学的要求来看,将开发的实验室应该尽量逼真的实现物理设备的功能,包括实验的步骤、实验要求、实验的结果等,都要能严格按照教学的要求,同时也要能起到实验教学的目的,为课程的教学起一个推动作用。那么,数字通信原理虚拟实验平台应该紧紧围绕这门课程,按照教学的要求来进行设计和实现。4.从实验的教学角度来看,数字通信原理课程中,比较重要且又经常用到的实验主要包括滤波、脉冲编码调制、信号的频谱分析、

17、数字通带调制解调、数字基带信号传输等几大类的实验。因此,数字通信实验平台所需开发的组件主要包括信号发生器、叠加器、示波器、FIR滤波器、巴特沃思滤波器、非均匀PCM量化编码器、快速傅立叶幅频变换器、快速傅立叶相频变换器、通带调制解调器等。2.1.2平台的功能划分基于Intemet的数字通信原理虚拟实验平台,在功能上分别从服务器端和客户端来划分。在服务器端,功能方面包括两个部分:一部分是实验设备组件的发布;另一部分用来侦听远程用户的请求,并响应其请求同时调用服务器上的异构软件MATLAB进行计算处理,然后返回计算结果给远程用户。由于服务器方侦听的请求有着多且并发的特点,因此,服务器方在处理这些请

18、求时需要有一个良好的后台调度机制来服务这些请求。在客户端,主要功能包括提供友好可交互的实验界面、在该实验界面中来设计实验流程、调整设备参数值、运行实验流程输出结果以及动态注册实验组件、保存实验流程和在线提示等。实验的动态仿真效果也是开发过程中一个要考虑的重要功能。2.2平台的体系结构采用JMatLink来集成Java与MAILAB的数字通信原理虚拟实验平台利用面向对象的设计方法分别从客户端和服务器端来进行设计。客户端需要开发用户实验操作界面和虚拟实验设备,远程用户可以在用户操作界面中选择实验组件,根据真实实验定制实验流程,然后点击运行按钮,执行后得到实验结果。服务器端主要包括虚拟实验设备的Ja

19、vaBean组件库、组件注册XML文件库及处理用户请求并与MATLAB进行通信的VirtualLabserver(VLS)模块。图2-1为数字通信原理虚拟实验室的系统结构图。在这个远程虚拟实验室平台上,远程用户从访问到完成整个实验过程:浏览器Java AppletJava虚拟机HostInternetServerWebServerJava类文件VLSJMatlink组件XMLMATLAB图2-1数字通信原理虚拟实验平台体系结构2.3平台的运行环境平台运行环境包括客户端运行环境和服务器端运行环境。客户端需要具有解释Java字节码的虚拟机,服务器端提供Web服务器一Tomcat应用服务器。下面针对

20、这两个部分具体介绍系统运行环境。1.客户端运行环境虚拟实验室使用J2SE语言开发,具有Java语言特有的跨平台性。只要计算机系统具有解释Java字节码的JVM,即可在该计算机上执行Java,所以它可以运行在几乎所有流行的操作系统之上。如微软的WindowS系列,如Windows98、WindowsMe、WindowsNT、Windows2000系列、Sun公司的Solaris、苹果公司的Macintosh以及Linux和Unix操作系统等。用户可以通过两种方式进入虚拟实验室,第一种方式是使用支持Java的浏览器。不过Netscape和Internetexplorer的不同版本支持不同版本的Ja

21、va,所以使用正和Netscape6.0以下版本的浏览器需要用户自己安装相应版本的Java插件(JavaPlug一in)。目前虚拟实验室使用的JDK的版本是1.4。第二种方式是使用WebStart技术进入虚拟实验室,采用webstart斌技术会自动安装相应的JDK运行环境。2.服务器端运行环境服务器端主要提供Web服务器,可以安装在一台Windows2000Server或WindowsNT上。在Windows2000Server或WindowsNT上安装服务器,可以选择11S5.0或其他web服务器。也可以选择其他平台充当web服务器,如Linux十APache等。在该平台上,我们采用Tomc

22、at5.5进行相关的组件、属性文件等发布的服务。3数字通信实验平台的详细设计与实现3.1Java与MATLAB的通信机制3.1.1JMatLink简介1999年,德国的StefanMueller博士成功的在Java与MATLAB之间架了一个桥梁一JMatLink接口,使得Java能方便调用MATLAB计算引擎的函数库。经过多年不断地改进,现今已是一个成熟的软件产品。JMatLink中所有的方法都是native方法,native方法其实是用C语言编写的方法的存根。这些方法是一些不需要改变源码就能被Windows95/98/NT/2000和各种UNIX平台所支持的框架。3.1.2JMatLink的

23、内部机制为了实现Java与MATLAB的通信,JMatLink主要应用了JNI技术,因为相比较来看JNI方便快捷、稳定可靠,并能实现实时通信。JNI主要解决服务之间如何连接的问题。它由以下几部分组成:(l)基础结构。它提供了在分布式系统中把服务组织成联邦的一组构件;(2)程序设计模型。它支持并鼓励可靠的分布式服务产品;(3)服务。它可成为联邦JNI系统组成的一部分,为联邦的其它成员提供功能。在Java与MATLAB的集成过程中,Java应用程序使用JMatLink来实现调用MATLAB的引擎函数进行相关的数据处理。两者的通信机制如图3-1所示,首先JMatLink通过JavaJNI技术来定位和

24、调用本地方法,导入jni.h文件和JMatLink.h文件并将C/C+编写的文件编译成动态链接库JMatLink.dll,同时引入Matlab.lib,Matlab.lib文件中包含了MATLAB引擎函数,当Java应用程序需要和MATLAB通信时,先把JMatLink.dll载入内存中,Java应用程序通过调用内存中的JMatLink.dil的函数实现与MATLAB引擎函数的通信,进而实现调用MATLAB库函数。这样Java就可以实现与MATLAB的通信了。Java方JNIJMatLink.cJMatlink.dllJni.hEngine.hMatlab.libMATLAB工作区间JMatL

25、ink图3-1Java与MATLAB间的通信机制通过这样一种方式实现了Java和MATLAB中异构对象的通信,他们之间的通信实际是要完成二者间参数的传递。而参数的传递主要通过JMatLink创建的对象engine,然后通过该对象执行其方法来调用MATLAB引擎函数,可以打开一个引擎连接,建立引擎连接后,engine把要执行的命令和数据作为参数送到MATLAB的工作区间,所有的命令和待计算数值都以字符串的数据格式进行传递,待String型参数到达MATLAB工作区间后,MATLAB调用相关库函数对其进行处理,再由MATLAB引擎函数把计算结果返回给Java应用程序。应用程序获得处理结果后可以关闭

26、MATLAB引擎。当Java应用程序要与MATLAB通信时,我们采用JMatLink来联接Java和MATLAB,对于两者的通信来说,本地方法可以在编写的Java application,apPlets和servlets中调用MAILAB的计算引擎。3.2服务器端主要模块的设计与实现3.2.1服务器管理界面对于服务器管理模块而言,应当实现服务的启动、管理人员对日常工作的一些配置、控制和维护以及对MATLAB的打开与关闭等。为了能很好的完成该模块的功能,首先采用swing技术开发了服务管理界面,如图3-3所示,该界面为操作人员的图形化窗口,方便其使用。该管理界面主要完成如下功能:(l)在web服

27、务器发布服务后,用户发送调用请求之前需初始化,打开该操作界面;(2)当后台运行接受到用户请求时,将解析后的数据流的相关信息进行显示,方便管理人员进行查看,其中信息包括客户端IP地址、来自哪个组件及连接状况;(3)打开和关闭MATLAB计算引擎;(4)其他一些辅助功能,包括配置、退出服务、日志的显示等。图3-2服务管理的图形用户界面3.2.2线程池的详细设计诸如web服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如HTTP、FTP或POP)、通过JMS队列或者可能通过轮询数据

28、库。不管请求如何到达,服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。构建服务器应用程序的一个过于简单的模型应该是:每当一个请求到达就创建一个新线程,然后在新线程中为请求服务。实际上,对于原型开发这种方法工作得很好,但如果试图部署以这种方式运行的服务器应用程序,那么这种方法的严重不足就很明显。每个请求对应一个线程(thread-per-request)方法的不足之一是:为每个请求创建一个新线程的开销很大;为每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源要比花在处理实际的用户请求的时间和资源更多。除了创建和销毁线程的开销之外,活动的线程也消

29、耗系统资源。在一个JVM里创建太多的线程可能会导致系统由于过度消耗内存而用完内存或“切换过度”。为了防止资源不足,服务器方需要一些办法来限制任何给定时刻处理的请求数目。线程池通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。其好处是,因为在请求到达时线程已经存在,所以无意中也消除了线程创建所带来的延迟。这样就可以立即为请求服务,使响应更快。而且,通过适当地调整线程池中的线程数目,也就是当请求的数目超过某个阂值时,就强制其它任何新到的请求一直等待,直到获得一个线程来处理为止,从而可以防止资源不足。3.2.3后台调度模块的设计对于服务器而言,由于服务器应用程序运行时,端口一直处在侦听状态

30、,当有请求发生时,如果连接成功,将其放到任务队列,如果没有连接成功需等待下次连接。而后台则根据当前任务队列中的任务等待状况,所有任务队列的优先级别一致,按照先来先服务的思想,当轮询线程池中具有空闲线程后,启动服务线程守护该任务的执行,直到任务的请求执行完毕为止,而线程再置为空闲状态。任务调度的过程如图34所示,而整个过程的实现模块我们将其命名为VLS(VirtualLabServer)。图3-3任务调度的流程框架3.3客户端主要模块的设计与实现3.3.1用户操作界面在用户界面的实现时,我们采用Swing用户界面组件技术开发了几个模块类,主要有主窗口类(Mainwindow)、主菜单类(Main

31、Menu)、工具条类(ToolBar)、实验设备载体类(DeviceCarrier)、实验设备连接器类(DeviceConnector)、设计面板类(DesignPane)、属性编辑栏类(propertyEditor)、用户注册类(RegisterClassPane)及结果面板类(ResultPane)等,其中,Mainwindow类是实验平台的主框架,它继承JFrame类,布局整个数字通信原理虚拟实验用户界面平台。在Mainwindow中我们装载了实验设计窗口、实验结果窗口、工具栏和菜单栏;ToolBar创建5个实例对象,分别用以运行、停止、新建、打开和保存实验流程;DeviceCarrie

32、r类创建的对象为实验流程中的设备单元,它具有设备名、引线、大小、实验设备的URL地址等属性和一些属性值的设置、设备移动、绘制、实验设备序列化等方法;PropertyEditor类主要完成对实验设备属性的编辑;ResultPane类主要完成设备的启动、执行、停止和结果的显示等。3.3.2动态的实验仿真效果数字通信原理实验的特点决定了实验需要有动态逼真的实验结果,在设计和实现的过程中,可以从真实的实验设备中抽象出单个设备应该具备相应的动态特性。为了能在平台上提供这些特性,我们从实验过程中数据的动态产生和显示来阐述实验仿真效果。1.实验数据的动态产生首先,该课程的实验的数字信号有着连续且稳定的特征,

33、在设计信号发生组件时应该要跟这个特征相符;然后,接收信号的组件能够对信号的动态变化有正确的处理;最后,所产生的信号应该要精确,达到实验要求。在信号发生的设备组件中,有能够产生动态正弦、余弦、正切等信号,这些实现方法都被封装在对应的组件方法中,如正弦信号的产生,其对应方法是sinsignalO,为了能达到实验要求的精度,该方法返回类型定义为double型;在方法体中,用for循环来动态产生一个预先固定长度dataNum的数组,在实验组件中dataNum的值为36,将产生的数据存在result的定长数组中。其实现上如下:for(inti=0;ithis.dataNum;i+)resulti=amP

34、litude*Math.sin(double)(2*Math.PI*signalFrequency*(index+0.5)/(double)(samPleFrequency);每当组件获得一个线程运行机会后,它的方法就被调用执行一次,每次产生36字节长度的数组,然后传给下一组件,供其它组件处理直到最后的信号显示。2.实验结果的动态显示实验的最后显示都由显示组件来完成,根据不同实验的显示要求需要开发不同的显示组件,他们在处理的方法上基本一致。这些组件中定义了一个buffer数组,用来缓存由其他组件传来的数据,该数组的长度为dataNum的整数倍。实现时在组件方法体内定义setsourceData

35、2(doublesource)方法,将接收的数组缓冲到buffer数组,同时依次从buffer数组中(从头至尾)取数存入ScoPeData数组中,在drawHistogram()方法中逐次调用scopeData数组中的数据在Jlntema1Frame的对象中进行绘制。在组件中,为了最后能动态显示信号的变化过程,在组件设计时还需给组件定义一个重要的属性sleeplnterval,它用来表示信号之间的间隔时间,在绘制时,相邻数据之间的绘制间隔就是用户可以设置的时间差sleeplnterval。这样,在显示时可以看到信号的动态推进过程。由于后台线程不断的运行,显示组件不断获得前面组件传过来的数据,不

36、断填充buffer数组使得最后显示的信号可以源源不断。3.3.3设备Bean组件的设计在该虚拟实验室平台的设备组件开发过程中,采用了基于Java的组件对象技术,它将Java技术和组件技术结合在一起,使Java程序的开发变得快速、简单、易于维护,以适应当前不断膨胀的网络程序需要。该平台上每个实验设备按照JavaBeans技术规范来创建,并向外提供调用接口,其实现细节完全是被封装在每个Bean内部,用户可以添加自己编写的新的实验仪器组件。Bean组件中的get方法和set方法分别实现为外部提供该属性读取方法和更改方法,这样能实现对仪器组件属性的设置和读取的操作。通过使用Bean组件技术,用户可以动

37、态地选择实验和创建设备、设置实验和设备的属性参数值,而系统中各种事件响应以及通信方法可用于组件间的数据交互和通信。3.4数字通信实验平台的关键技术1.xML(extensibleMarkupLanguage)是一种可扩展标记语言,它主要用于在网页上组织信息,同时也用来确保网络交互合作时,具有良好的可靠性与互操作性。XML则是为了克服HTML存在的局限性而设计的一种用来表达结构化数据的通用语法,是一种允许用户对自己的标记语言进行定义的元语言。它主要由三个要素构成:模式(sehema)、可扩展样式表语言(XSL)和可扩展链接语言(XLL)。其中,schema规定了XML文档的逻辑结构,定义了XML

38、文档中的元素、元素的属性以及元素和元素之间的属性关系。2. 多线程是现代操作系统有别于传统操作系统的重要标志,是提高系统资源利用率的技术手段。Java作为一种面向分布式计算机环境语言,提供了完全意义的多线程支持。首先,Java环境本身就是多线程的,如它可以利用系统的空闲时间来执行诸如必要的垃圾清除和一般性的系统维护等操作;其次,Java还提供多线程的语言级支持。一般来讲,Java可利用两种方式来实现多线程,分别是:(l)创建类Thread的子类;(2)根据Runnable接口创建一个类。这两种方式实现的实质都在Thread类的构造函数的使用。虚拟实验平台中,多线程技术主要用在客户端的后台运行和

39、服务器端接收请求的处理中,用以解决组件的并发执行和提高服务器端的性能。3. JNI(JavaNativeInierface)是JDK提供的本地编程接口,它允许在Java虚拟机上运行的Java代码操作其他语言编写的应用程序和本地库方法,从而能够直接与特定的操作系统和硬件平台进行交互。JNI提供的编程接口也允许在本地应用程序中嵌入Java虚拟机。交互过程是在相同的Java虚拟机中使得Java类中的本地方法的调用能够被映射到共享二进制库的相对应的函数上,并在相同的进程空间加载。本地方法以库文件的形式存放,在Windows平台上是DLL文件形式,在Unix/Linux平台上是so文件形式。Java虚拟

40、机中内置了JNI,这样Java虚拟机能够激活本地系统调用完成客户机上的输入和输出,以及图形、网络和线程操作。4结束语由于时间和人员等条件的限制,论文提出的基于Java与MATLAB集成的数字通信原理虚拟实验平台虽然已经按照计划完成了一些基本功能,但是还有很多方面的工作有待改善,为了更好地满足计算机远程实验教学的要求,使用户更深刻地理解和掌握数字通信原理,虚拟实验室还有一些后续的工作可以进行,现在列举如下。1.在Java与MATLAB集成应用的方面,还可以做更多尝试,前景是十分广阔的。比如开发数字信号处理、数字图像处理等虚拟实验室,并且可以将Java开发应用到MATLAB所应用的领域。2.进一步

41、分析数字通信原理课程的实验教学要求,开发更多的实验设备的Bean组件,对于在实现上难度相对较大的那些组件可以通过集成MATLAB来进行开发,满足教学和科研的要求。3.由于众多的用户请求,待处理的数据多而杂,客户端与服务器端的通信时间受到一定程度的限制,因此,对于服务器而言,需要再优化服务器己有的调度算法和存储结构,提高和改善服务器的计算性能,减少响应时间。4.通过Java与MATLAB这样一个异构软件的通信接口分析,可以尝试将Java与其他软件进行集成,开发通用性接口,这是以后可以探索的地方。参考文献1 Kouzes,R.T,J.D.Myers, and W.A.Wulf.Collaborat

42、ories: Doing Science on the Internet.IEEE ComPuter,1996,29(8):40462 DeloresEtter, Geoffrey Orsak,Refleetions on a Distance Edueation EXPeriment in DSP.ICASSP-99,1998,(3):109510983 彭晖,李仁发,李方敏等,基于VP的虚拟实验室原型设计与实现.计算机工程与应用.2002,(2):2442464 NUS Internet Remote ExPerimentation.http:/vlab.ee.nus.edu.sg/Vla

43、b/,20035 Java Digital Signal Proeessing Editor.http:/jdsP.asu.edu/jdsP,html,2005 6 刘筱兰,张薇,程惠华,王本立.虚拟实验室的类型及发展趋势田.计算机应用研究,2004,(11):8117 王建新,裴惠民,陈松乔.基于Intemet的虚拟实验室平台架构设计.中南工业大学学报,2002,33(5):5305338 黄慕雄.高校教学型虚拟实验室建设的现状与建议.电化教育研究,2005年第3期:77809 郭志强,黄燕,吴平.Java-MATLAB集成方法的分析与探讨.研究与开发,2006年第6期:151710 鄂晓宇,孟丽君,邸魁.以实验教学的新理念建立实验教学的新体系.实验室科学,2006,2(6):212211 Borland JBuilder. 12 周晓锋,刘馨月,张靖波,马志强.基于可重用组件技术的软件开发方法.信息技术,2005,15:13914113 Horstlnann CS, ComellG.JavaZ核心技术,卷11:高级特性(王建华,等).北京:人民邮电出版社,2003.291 14 潘长勇,王劲涛,杨知行编著.现代通信原理实验.北京:清华大学出版社,2005.15

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁