基于Matlab的模拟通信实验平台设计,【通信原理仿真实验】通信原理虚拟实验仿真平台的设计和实现_玛雅作文网...

作文「通信原理虚拟实验仿真平台的设计和实现」共有 4564 个字,其中有 2704 个汉字,1316 个英文,162 个数字,382 个标点符号。作者佚名,请您欣赏。玛雅作文网荟萃众多优秀学生作文,如果想要浏览更多相关作文,请使用网站顶部的作文搜索引擎进行搜索。本站作文虽然不乏优秀之作,但仅为同学们学习交流的习作,不能当作范文使用,希望对同学们有所帮助。

摘 要:通过研究Matlab与Java编程的开放接口,本文阐述了通信原理虚拟实验平台的设计思路,并以智能客户端的方式实现了该平台。利用网络和界面编程技术,结合Matlab底层运算,使得用户可以自由使用通信组件搭建和修改实验,交互性强。

关键字:计算机应用技术;虚拟实验;通信原理;仿真技术;Matlab builder Ja

中图分类号:TP391.6 文献标识码:A DOI:10.3969/j.issn.1003-6970.2013.06.001

0 引言

通信原理是电子信息和通信工程类专业重要的专业基础课,理论和实践性都很强,不但需要掌握和理解基本的概念,还需要通过课程实验来强化所学理论。为配合通信原理的教学活动,各高校在该课程实验设置和投入方面花费了巨大的人力和物力资源。但一方面硬件实验设备易受损,仪器的精确度所受干扰的因素过多,使得学生在很多情况下很难得到理想效果;另一方面由于实验设备损耗大、开销高和维护困难等局限性,使得众多高校对该课程实验建设的投入明显不足,有的甚至放弃实验教学[1-2]。

虚拟实验技术作为现代实验教学的发展模式,可以很好的解决以上问题[3]。虚拟实验通过利用软件模拟和仿真硬件功能让用户参与实验教学活动,因其零损耗、灵敏度高、仿真结果稳定等优点,已经在高校教学中得到广泛应用。

1 国内外研究现状

目前新加坡国立大学关注通信类虚拟实验的研究,建立了示波器实验,将LabView作为Internet工具之一,充当仪器设备控制器级图形化用户操作平台,进行信号处理、数据分析、存储和现实工作。

国内研究方向在通信课程虚拟实验的主要由北京邮电大学、中南大学和吉首大学。北京邮电大学和吉首大学主要关注基于Matlab Web Server的远程通信网络虚拟实验室,只能够完成部分给定实验,其以演示性实验为主;中南大学则使用自己创建组件的模式,用Java和开源包Jmatlink实现Java和Matlab的通信,使用Java Applet实现部分简单的通信原理实验[4]。

2 虚拟实验关键仿真技术

2.1 Matlab builder JA

