图 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] ... 下一页 >>