用MATLAB语言编程设计

2019-05-18 13:34

用MATLAB语言编程设计

通信仿真教学软件

【摘要】

本文介绍了一个用MATLAB语言编写的通信仿真教学软件。论述了通信的基础理论和通信仿真教学软件的设计思想以及实现的方法,并谈到了计算机辅助教学的必要性。

1.前言

《通信原理》是通信类专业的一门极为重要的基础理论课程,主要研究信息传递的一系列变换的机理和属性,它包括:信号分析、调制解调、同步、检测过滤、纠错编码、信号特性等理论方面的内容,其内容抽象难懂促使我们应用MATLAB程序语言设计制作了这套通信仿真CAI课件。意在利用计算机一类智能设备来实现该课程的机辅教学,帮助学生理解相关的知识难点。

2.通信仿真教学软件的设计思想

在《通信原理》中,常常借助于各种信号的时域波形图以及频谱图来说明系统的原理,指出相应的电路设计应达到的目标。欲将寄载消息的信号保质保量的传送给接收者,就必须对它们进行加工处理,对相应的部件进行分析和研究,而这种研讨过程中会用到大量的数学计算。

由于 “MATLAB”是Matrix Laboratory(矩阵实验室)的缩写,顾名思义,它是以矩阵,数组为基本处理对象,矩阵的维数不需要预先指定,且随时可变,具有丰富的矩阵运算功能。因此,选用MATLAB作为开发环境无疑能够减轻系统分析与设计的编写负担,另外因MATLAB是一个开放性的系统,具有模块化的结构,任何用户自己已定义的函数都可作为MATLAB函数进行调用。仿真功能

我们采用了MATLAB语言编程,以Windows 和MATLAB为软件运行环境。将通信原理中的知识点用MATLAB来实现。通过灵活的菜单和界面设计使某些参数可调。同时运用Simulink软件包,使波形在仿真的同时显示系统。更加有利于在课堂上使用。

3.理论基础

3.1有关通信基础理论方面

通信中的常见技术如调制解调,多址与复用,同步,模拟信号数字化,噪声

中的信号检测,差错控制等在通信原理这门课程中都要有所涉及,因此,必须将与这些技术相关的专业基础理论知识融汇与本课件的编程设计工作中,便使我们的CAI软件真正起到辅助教学的作用。 3.2 有关MATLAB的文件编写方面 3.2.1 数组运算

数组加减运算

符号+或-,既表示矩阵运算又表示数组运算。

数组乘除运算

在MATLAB中,符号.*表示数组乘法运算,若a,b具有相同的维数,则a.*b为a和b对应元素的简单乘积,符号.\\或./表示数组除法的运算,而且这两种都是对应元素相除,这与矩 阵的左除或右除的含义不同。

关系运算 : MATLAB中提供了6个关系运算符,用于相同维数两个矩阵进行比较。这6个运算符为:

< 小于 <=小于等于 >大于 >=大于等于 ==等于 ~=不等于 3.2.2绘图

连续形式: x,y均为向量,这时以向量x作为x轴,向量y作为y轴,绘制典型的二维曲线,调用格式为plot(x,y)。 3.2.3菜单

对菜单的调用如下:

菜单项句柄=uimenu(窗口句柄,属性1,属性值1,. . .); 子菜单项句柄=uimenu(菜单项句柄,属性1,属性值1,. . .); 其功能是在窗口句柄所代表的窗口下建立一个菜单项(由菜单项句柄代表),并在该菜单项下建立一个子菜单项(由子菜单项句柄代表)。其中uimenu()函数的属性又很多种,但最基本的必须有一下两条:

.Label属性:它为菜单提示名称;

.Callback属性:它定义了回调函数,当该菜单项被选中之后,MATLAB

将自动调用此回调函数作为相应菜单项的响应。

设计出来的本软件的主界面菜单如图1所示。 图1 主菜单界面 3.2.4控制流语句

for循环语句

它允许一条语句或一组语句被重复执行预先确定的次数。它 的格式如下