Matlab有多种应用部署产品[5]。如表1所示,Builder产品主要由Matlab Builder EX(支持Excel)、Matlab Builder Ja(支持Java和Web)、Matlab Builder NE(支持COM、C#.NET、Web)。其中Ja产品支持Matlab函数调用、图形应用、Web应用、Web图形化,所有Builder均需要Matlab底层运行环境(Matlab编译器)。

Matlab在2006中添加了Matlab Builder JA,又叫Java Builder,是对Matlab Compiler的扩展。用Java类中形成一个Java组件或包。每个Matlab函数被封装为Java类的一个方法,可以在Java应用程序中被调用,并可以免费被部署到未安装Matlab的桌面应用或者Web服务器上。Builder JA允许Java调用Matlab的文件,方便了Java进行复杂的数学运算。

与Matlab对其他程序的外部接口相比,Builder JA接口可以直接通过Java调用Matlab资源,例如可以调用Matlab中的图形界面直接展示结果。Java在网络编程上比较简单,可以通过混合编程开发基于Web的应用程序。

部署组件必须在有Matlab编译环境的电脑上运行,Matlab开发人员可以直接安装Matlab,Java开发人员可以安装Matlab或安装MCR(Matlab Compiler Runtime)和Matlab Builder Ja组件包,用户的终端机器上需要安装MCR,如果使用Web figures的功能,可以支持浏览器直接访问而无需安装任何插件,此类功能类似于Matlab Web Server。

3 虚拟实验平台的设计和实现

3.1 平台总体结构设计

3.1.1 目标和原则

首先,尽可能真实的模拟通信原理实验的理论和实际过程,对实验的把握要准确,平台要尽量简化以方便用户使用。

其次,使用Matlab作为底层运算环境,最大限度的满足用户对通信组件的需求,完成尽可能多的实验,要有良好的扩展性。

最后,构建一个以通信组件为核心的通信原理虚拟实验平台,支持用户使用通信组件自行搭建任意通信实验,给用户最大的自由度和良好的交互体验。

3.1.2 总体结构

基于网络的B/S结构,如图3.1,将重要的数据操作和服务放在服务器端实现,而一些面向用户的交互型操作多在浏览器端实现。其中,前台表达逻辑和业务处理逻辑是客户端主要的事务逻辑,数据库处理逻辑是数据库服务器端主要的事务逻辑,数据库处理逻辑需要调用服务器数据库进行相应操作[6-7]。

针对远程虚拟实验,用户可以使用Matlab组件直接远程调用相应仿真软件的相关器件和脚本文件。开发人员只需事先开发好相应课程的用户界面和实验脚本,用户无需安装相关软件,只需要使用浏览器访问相应实验页面就可以进行实验操作。

如图3.2所示,通信原理虚拟实验平台的整体架构[8]包括3个部分:服务器端、智能客户端和本地资源。服务器端和智能客户端间主要使用Java网络编程来互相传递数据;智能客户端和本地资源间只要使用Matlab Builder JA调用本地函数传递数据;智能客户端的界面主要使用Java SWT界面编程技术开发操作界面和虚拟实验组件,实现组件拖拽、连接等操作,并显示仿真结果。

3.2 平台的实现

实现通信类虚拟实验平台主要分为三部分,一是实验中所需功能模块和需要设置的参数,主要是在Matlab中编写的相关函数,并且将很多相似功能写成通用函数,以方便直接调用,然后打成Jar包,使用Java语言直接调用相关函数进行运算;二是实现虚拟实验界面,将所需组件集成在界面平台上,实现拖拽、连接功能,并且可以设置具体参数、查看实验结果波形和数据;三是用户自定义扩展组件,由Matlab用户可以自行添加相关Jar包实例化组件。主要实现过程: 第一步:编写Matlab中实现组件的函数并测试;

第二步:使用Matlab deploytool将所需Matlab函数封装到Java类中,并转换为Jar包,并将Jar包导入到Java开发工程中。

第三步:配置运行环境,未安装Matlab的环境需要安装MCR;

第四步:Java实例化类,调用Matlab编写的组件函数,传递数据,并组合调用多个组件函数,测试组合调用结果是否正确;

第五步:在界面中实现单独组件和组件间参数和结果传递,实现组件拖拽和参数传递,搭建完整实验原理框图,并测试数据传递是否正确。

3.3 BPSK实验[9]

打开智能客户端,输入用户名密码进入虚拟实验平台界面。根据BPSK实验框图3.3,将实验所需器材从器材栏里拖拽到实验台上,用鼠标将器材正确连接起,根据需要设置器材的关键参数,点击运行按钮,即可从示波器和功率谱分析仪中看到实验结果。用户可以将所做的实验以XML形式保存到本地,然后在教学管理主页中把实验提交到服务器中,由老师进行指导和评分。

4 结束语

通信原理虚拟实验平台是对远程通信原理实验教学的一次有力探索,验证了平台开发的可行性。在之前的设计基础上,丰富了课程实验所涉及的虚拟仪器,基本完成了通信原理的实验设计,解决了实验器材的参数设置和普适性,并初步引入了时间域上的概念。此平台在量化、编码、同步和仪器灵活性方面尚有待解决的问题,此问题的解决可以使得此平台具有更大的灵活性和可扩展性,不仅能够完成通信原理课程的虚拟实验,而且可以成为涵盖通信类学科的综合性虚拟实验平台。

参考文献

[1] Sherry,L.Issues in Distance Learning.International Journal of Educational Telecommunicationsl(4),337~365, 1995

[2] Fuan Wen,“eLearning - Theories, Design, Software and Applications”,Open Web-Based Virtual Lab for Experimental Enhanced Educational Environment, ISBN 978-953-51-0475-9. April,2012.(InTech Open Access).

[3]J.Wang,S.Chen,W.Jia,et al.The Design and implementation of Virtual Laboratory Platform in Internet. Proceeding of the First International Conference on Web-based Learning in China.2002.169~177

[4]Yue Zhao, Fuan Wen, "Rapid Implementation of Communication-related Simulation Equipment on the Open Web-based Virtual Lab," Advances in Electronic. Engineering, Communication and Management (EECM) vol.2,Dec.24-25,2011. Beijing, China. pp.417-424.

[5]http://www.mathworks.cn/products/matlab/index.html?s_cid=baidu_matlab

[6]焦瑞莉,南利平,李学华. 基于LabVIEW的通信专业远程虚拟实验室[J]. 国外电子测量技术(虚拟仪器),2005(3):4-7.

[7]廖云伢.基于Java与Matlab集成的数字通信原理虚拟实验平台的设计与实现. 中南大学硕士学位论文.2007.

[8]郭志强,黄燕,吴平. Java-Matlab集成方法的分析与探讨. 研究与开发,2006年第6期:15~17

[9]周炯磐,庞沁华,续大我,吴伟陵 . 通信原理. 北京邮电大学出版社.2005年11月:153-156通信原理虚拟实验平台的设计与实现

由于信息技术和网络的发展,通过网络实时上课、做实验已经成为可能。而通信原理实验课程由于真实通信设备昂贵、折旧快、维护费用高,一般采用仿真软件来代替真实实验设备,所以作为一门基于仿真软件的课程,将其搬移到网络上开发设计虚拟实验室成为可能。本文研究的核心就是如何在网络上远程进行通信原理课程仿真实验。

通过对国内外虚拟仿真实验领域以及相关文献的调研,发现传统通信仿真软件主要有Matlab和Labview两种,目前已有的虚拟实验平台主要基于这两种软件的Web Server服务进行二次开发,可以通过设置参数进行给定实验的演示,交互性较弱。

本文采用Matlab作为底层运算环境,基于Matlab和Java混合编程,使用Matlab Builder Ja将实验所需组件封装为Java类和方法后,在Java中以组件的形式进行调用。通过Java的网络和界面编程技术,结合Matlab的底层运算,使得用户可以自由使用通信组件搭建和修改实验,交互性较强。本文以2ASK实验为例,说明该平台及其组件的设计与实现过程,并且通过该例,证明了这种开发方式的可行性以及平台的可操作性。

展开

3e5aa0c689faaa9ffabc11eda83b37b5.png

通信原理虚拟实验仿真平台的设计和实现相关推荐:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018/3/1 省选模拟考试 50分

T1 30分模拟暴力,40分树的直径。拿了0分。(空间开小了爆了,因为缩点之后是又建了一次图,两个边的编号tot没分开,mdzz) 只写了后40分,而这40分中有20分不需要边双连通分量。写了一个类似于强连通…

DNS缓存服务器的配置步骤

yum安装bind 编辑主配置文件/etc/named.conf 修改全局配置文件段 listen-on port 53 {172.16.19.45;}; //allow-query dnssec-enable no ; dnssec-validation no; dnssec-lookaside no; 检查配置文件是否修改正确 named-checkconf /etc/named.conf 重启na…

信号与系统 徐亚宁 matlab程序,信号与系统(第4版)

第1章绪论11信号与系统12信号的描述与分类13系统的描述与分类131连续时间LTI系统及其描述132离散时间LTI系统及其描述14系统的基本特性15信号与系统分析方法概述16MATLAB 基本知识161MATLAB简介162MATLAB快速入门本章学习指导习题上机练习第2章连续…

骆驼和春天的Drools决策表

正如我在之前的文章中所展示的那样, JBoss Drools是一个非常有用的规则引擎 。 唯一的问题是,对于非技术人员而言,以Rule语言创建规则可能会非常复杂。 这就是为什么可以提供一种轻松的方式来创建业务规则的方法-在电子表格中创建决策表&…

UA记录

安卓QQ内置浏览器UA: Mozilla/5.0 (Linux; Android 5.0; SM-N9100 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36 V1_AND_SQ_5.3.1_196_YYB_D QQ/5.3.1.2335 NetType/WIFI 安卓微信内置浏览器UA: Mozilla/5.0 (Linu…

酷炫,用Html5/CSS实现文字阴影

前两天有一个学html5前端小美女问我一个有关文字阴影的效果怎么去实现。她和我说文字阴影嘛,她也知道text-shadow,.但是却做不出想要的样子,其实css3的新功能是很强大的,不要把你的思想太过于局限化,好了,闲话也不多说,咱们就先来看看这个文本阴影. 一.文字阴影text-shadow 文…

从xtrabackup备份恢复单表【转】

目前对MySQL比较流行的备份方式有两种,一种上是使用自带的mysqldump,另一种是xtrabackup,对于数据时大的环境,普遍使用了xtrabackupbinlog进行全量或者增量备份,那么如何快速的从xtrabackup备份中恢复单张表呢&#xf…

Java:放心(或非常容易)

最近,我不得不编写一些Java代码以通过HTTP 使用 REST服务 。 我决定使用RestEasy的客户端库,该框架是我大部分时间用来公开Java REST服务的框架,因为它也实现了官方的JAX-RS规范。 我对规范定义的注释驱动方法非常满意,这使REST服…

php输出json到表格,PHP中把数据库查询结果输出为json格式

header("Content-type:text/html;charsetutf-8");//字符编码设置$servername "localhost";$username "root";$password "root";$dbname "tjks";// 创建连接$con mysqli_connect($servername, $username, $password, $db…

CSS中的overflow属性

overflow属性 如果元素中的内容超出了给定的宽度和高度属性,overflow 属性可以确定是否显示滚动条,是否隐藏溢出部分等行为,规定当内容溢出元素框时发生的事情。 可能的值有: visible:默认值。内容不会被修剪&#xff…

COGS 13. 运输问题4

★★☆ 输入文件:maxflowd.in 输出文件:maxflowd.out 简单对比时间限制:1 s 内存限制:128 MB 【问题描述】一个工厂每天生产若干商品,需运输到销售部门进行销售。从产地到销地要经过某些城镇,有不同…

Java –手工Classloader隔离

在最近的项目中,我们遇到了一个典型的库冲突问题 。 我们可以控制的一个组件需要特定版本的Apache Commons库,而另一个组件则需要一个不同的版本。 由于外部限制, 我们无法在Container级别指定任何类加载隔离 。 这不是我们的选择。 相反&…

【知识梳理1】Android触摸事件机制

前言 随着科学技术的发展,智能手机早已成为我们当代人身边不可缺少的“伙伴”之中的一个,堪比对象女友。每天我们对着手机反复的做着点击、滑动操作,而手机则随着我们的操作给我们展示她的精彩。… 废话到此结束。 看到这里,即使…

matlab if m不等于0,matlab问题clearfor a=0.1:0.1:50for b=0.1:0.1:20for m=0.1:0.1:5

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2021/03/23 06:16:09matlab问题clearfor a0.1:0.1:50for b0.1:0.1:20for m0.1:0.1:5for k1:1:15n(a*m)/(2*b)-m^2;z4*k-a*m;x(4*k-a*m)/(4*k-2*b*(m^2n));y(4*k-a*m)/(4*k-2*b*m^…

自己做的一个登录页面,纯代码!

先上效果图吧. 本人菜鸟入门, 请勿喷. 首先样式: 1 1 body{2 2 margin: 0;3 3 padding: 0;4 4 width: 100%;5 5 height: 100%;6 6 }7 7 8 8 .headers{9 9 width: 100%;10 10 height: 100px;11 11 }12 12 .siv-ng{13 13 width:…

ASP.NET调用cmd命令提示符拒绝访问解决方案

using System.Diagnostics; public class CmdHelper{private static string CmdPath "C:\Windows\System32\cmd.exe";/// <summary>/// 执行cmd命令/// 多命令请使用批处理命令连接符&#xff1a;/// <![CDATA[/// &:同时执行两个命令/// |:将上一个命…

Java 7:Fork / Join框架示例

Java 7中的Fork / Join Framework专为可分解为较小任务的工作而设计&#xff0c;并将这些任务的结果组合起来以产生最终结果。 通常&#xff0c;使用Fork / Join Framework的类遵循以下简单算法&#xff1a; // pseudocode Result solve(Problem problem) {if (problem.size &…

php上传文件 服务器内部错误,php – 在将图像上传到S3时遇到内部服务器错误500...

在将图像上传到S3时我遇到了一个问题.我正在使用S3类和jqueryimageuploader插件.我已经设置了基本的应用程序,它在我的本地机器上运行良好.当我在beanstalk上部署它时,它开始抛出错误.我已经附加了控制台快照.我在这里添加我的代码供参考.这是启动文件index.html –gt;Meta cha…

Some reading, some thinking.

update&#xff1a;感谢助教0 0又学会一招&#xff0c;play 了一下CSS Part 1 Reading AuthorArticleNoteMadcola《两年波折路&#xff08;考研、工作、考研&#xff09;》"吾志所向&#xff0c;一往无前&#xff1b;愈挫愈奋&#xff0c;再接再励。"辜新星《时刻调…

CSS选择器:伪类(图文详解)

本文最初发表于博客园&#xff0c;并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我&#xff0c;一起入门和进阶前端。 以下是正文。 伪类&#xff08;伪类选择器&#xff09; 伪类&#xff1a;同一个标签&#xff0c;根据其不同的种状态&#xff0c;有不同的样式。…