通信原理实验指导书.docx
《通信原理实验指导书.docx》由会员分享,可在线阅读,更多相关《通信原理实验指导书.docx(44页珍藏版)》请在冰豆网上搜索。
![通信原理实验指导书.docx](https://file1.bdocx.com/fileroot1/2022-10/29/34bf4c84-3451-446f-a8dd-9952dd1821ad/34bf4c84-3451-446f-a8dd-9952dd1821ad1.gif)
通信原理实验指导书
实验一Matlab基础
一、实验目的
1.熟悉MATLAB开发环境
2.掌握矩阵、变量、表达式的各种基本运算
3.熟悉和了解MATLAB图形绘制程序编辑的基本指令;
4.熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注;5.掌握plot、subplot等指令格式和语法。
二、实验环境:
1、Matlab6.5
2、PC机
三、实验原理:
1.MATLAB基础知识
1.1MATLAB程序设计语言简介
MATLAB,MatrixLaboratory的缩写,是由MathWorks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
与大家常用的Fortran和C等高级语言相比,MATLAB的语法规则更简单,更贴近人的思维方式,被称为“草稿纸式的语言”。
MATLAB软件主要由主包、仿真系统(simulink)和工具箱(toolbox)三大部分组成。
1.2MATLAB界面及帮助
Matlab操作界面的默认窗口如图1.1所示,Matlab的通用操作界面包括9个常用的窗口,分别是:
命令窗口、历史命令窗口、当前目录浏览器窗口、工作空间浏览器窗口、数组编辑窗口、交互界面分类目录窗口、M文件编辑/调试器窗口、帮助导航/浏览器窗口和程序性能剖析窗口。
图1-1matlab基本界面
(1)菜单栏
在MATLAB主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help这6个菜单项。
File菜单项:
File菜单项实现有关文件的操作。
Edit菜单项:
Edit菜单项用于命令窗口的编辑操作。
View菜单项:
View菜单项用于设置MATLAB集成环境的显示方式。
Web菜单项:
Web菜单项用于设置MATLAB的Web操作。
Window菜单项:
主窗口菜单栏上的Window菜单,只包含一个子菜单Close all,用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。
Help菜单项:
Help菜单项用于提供帮助信息。
(2)工具栏
MATLAB主窗口的工具栏共提供了10个命令按钮。
这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。
(3)命令行区
MATLAB按以下顺序对输入命令进行解释:
检查它是否是工作空间中的变量,实则显示变量内容。
检查它是否是嵌入函数,是则运行之。
检查它是否是子函数。
检查它是否是私有函数。
检查它是否是位于MATLAB搜索路径范围内的函数文件或脚本文件。
MATLAB里有以下几种方法可获得帮助:
(1)帮助命令(help)是查询函数相关信息的最直接方式,信息会直接显示在命令窗口中。
例如键入helpsin,会显示sin相关信息。
(2)lookfor命令可以从键入的关键字列出所有相关的题材,和help相比,lookfor覆盖范围更广,可查找到某个主题所有词组或短语。
(3)帮助窗口(helpwindow)提供与帮助命令相同的信息,但帮助窗口界面更为方便直接。
(4)帮助桌面(helpdesk)通过在命令窗口中选择帮助菜单的“helpdesk”选项或键入helpdesk命令即可进入帮助桌面。
(5)在线帮助页是帮助桌面的在线帮助均有相应的PDF格式文件。
(6)Mathworks网站,对于连接入Internet的用户通过Mathworks公司的网站询问有关问题。
2.掌握MATLAB常用命令
3.MATLAB变量与运算符
变量命名规则如下:
(1)变量名可以由英语字母、数字和下划线组成;
(2)变量名应以英文字母开头;
(3)长度不大于31个
(4)区分大小写
MATLAB中设置了一些特殊的变量与常量,列于下表。
表1MATLAB的特殊变量与常量
MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符
表2matlab算术运算符
表3MATLAB关系运算符
操作符
功能说明
==
等于
~=
不等于
>
大于
<
小于
>=
大于等于
<=
小于等于
表4MATLAB逻辑运算符
表5MATLAB特殊运算
4.MATLAB的一维、二维数组的寻访
表6子数组访问与赋值常用的相关指令格式
5.MATLAB的基本运算
表7两种运算指令形式和实质内涵的异同表
6.MATLAB的常用函数
表8MATLAB常用数学函数
指令
含义
指令
含义
abs(a)
得到数组a中每个元素的绝对值
angle(a)
得到数组a中每个元素的相位角(弧度)
real(a)
imag(a)
求复数的实部(与a同维)
求复数的虚部(与a同维)
mod(x,y)
rem(x,y)
x对y取模
x对y取余数
conj(a)
求数组a每个元素的共轭
sqrt(a)
求数组a每个元素的平方根
Exp(a)
求数组a每个元素的指数(=e.^a)
Expm(a)
求矩阵a的指数(=e^a)
log(a)
log2(a)
log10(a)
求数组a每个元素的对数(底分别为e、2、10)
round(a)
floor(a)
ceil(a)
fix(a)
数组a每个元素向最接近的整数舍入
数组a每个元素向负无穷方向整数舍入
数组a每个元素向正无穷方向整数舍入
数组a每个元素向零方向整数舍入
表8MATLAB常用随机函数
随机函数
说明
随机函数
说明
rand(n)
生成n*n的随机矩阵
randn(n)
生成n*n的正态随机矩阵
rand(m,n)
生成m*n的随机矩阵
randn(m,n)
生成m*n正态分布随机矩阵
rand([mn])
生成m*n的随机矩阵
randn9([mn])
生成m*n正态分布随机矩阵
rand(m,n,p…)
生成m*n*p…的随机矩阵
randn(m,n,p…)
生成m*n*p的正态随机矩阵
rand([mnp…])
生成m*n*p….的随机矩阵
randn([mnp…])
生成m*n*p的正态随机矩阵
rand(size(A))
与A相同大小的随机矩阵
randn(size(A))
与A相同大小的正态随机矩阵
rand
一个随机数
randn
正态分布的随机数
6.MATLAB的常用绘图函数
plot命令用来绘制x-y坐标中的曲线。
它是一个功能很强的命令。
输入变量不同,可以产生很多不同的结果。
(1)plot(y):
输入一个数组的情况
如果y是一个数组,函数plot(y)给出线性直角坐标的二维图,以y中元素的下标作为X坐标,y中元素的值作为Y坐标,一一画出在X-Y坐标平面图上,而且将各点以直线相连。
例如,要画出是个随机数的曲线。
可列出:
y=5*(rand(1,10)-.5)
由Rand函数产生的随机数的最大值为1,最小数为0,平均值为0.5。
所以y的最大值为2.5,最小值为-2.5,平均值为0。
键入plot(y),MATLAB会产生一个图形窗,自动规定最合适的坐标比例绘图。
X方向是下标,从1~10,Y方向范围则是-4~4,并自动标出刻度。
可以用title命令给图加上标题,用xlabel,ylabel命令给坐标轴加上说明,用text或gext命令可在图上任何位置加标注,也可用grid命令在图上打上坐标网格线。
MATLAB实现程序和形成的图如下:
y=5*(rand(1,10)-.5)
y=
Columns1through9
2.2506-1.34430.5342-0.07011.95651.3105-0.2177-2.40751.6070
Column10
-0.2765
>>plot(y)
>>title('myfirstplot')
>>xlabel('x'),ylabel('y')
>>grid
(2)plot(x,y):
输入两个数组的情况
如果数组x和y具有相同长度,命令plot(x,y,’s’)将绘出以x元素为横坐标,y元素为纵坐标的曲线。
(3)用plot(t,[y1,y2,…])命令
该语句中t是向量,y=[y1,y2,…]是矩阵,若t是列(行)向量,则y的列(行)长与t长度相同。
Y的行(列)数就是曲线的根树。
例如,
>>t=0:
0.5:
4*pi;
>>y=exp(-0.1*t).*sin(t);
>>y1=exp(-0.1*t).*sin(t+1);
>>plot(t,[y;y1])
(4)用hold命令
在画完前一张图后用hold命令保持住,再画下一张曲线。
如键入
Plot(t,y),holdon,plot(t,y1,‘g’)
执行此命令时,图形窗产生第一幅图形,同时,命令屏幕显示Currentplotheld,图形处于保持状态。
再执行plot(t,y1,‘g’),就把第二幅图以绿色的曲线迭合在同一张图上。
(5)图形控制
A、figure:
打开图形窗口。
MATLAB中的第一幅图随plot命令自动打开,以后的plot命令都画在同一张图上。
如要画在另一张新图上,就要用figure命令打开新的图形窗口。
有了顺序为1,2,3,…的几个图形窗后,再用plot语句,即键入figure(i),表示打开第i幅图。
否则,所有的图都会画在最后显示的那张图上。
(2)clf:
清除当前图形窗的内容。
(3)hold:
保持当前图形窗的内容,再键入hold,就解除冻结。
这种拉线开关式的控制有时会造成混乱,可以用holdon和holdoff命令以得到确定的状态。
(4)close:
关闭当前图形窗。
closeall:
关闭所有图形窗。
(5)subplot(n,m,p)命令:
将图形窗口分为n╳m个子图,在第p个子图处绘制图形。
四、实验内容和步骤:
1、学习使用help命令:
例如在命令窗口输入helpeye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)。
2、学习使用clc、clear:
观察commandwindow、commandhistory和workspace等窗口的变化结果,执行前后有什么不同?
3、初步程序的编写练习:
新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
注意:
每一次M-file的修改后,都要存盘。
4、二维曲线绘图基本指令演示:
t=(0:
pi/50:
2*pi)';
k=0.4:
0.1:
1;
Y=cos(t)*k;
plot(t,Y);
问题4.1:
本例运作后,再试验plot(t),观察产生图形的有什么不同,为什么?
问题4.2:
本例运作后,再试验plot(Y),观察产生图形的有什么不同,为什么?
问题4.3:
本例运作后,再试验plot(Y,t),观察产生图形的有什么不同,为什么?
5、用图形表示连续调制波形Y=sin(t)sin(9t)及其包络线。
t=(0:
pi/100:
pi)';
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:
9)/9;
y3=sin(t3).*sin(9*t3);
figure
(2);
plot(t,y1,'r:
',t,y2,'b',t3,y3,'bo')
axis([0,pi,-1,1]);
问题5.1请查找plot的help的帮助,想想怎么用3行p