for variable=StartVal:StepVal:EndVal

statements

end while 循环语句

它可以使一条或一组语句能够在一定条件下反复执行多次。格式如下:

while expression statements

end

if语句:

是一种简单的条件转移语句。其格式为:

if expression

Statements

end

暂停语句:

pause 功能是暂时停止程序的执行,直到用户按任意键之后,才继续执行程序; 回显控制

echo on/off控制是否在屏幕上回显MATLAB正在执行的语句,系统所默认的状态是不回显。 3.2.5 M文件编程 1.函数定义行

函数文件的第一行要求用关键字“function”把该文件定义为函数,并指定函数的名字必须与存盘的文件名相同。同时这一语句也定义了输入与输出参数。 2.函数体

函数体是函数的主体部分,它完成了函数的主要功能。函数体中有流程控制、定义变量、数值运算、符号运算、交互输入输出等功能,也可以调用其它函数和脚本 3.函数说明

函数说明是对本函数完成功能的简要说明,通常当某个函数过于复杂时,我们给出函数说明以方便使用。 4.注释

注释是夹杂在函数体中的语句,它以%开头,出现%的行,%后的语句均为注释性的。

3.3有关SIMULINK方面

Simulink是一个用来对动态系统进行建模,仿真,分析的软件包。他支持线性和非线性系统,连续和时间模型,或者是两者的混合,系统还可以是多采样频率的,比如系统的不同部分拥有不同的采样频率。

对于建模,Simulink提供了一个图形化的用户界面,可以用鼠标点击和拖拉模块的图标建模。图形界面可以将系统模型和图形同时展示出来。这是以前需要用编程语言明确的用公式表达微分方程的仿真软件包所远远不能相比的。Simulink包括一个复杂的由接收器,信号源,线性和非线性组件以及连接件组成的模块库,当然也可以定制或者创建用户自己的模块。

所有模型都是分级的,因此可以采取自上而下或者自下而上的方法来建立模型。可以在最高层面上查看一个系统,然后通过双击系统中的各个模块进入到系统的低一级层面以查看到模型的更多的细节。这一方法提供了一个了解模型是如

何组成以及它的的各个部分是如何相互联系的方法。

定义完一个模块后,就可通过Simulink的菜单或者在MATLAB的命令窗口输入命令对他仿真。菜单对于交互式工作非常方便,而命令行方式对于处理成批的仿真比较应用。使用Scopes或者其他的显示模块,可以在运行仿真时观察到仿真的结果。另外,可以在仿真时改变参数并且立即就可以看到有什么变化。仿真的结果可以放在MATLAB(workspace)的工作空间中进一步的处理或者可视化。

4.通信仿真的实现

4.1数字基带信号

数字通信中一般以单极性非归零码,单极性归零码型,双极性非归零码,双极性归零码,数字双相码,条件双相码和密勒码几种码来表示二元信息序列。由于数字基带信号是数字信息的电脉冲表示,不同形式的数字基带信号具有不同的频谱结构,合理设计数字基带信号可将数字信息变换为适合于给定信道传输的形式,这种变换又称为数字信息的码型转换。譬如单极性非归零码是用高电平表示二元信息中的‘1’,用低电平表示二元信息中的‘0’,电平在整个码元的时间里保持不变。其MATLAB主要源程序如下: grid=300

t=0:1/grid:length(x);

for i=1:length(x), %计算码元的值 if(x(i)==1), %如果信息为1

for j=1:grid, %该码元对应的点值取1 y((i-1)*grid+j)=1; end else

for j=1:grid, %反之,信息元为0,码元对应点值取0 y((i-1)*grid+j)=0; end;end;end

y=[y,x(i)]; %为了画图,将y序列加上最后一位

调用后效果图如图2所示,由该图可见,主要将序列10011000101对应的单极性非归零波形形象的展示了出来。


用MATLAB语言编程设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:选修5第4章第2节高新科学技术与防灾减灾学案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: