基于matlab的通信原理辅助实验系统设计文档格式.docx
《基于matlab的通信原理辅助实验系统设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于matlab的通信原理辅助实验系统设计文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
通过鼠标点击按钮,即可完成通信原理课程中一些基本的实验[3~4]。
本文的目的是研究基于MATLAB的通信原理辅助实验系统的设计方法并对其进行实现。
1.2选用MATLAB的原因
由于我们要做的只是一个通信原理辅助实验系统,并非是对通信系统深入地、精确地分析研究。
此外,我们还需要搭出一个人机友好的界面,综合分析一下,我们决定采用MATLAB,用.m文件编程实现图形用户界面及界面内部的通信原理的相关计算[3]。
VisualBasic和VisualC++亦可进行图形用户界面的编程。
但此课题我们选用MATLAB,因为MATLAB语法简单,贴近人的思维方式,图形表现丰富有效,并且MATLAB提供了各种数学、科学计算的相关函数,编程简洁美观,比Basic和C语言用起来要更方便一些。
另外,MATLAB还提供了与VisualBasic和VisualC++相连接的接口,可以实现两种语言的混合编程[5]。
综合以上优点,所以选用MATLAB做通信原理辅助实验系统的设计。
1.3MATLAB应用现状
MATLAB是一种用于概念设计、算法开发、建模仿真、实时实现的科学计算软件,它将高性能的数值计算和可视化方法集成在一起,并提供了很多专业工具箱和大量的内置函数。
自从90年代初在我国引入后,一直受到广大科研人员和技术工程师的喜爱,随着版本的不断更新和MathWorks公司在开发力度上的不断加大,MATLAB的功能日益强大,应用范围也越来越广阔,从最初的数值运算,二维图示,3D建模到数字信号处理,电子电力仿真,神经网络,航空航天,通信仿真,图像处理,控制工程等等几乎囊括了所有工程设计的方方面面。
MATLAB是从事众多工业、科研领域的必备工具。
无论是在校学生,还是已经参加工作的工程技术人员和科研人员,都运用它来解决各种科学问题、工程问题。
全球现有超过50万的企业用户和上千万的个人用户,他们广泛地分布在航空航天、金融财务、机械化工、电信、教育等各个行业。
1.4本论文的主要研究工作
本文的研究工作主要包括以下几个方面:
第二章简要介绍了MATLAB的相关知识及GUI的相关介绍:
MATLAB的发展历程、应用、优势和特点;
GUI的定义、特点及其组成部分。
第三章主要介绍通信原理中的模拟调制系统,对调幅(AM)、单边带(SSB)和频率调制(FM)三种调制方式进行了详细介绍。
第四章主要介绍了通信原理中的二进制数字调制系统,对二进制振幅键控(2ASK),二进制频移键控(2FSK),二进制相移键控(2PSK)三种调制方式进行了详细介绍。
第五章主要介绍了图形用户界面设计,对句柄图形、界面菜单、用户控件的相关知识,一些常用的编程命令、语法格式进行了介绍。
第六章为设计成果,展示了设计的代码和搭出的界面。
2MATLAB相关知识
2.1MATLAB
2.1.1MATLAB的简介
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(MatrixLaboratory)的简称,和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域[6~7]。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
2.1.2发展历程
20世纪70年代,美国新墨西哥大学计算机科学系主任CleveMoler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。
1984年由Little、Moler、SteveBangert合作成立了的MathWorks公司正式把MATLAB推向市场。
到20世纪90年代,MATLAB已成为国际控制界的标准计算软件[8]。
版本已经由1984年的MATLAB1.0,历经25年的发展,如今已经更新到了MATLAB7.8(2009年3月6日发布)。
2.1.3应用
MATLAB产品族可以用来进行以下各种工作:
●数值分析
●数值和符号计算
●工程与科学绘图
●控制系统的设计与仿真
●数字图像处理
●数字信号处理
●通讯系统设计与仿真
●财务与金融工程
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
2.1.3MATLAB的优势和特点
(1)MATLAB特点
●此高级语言可用于技术计算
●开发环境可对代码、文件和数据进行管理
●交互式工具可以按迭代的方式探查、设计及求解问题
●数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等
●二维和三维图形函数可用于可视化数据
●各种工具可用于构建自定义的图形用户界面
●各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM以及MicrosoftExcel)集成
(2)MATLAB的优势[9]
1)友好的工作平台和编程环境
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
2)简单易用的程序语言
Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
4)出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
5)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
6)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。
允许用户编写可以和MATLAB进行交互的C或C++语言程序。
另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。
工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
7)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;
在编程方面支持了函数嵌套,有条件中断等;
在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;
在输入输出方面,可以直接向Excel和HDF5进行连接。
2.2GUI相关知识简介
2.2.1定义及简单介绍
图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的