毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

通信原理仿真实验系统设计与实现 第4页

更新时间:2009-6-5:  来源:毕业论文
通信原理仿真实验系统设计与实现 第4页
5 仿真系统的VB界面设计及代码编写
5.1 编程机理
MATLAB提供了功能强大的与C/C++,Fortran的外部程序接口,而且提供了内嵌在VB的MATLAB矩阵函数库等等。这使得MATLAB与其他高级语言的混合编程成为可能。MATLAB与VB的混合编程有几种方法,本系统中,考虑到只是为了调用MATLAB产生波形仿真图,故采用了ActiveX技术。
ActiveX是定义从Web到OLE(对象连接与嵌入)控件的所有内容的核心术语。Miscrosoft建立了一套使用和集成ActiveX组件的标准,从Visual Basic到Miscrosoft Word,到Java的所有产品都具有使用ActiveX组件的能力。
ActiveX组件有很多类型,在MATLAB中,对两种ActiveX技术提供了支持,其中包括ActiveX自动化,也就是在上文2.3中提到的ActiveX Automation服务器协议,它包含了ActiveX自动化服务器和ActiveX自动化控制器,我们使用MATLAB作为自动化服务器,它是可以由其他应用程序编程驱动的组件。而自动化控制器就是使用和操纵自动化服务器的应用程序,本系统中使用Visual Basic作为自动化控制器,使用它可以生成、使用和删除自动化服务器,就好像它们是语言的一部分。在VB应用程序内创建MATLAB ActiveX对象后,就可以使用这个对象的方法、属性来实现对MATLAB的调用。
5.2 系统界面设计
由于该程序的开发意图在于方便计算机教学,使得教师在课堂上通过简单的点击几个按钮就能看到波形的仿真,节省时间;同时也能让没学过MABLAB编程或是不能熟练运用MATLAB编程的同学能够通过简单的点击几个按钮就能看到波形的仿真,起到与MATLAB接口的作用,因此考虑只添加足够多的命令按扭控件即可,系统的主界面如图 5 1:
其中主界面将通信原理课程中的主要实验分为辣个章节,其中每个章节又用子菜单共分为12个实验。

 
图 5 1 系统主界面
由于篇幅有限,本文中所有代码编写及仿真原理介绍仅以第二节模拟线性调制中的抑制双边带调幅(DSB_SC)为例做介绍。本节实验界面如图 5 2:
 
图 5 2 抑制双边带调幅界面
5.3 代码的编写
如同其他可视化高级编程语言一样,VB采用的是事件驱动模式和面向对象,因此不存在所谓的主程序和子程序,代码整体可看成由许多小的过程组合在一起的集合,我们只需对用户可能发生的事件编写相应的代码即可,因此,相对于其他高级语言,VB体现了简单易用的优势。
由于该程序对实现的功能要求不高,故编写代码的关键便在于如何通过VB实现对MATLAB的调用,正如前面我们所说的,在这我们用到了ActiveX技术,如图 4 1,由于MATLAB已经为我们提供了丰富的类型库,我们只需将其添加进VB即可实现对MATLAB功能的调用。
在前面我们已经说过,ActiveX部件必须通过定义变量赋值的方式来调用,所以在调用MATLAB内部命令之前,VB的程序编辑器里需有如下指令:
Dim Matlab as Object;Set Matlab=CreateObject(“Matlab.Application”)作为声明来实现对MATLAB对象的创建,该语句在通用声明栏,不属于任何过程和子过程,类似于c语言中的全局变量。
则成功创建并引用了MATLAB对象。下面将通过MATLAB提供的方法、属性和命令来完成对程序的设计。
Matlab.Application对象提供了5种方法来实现对MATLAB的调用,它们是:Execute,PutFullMatrix,GetFullMatrix,MinimizeCommandWindow和MaximizeCommandWindow。利用这些方法即可在VB程序中实现任何MATLAB的功能。
其Execute方法用于在VB中调用MATLAB命令,也是本设计中用的方法,PutFullMatrix和GetFullMatrix主要实现1,2文数组在VB和MATLAB中的传递,本设计暂时不使用这两种方法,最后两种方法用于控制MATLAB命令行窗口的最大化和最小化,基本属于非必须的方法。下面重点介绍Execute方法如何使用。
Execute(commandstring):其中参数commandstring为字符型参数,表示任何可在MATLAB命令行中输入的命令。举个例子:在MATLAB命令行下,输入surf(peaks)将绘制出一个三文曲面图,而在VB中则可通过下面的语句来实现同样的功能,结果如图 5 3:
Dim Matlab as Object
Set Matlab =CreateObject(“Matlab.Application”)
Matlab.Execute(“surf(peaks)”)
 
图 5 3
到此,该系统设计的关键已经突破,剩下的只是如何编写适当的代码来完成设计,以达到设计所需的功能。如果每条命令都通过Execute调用显然是很烦琐的,因此本设计中将每种调试的仿真程序写成.m文件保存在MATLAB的工作目录下,即可通过一条简单的命令实现对整个程序的调用。下面以 按钮控件为例介绍VB代码的编写。
Dim Matlab As Object                        %创建ActiveX对象
Private Sub Command1_Click()                 %DSB-SC按钮过程处理
Set Matlab = CreateObject("Matlab.Application")   %引用MATLAB对象
Call Matlab.MinimizeCommandWindow          %命令行窗口最小化
Matlab.Execute ("dsbmod")                %调用dsbmod.m文件生成仿真波形
End Sub
由于在使用ActiveX部件时,任何地方都有产生错误的可能,因此错误处理不可缺少,因此在通用声明中添加一个错误处理函数,用于判断是否正常启动MATLAB,具体函数如下:
Function StartMath()

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

通信原理仿真实验系统设计与实现 第4页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。