MATLAB在通信中的应用_第1页
MATLAB在通信中的应用_第2页
MATLAB在通信中的应用_第3页
MATLAB在通信中的应用_第4页
MATLAB在通信中的应用_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/11/211OK,Nowbegin……2023/11/212课程介绍定位:专业选修课目标:了解MATLAB\Simulink

,熟练掌握简单编程,结合所学通信工程专业知识,能够使用MATLAB对通信系统进行仿真,加深理解。考核:待定

2023/11/21MATLAB在通信中的应用3第一讲MATLAB初步认识1.1.1MATLAB的发展

MATLAB语言是由美国的CleverMoler博士于1980年开发的;设计者的初衷是为解决“线性代数”课程的矩阵运算问题;取名MATLAB即MatrixLaboratory矩阵实验室的意思;

MATLAB以商品形式出现后的短短几年,就以其良好的开放性和运行的可靠性,成功地应用于各工程学科的研究领域。2023/11/21MATLAB在通信中的应用4MATLAB版本的发展1984年,MATLAB第1版(DOS版)

1992年,MATLAB4.0版

1994年,MATLAB4.2版

1997年,MATLAB5.0版

1999年,MATLAB5.3版

2000年,MATLAB6.0版

2001年,MATLAB6.1版

2002年,MATLAB6.5版

2004年,MATLAB7.0版第一讲MATLAB初步认识2023/11/21MATLAB在通信中的应用51.1.2MATLAB的主要特点

1.简单易学

与C语言几乎一致

2、编程简洁、效率高语言规则不强,无需编译

3、强大而简单的绘图功能二、三维绘图,直观展示结果第一讲MATLAB初步认识2023/11/21MATLAB在通信中的应用64、扩展性强

MATLAB主工具箱符号数学工具箱SIMULINK仿真工具箱控制系统工具箱信号处理工具箱图象处理工具箱通信工具箱系统辨识工具箱神经元网络工具箱金融工具箱第一讲MATLAB初步认识2023/11/21MATLAB在通信中的应用71.信号处理工具箱(SignalProcessingToolbox),包括1)数字和模拟滤波器设计、应用及仿真;2)谱分析和估计;3)FFT变换;4)DCT变换。2.通信工具箱(CommunicationToolbox),包括:1)信号编码;2)调制解调;3)滤波器和均衡器设计;4)通道模型;5)多路访问;6)错误控制编码。第一讲MATLAB初步认识2023/11/21MATLAB在通信中的应用81.1.3MATLAB应用领域仿真和建模实时仿真自动控制信号处理与通信数据分析、科学计算算法开发图形、可视化研究独立应用开发其他领域

第一讲MATLAB初步认识2023/11/21MATLAB在通信中的应用9第二讲MATLAB的基础准备及入门一、MATLAB的安装二、目录结构与环境变量三、MATLAB工作环境四、命令窗口(CommandWindow)五、历史命令窗口(CommandHistory)六、工作空间窗口(Workspace)七、MATLAB的程序编辑器八、保存和检索数据九、帮助与在线查询2023/11/21MATLAB在通信中的应用10第二讲MATLAB的基础准备及入门一、MATLAB的安装

A碟:Matlab主程序及工具箱扩展包;

B碟:帮助文件。

建议安装双碟版的Matlab6.1、6.5或7.0,并且采用完全安装。完全安装需要大约1.4G的硬盘空间。2023/11/21MATLAB在通信中的应用11第二讲MATLAB的基础准备及入门二、Matlab的目录结构1、MATLAB的目录结构。正确安装MATLAB后,在硬盘上生成一个文件夹,如C:\MATLAB,在这个根目录下有:

\bin \extern

\demos \help

\java \rtw

\simulink \stateflow

\toolbox \sys

\ja \uninstall

\work2023/11/21MATLAB在通信中的应用12第二讲MATLAB的基础准备及入门二、Matlab的目录结构(1)C:\matlab\bin该目录下有建立MEX文件所需的批处理文件和必需的二进制文件。(2)C:\

matlab\extern包含MATLAB与C或FORTRAN语言交互所需的函数定义和链接库。(3)C:\matlab\toolbox工具箱目录,该目录包含以下子目录:

\matlab

MATLAB核心工具包

\simulink

Simulink函数和工具2023/11/21MATLAB在通信中的应用13第二讲MATLAB的基础准备及入门二、Matlab的目录结构(4)C:\matlab\work这是MATLAB的工作空间,在启动系统时直接进入该目录用以保存用户自己的.mat或.m文件。作为MATLAB的高级用户,应对MATLAB安装后的目录有深入的了解。2023/11/21MATLAB在通信中的应用14第二讲MATLAB的基础准备及入门三、MATLAB的工作环境CommandWindow命令窗口Workspace工作空间窗口或CurrentDirectory当前目录窗口CommandHistory命令历史窗口2023/11/21MATLAB在通信中的应用15第二讲MATLAB的基础准备及入门四、命令窗口的菜单SetPath…因机房计算机安装了硬盘还原卡,所以上机做实验时,每位同学在E盘下建立一个目录(英文),然后将该目录加入到Matlab搜索路径中,并将其设置为当前目录(CurrentDirectory)。2023/11/21MATLAB在通信中的应用16第二讲MATLAB的基础准备及入门四、命令窗口的命令命令窗口是MATLAB的主要交互窗口,MATLAB命令窗口中的“>>”为命令提示符,表示MATLAB正在处于准备状态。2023/11/21MATLAB在通信中的应用17第二讲MATLAB的基础准备及入门四、命令窗口的命令

1.窗口命令clf:清除当前Figure窗口里的所有非隐藏图形对象。Close:关闭当前的Figure窗口。Closeall:关闭所有的Figure窗口。Clc:清除命令窗口里的内容,光标回到窗口的左上角2023/11/21MATLAB在通信中的应用18第二讲MATLAB的基础准备及入门五、历史命令窗口(CommandHistory)

在历史窗口中记录着用户在MATLAB命令窗中所输入过的全部命令,在这个窗口中可以实现几个主要的功能是:1、单行或多行命令的复制在命令历史窗口用鼠标选定所要拷贝的命令,用右键弹出上下文菜单,选中Copy项,然后可以用Ctrl+V将其复制到命令窗口或任何地方。2、单行命令的运行选中单行命令,用右键弹出上下文菜单,选中EvaluateSelection,即会在命令窗口运行该行命令,也可直接双击该行命令,随即在命令窗口看到运行结果。3、多行命令的运行方法同于单行命令;选中多行命令,用右键弹出上下文菜单,选中EvaluateSelection,即会在命令窗口运行该多行命令。2023/11/21MATLAB在通信中的应用19第二讲MATLAB的基础准备及入门五、历史命令窗口(CommandHistory)4、把多行命令写成M文件选中多行命令,用右键弹出上下文菜单,选中CreateM-File菜单项,就引出M文件编辑器,并将多行文本拷入,再利用M文件编辑器的操作保存即可。5、命令窗口实录命令diary

在MATLAB运行过程中如果希望将当前命令窗口中所有命令(包括结果)保存起来,可以用diary命令。(1)在命令窗口运行命令diarymy_diary,全部命令记录在内存中;(2)运行命令diaryoff后,内存中的全部内容记录在名为my_diary的日志文件中。(注意:日志文件可以带扩展名.txt,也可以不带扩展名)2023/11/21MATLAB在通信中的应用20第二讲MATLAB的基础准备及入门六、工作空间窗口(Workspace)

工作空间窗口又称内存浏览器,在其中保存着用户所执行命令或程序的中间变量和结果。2023/11/21MATLAB在通信中的应用21第二讲MATLAB的基础准备及入门七、MATLAB的程序编辑器进入程序编辑器在菜单File中选New(M-File)或Open项;直接利用按钮工具栏中的按钮New或Open;在命令窗口中输入Edit命令。

MATLAB的这一编辑器主要用来编辑M文件。当一组命令通过改变某个变量的值就可以反复使用去解决不同的问题时,可以利用M文件编辑器。2023/11/21MATLAB在通信中的应用22第二讲MATLAB的基础准备及入门七、MATLAB的程序编辑器例1:画出指数衰减曲线y1=exp(-t/3)*sin(3*t)和它的包络y2=exp(-t/3),t的取值范围是(0,4pi)。%example1.mt=0:pi/100:4*pi;y2=exp(-t/3);y1=y2.*sin(3*t);plot(t,y1,'-r',t,y2,':b',t,-y2,':b')存为example1.m,然后选中下拉菜单Debug|Run运行得到右图。2023/11/21MATLAB在通信中的应用23第二讲MATLAB的基础准备及入门八、数组编辑器(ArrayEditor)当输入大型数组时建议使用数组编辑器。在命令窗口中给一个变量赋为“空”阵;在工作空间浏览器中双击该变量,打开数组编辑器;在左上方的行(size)、列(by)数栏中填写待建数组的大小,于是在编辑窗口出现数组元素格;(7.0版本中自动根据元素个数确定维数。)逐格填写元素值。与此同时在内存浏览器中的相应变量已经改变。2023/11/21MATLAB在通信中的应用24第二讲MATLAB的基础准备及入门八、保存和检索数据当你在工作窗中做了一些运算之后,需要暂时休息一下,希望将所作的工作保存,以便以后接着做下去,可以点击File|SaveWorkspaceAs…项,会弹出一个对话框,选择保存路径并键入文件名,按“保存”键。当再次开始工作时,用File|Loadworkspace

或File|ImportData…再把该文件装入,原来定义的变量又可以使用了。例1:建立一个工作文件(.mat)在工作窗中键入a=[123;456;789]b=[1;2;3]a*b按Enter,则计算出结果ans=[14;32;50]在File菜单中点取Saveworkspace…将工作窗中内容存为file1.mat,系统默认保存路径为MATLAB\work2023/11/21MATLAB在通信中的应用25第二讲MATLAB的基础准备及入门九、保存和检索数据重新启动MATLAB,键入a,回车,系统回复???Undefinedfunctionorvariable'a'.(表明此时系统中变量a没有定义)在命令窗口键入Loadfile1.mat将文件装入,再键入a,回车,系统将恢复。a=123456789键入who,显示出当前工作环境下的变量名。键入whos,显示出当前工作环境下所有变量的具体信息。2023/11/21MATLAB在通信中的应用26第二讲MATLAB的基础准备及入门十、帮助与在线查询1、查找Matlab基本函数的信息(Elementarymathfunctions)>>helpelfun

2、查找某个具体函数的信息及使用方法:help函数名例:查找有关正弦函数的信息:>>helpsin3、浏览器界面的帮助信息>>helpwin显示帮助总览。在此界面下可以查找所有基本函数和专用函数的详细信息。2023/11/21MATLAB在通信中的应用27第三讲MATLAB的基本运算一、数组与矩阵的创建二、矩阵运算与数组运算三、基本元素群函数2023/11/21MATLAB在通信中的应用28变量命名

A.变量名必须是不含空格的单个单词;

B.变量名区分大小写;

C.变量名最多不超过63个字符;

D.变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号。

E.标准的函数名及命令名必须用小写字母。

第三讲MATLAB的基本运算2023/11/21MATLAB在通信中的应用292.赋值语句

(1)变量=表达式

(2)表达式

其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。默认变量:ans注释语句:%开始MATLAB特别标点:;第三讲MATLAB的基本运算2023/11/21MATLAB在通信中的应用30一、数组与矩阵的创建

1、生成数组的函数“:”的用法

例1:av=1:10%产生一个从1到10的数组,间隔为1(行向量)av=[1,2,3,4,5,6,7,8,9,10]例2:aw=1:2:10%产生一个从1到10之间的数组,间隔为2aw=[1,3,5,7,9]例3:as=0:pi/40:4*pi

as=00.78541.57082.35623.14163.92704.71245.49786.2832例4:al=10:-2:0al=1086420第三讲MATLAB的基本运算2023/11/21MATLAB在通信中的应用31一、数组与矩阵的创建

1、生成数组的函数常用数组函数

例1:aj=linspace(0,1,10)%利用线性等分指令生成向量

(间隔1/9)aj=00.11110.22220.33330.44440.55560.66670.77780.88891.0000(01/92/93/9……1)例2:ap=rand(1,5)

%产生1×5的随机数矩阵。范围(0,1),均值:0.5ap=0.01530.74680.44510.93180.4660第三讲MATLAB的基本运算在MATLAB中,变量的元素(即矩阵元)用圆括号“()”中的数字(也称为下标)2023/11/21MATLAB在通信中的应用32一、数组与矩阵的创建

2、生成矩阵的常用函数

eye生成单位矩阵例1:eye(n)

%生成n

维的单位阵

eye(m,n)

%生成m×n

维的单位阵

eye(size(A))

%生成与A同维的单位阵

ones生成全1阵(常用于大型程序中预先定维)

zeros生成全0阵(常用于大型程序中预先定维)

rand生成均匀随机阵(范围(0,1),均值:0.5)

randn

生成正态随机阵(均值:0.5;方差:1)第三讲MATLAB的基本运算2023/11/21MATLAB在通信中的应用33第三讲MATLAB的基本运算二、矩阵运算与数组运算1、矩阵运算A+B 加法A*B 乘法 k*A 数乘矩阵

A’ A的共轭转置

conj(A’)或conj(A)’ A的转置(conjugate:共轭)A^n A(方阵)的n次幂inv(A) A的逆阵

(inverse)A/B A右除B(=A*inv(B))B\A A左除B(=inv(B)*A)2023/11/21MATLAB在通信中的应用34第三讲MATLAB的基本运算二、矩阵运算与数组运算2、元素群运算(“·”运算符)k.*A 数乘矩阵(=k*A)

A.*B 对应各元素相乘 A.^n

矩阵A各元素的n次幂A./B A对应各元素右除BB.\A A对应各元素左除B(=A./B)

两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。2023/11/21MATLAB在通信中的应用35第三讲MATLAB的基本运算二、矩阵运算与数组运算2、关系运算与逻辑运算

MATLAB提供了6种关系运算符:

<(小于)、<=(小于或等于)、>(大于)、

>=(大于或等于)、==(等于)、~=不等于)。

MATLAB提供了3种逻辑运算符:

&(与)、|(或)和~(非)。

它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。2023/11/21MATLAB在通信中的应用36第三讲MATLAB的基本运算三、函数2023/11/21MATLAB在通信中的应用37第三讲MATLAB的基本运算五、向量与矩阵处理1、标识与子矩阵的提取A(i,j)表示矩阵A的第i行、第j列交叉点处的元素,i,j是两个整数。A(u,v)提取A的子矩阵,u,v是两个向量,分别指定行与列。向量标识:A(L1,:)A(:,L2)A(L1,L2),

A(L1,:) 表示提取A的L1指定的行、所有列构成子矩阵;

A(:,L2) 表示提取A的所有行,L2指定的列构成子矩阵;

A(L1,L2) 表示提取A的L1指定的行,L2指定的列构成子矩阵。例:A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15];A([1,3],:)A(:,[2,4,5])A(:,1:3)A([1,2],[1,3,5])2023/11/21MATLAB在通信中的应用38第三讲MATLAB的基本运算五、向量与矩阵处理1、标识与子矩阵的提取*例:将随机向量中满足不超过0.5的元素提取出来。x=rand(1,10)L=(x<=0.5)y=x(L)2023/11/21MATLAB在通信中的应用39第三讲MATLAB的基本运算五、向量与矩阵处理2、空阵用于缩维例:提取A的1,3,5列。A=[1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18];A1=A(:,[1,3,5])%方法一A1=1357911131517A(:,[2,4])=[]%方法二:利用空阵A=13579111315172023/11/21MATLAB在通信中的应用40第三讲MATLAB的基本运算五、向量与矩阵处理3、特殊矩阵的提取

fliplr(A) 矩阵A左右翻转

flipud(A) 矩阵A上下翻转

v=diag(A) 提取A的对角线上的元素构造一个列向量vM=diag(v) 用向量v的元素作对角元素,构造一个对角矩阵ML=tril(A) 取矩阵A的左下三角部分(基于主对角线),其它元素为零

U=triu(A) 取矩阵A的右上三角部分(基于主对角线),其它元素为零

rot90(A) 矩阵A逆时针旋转90°例:A=round(rand(4,5)*10)2023/11/21MATLAB在通信中的应用41第四讲MATLAB程序设计一、M文件二、控制语句三、函数的调用2023/11/21MATLAB在通信中的应用421M文件1.1M文件概述用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:

命令文件(ScriptFile)和函数文件(FunctionFile)。扩展名为:.m第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用43例-1分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。程序1:首先建立命令文件并以文件名f2c.m存盘。clear;%清除工作空间中的变量f=input('InputFahrenheittemperature:');c=5*(f-32)/9然后在MATLAB的命令窗口中输入f2c,InputFahrenheittemperature:73c=22.7778第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用44程序2:首先建立函数文件f2c.m。functionc=f2c(f)c=5*(f-32)/9然后在MATLAB的命令窗口调用该函数文件。clear;y=input('InputFahrenheittemperature:');x=f2c(y)输出情况为:InputFahrenheittemperature:70c=21.1111x=21.1111第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用45不同点:命令文件:没有输入参数,不返回输出参数函数文件:有输入参数,返回输出参数命令文件:对工作空间变量操作函数文件:局部变量命令文件:直接运行函数文件:不能直接运行,函数调用第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用46二程序控制结构顺序结构选择结构if语句、switch语句、try语句循环结构for语句、while语句、第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用47

1顺序结构1.数据的输入从键盘输入数据,使用input函数来进行,该函数的调用格式为:

A=input(提示信息,选项);

xm=input('What''syourname?','s');第四讲MATLAB程序设计2.数据的输出

disp(输出项)其中输出项既可以为字符串,也可以为矩阵。2023/11/21MATLAB在通信中的应用48

例-2输入x,y的值,并将它们的值互换后输出。程序如下:

x=input('Inputxplease.');y=input('Inputyplease.');z=x;x=y;y=z;disp(x);disp(y);第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用492选择结构1.if语句在MATLAB中,if语句有3种格式。

(1)单分支if语句:第四讲MATLAB程序设计

格式之一:

if表达式

语句组A

end其工作流程如图所示。2023/11/21MATLAB在通信中的应用50第四讲MATLAB程序设计

格式之二:

if表达式

语句组A

else

语句组B

end

其工作流程如图所示。2023/11/21MATLAB在通信中的应用51

例3计算分段函数的值。程序如下:x=input('请输入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endy第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用52第四讲MATLAB程序设计

格式之三:

if表达式1

语句组A

elseif

表达式2

语句组B

else

语句组Cend工作流程原理如图2.3所示。2023/11/21MATLAB在通信中的应用53

例-4输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。c=input('请输入一个字符','s');ifc>='A'&c<='Z'disp(setstr(abs(c)+abs('a')-abs('A')));elseifc>='a'&c<='z'disp(setstr(abs(c)-abs('a')+abs('A')));elseifc>='0'&c<='9'disp(abs(c)-abs('0'));elsedisp(c);end第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用542.switch语句

switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:

switch表达式

case表达式1

语句组1case表达式2

语句组2……case表达式m

语句组motherwise

语句组nend第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用55例5某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):

price<200没有折扣

200≤price<5003%折扣

500≤price<10005%折扣

1000≤price<25008%折扣

2500≤price<500010%折扣

5000≤price14%折扣输入所售商品的价格,求其实际销售价格。第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用56

程序如下:price=input('请输入商品价格');switchfix(price/100)case{0,1}%价格小于200rate=0;case{2,3,4}%价格大于等于200但小于500rate=3/100;casenum2cell(5:9)%价格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%价格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%价格大于等于2500但小于5000rate=10/100;otherwise%价格大于等于5000rate=14/100;endprice=price*(1-rate)%输出商品实际销售价格第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用573.try语句(matlab特有)语句格式为:try

语句组1catch

语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用58例6矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。程序如下:A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%显示出错原因第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用593循环结构1.for语句for语句的格式为:

for循环变量=表达式1:表达式2:表达式3

循环体语句

end表达式1:循环变量的初值,表达式2:循环变量的步长,表达式3:循环变量的终值。第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用60例-8一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。程序如下:form=100:999m1=fix(m/100);%求m的百位数字m2=rem(fix(m/10),10);%求m的十位数字m3=rem(m,10);%求m的个位数字ifm==m1^3+m2^3+m3^3disp(m)endend第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用612.while语句

while表达式

语句A

end第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用62

例-11从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。sum=0;cnt=0;val=input('Enteranumber(endin0):');while(val~=0)sum=sum+val;cnt=cnt+1;val=input('Enteranumber(endin0):');endif(cnt>0)summean=sum/cntend第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用63

函数文件由function语句引导,基本结构为:

function输出形参表=函数名(输入形参表)%注释说明部分函数体语句其中以function开头的一行为引导行,表示该M文件是一个函数文件。函数名的命名规则与变量名相同。文件名与函数名的关系。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。三函数文件的基本结构第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用64M函数文件的基本格式: 函数声明行

H1行(用%开头的注释行)

在线帮助文本(用%开头)

编写和修改记录(用%开头)

函数体

第四讲MATLAB程序设计2023/11/21MATLAB在通信中的应用65例14编写函数文件求半径为r的圆的面积和周长

函数文件如下:function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圆半径%s圆面积%p圆周长%2004年7月30日编s=pi*r*r;p=2*pi*r;2023/11/21MATLAB在通信中的应用66函数调用的一般格式是:

[输出实参表]=函数名(输入实参表)要注意的是,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。函数调用2023/11/21MATLAB在通信中的应用67

例3-15利用函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。函数文件tran.m:function[rho,theta]=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);

调用tran.m的命令文件main1.m:x=input('Pleaseinputx=:');y=input('Pleaseinputy=:');[rho,the]=tran(x,y);rhothe

2023/11/21MATLAB在通信中的应用68第五讲MATLAB绘图二维图形绘制三位图形绘制2023/11/21MATLAB在通信中的应用691二维图形绘制基本绘图命令plot(Y)plot(X,Y)plot(X,Y,s)plot2023/11/21MATLAB在通信中的应用70二维图形绘制plot(Y)以Y的索引坐标为横坐标,Y本身为纵坐标,绘制图形【例】>>y=rand(100,1);>>plot(y)2023/11/21MATLAB在通信中的应用71二维图形绘制plot(X,Y)以X为横坐标,Y为纵坐标,绘制图形,这是实际应用最常见的【例】>>x=0:0.01*pi:2*pi;>>plot(x,sin(x))2023/11/21MATLAB在通信中的应用72二维图形绘制plot(X,Y,s)以X为横坐标,Y为纵坐标,绘制图形,第3个参数控制图形显示属性(线形、颜色及标识等)选项说明选项说明-实线.点:点线o圆-.点划线xX-符号--虚线++符号y黄色*星号m紫红色s方形c蓝绿色d菱形r红色v下三角g绿色^上三角b蓝色<左三角w白色>右三角k黑色p正五边形2023/11/21MATLAB在通信中的应用73二维图形绘制plot(X,Y,s)以X为横坐标,Y为纵坐标,绘制图形,第3个参数控制图形显示属性(线形、颜色及标识等)【例】>>x=0:0.01*pi:2*pi;>>y=sin(x);>>z=cos(x);>>plot(x,y,’rd’,x,z,’-.k’)2023/11/21MATLAB在通信中的应用74二维图形绘制标题与轴标签对图形加上标题,标明横纵坐标【例】>>x=0:0.01*pi:2*pi;>>y=sin(x);>>plot(x,y)>>title('正弦函数','FontSize',15)>>xlabel('x(0-2\pi)','FontSize',14)>>ylabel('y=sin(x)','FontSize',14)2023/11/21MATLAB在通信中的应用75二维图形绘制在标注中如何输入特殊符号θφψαβΩ?字符转换如:\pi即显示为π\Omega即显示为Ω无须记住,用时会查,会联想即可常见符号转义示例控制字符串转义控制字符串转义控制字符串转义\sigmaσ\SigmaΣ\PhiΦ\deltaδ\DeltaΔ\infty∞\leq≤\geq≥\neq≠2023/11/21MATLAB在通信中的应用76二维图形绘制文本标注text(x,y,’标注文本及控制字符串’)【例】>>x=0:0.01*pi:2*pi;>>plot(x,sin(x))>>text(3*pi/4,sin(3*pi/4),['\leftarrowsin(3\pi/4)=',num2str(sin(3*pi/4))],'FontSize',12)2023/11/21MATLAB在通信中的应用77二维图形绘制

将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:

title——

给图形加标题

xlable——给x轴加标注

ylable——给y轴加标注

text——

在图形指定位置加标注

gtext——

将标注加到图形任意位置

gridon(off)——

打开、关闭坐标网格线

legend——

添加图例

axis——

控制坐标轴的刻度2023/11/21MATLAB在通信中的应用78二维图形绘制图形的保持与子图多次绘制得到重叠效果holdon开启图形保持功能holdoff关闭图形保持功能坐标限若不一致,自动调整2023/11/21MATLAB在通信中的应用79二维图形绘制示例【例】>>x=0:0.1*pi:2*pi;>>y=sin(x);>>z=cos(x)>>plot(x,y,’-*’)>>holdon%开启>>plot(x,z,’-o’)>>plot(x,y+z,’-h’)>>legend(‘sin(x)’,’cos(x)’,’sin(x)+cos(x)’,0)>>holdoff%关闭2023/11/21MATLAB在通信中的应用80二维图形绘制不同坐标轴下叠加图形通过在相同位置创建新的坐标轴来实现图形叠加方便数据的比较观察例:一个将有害的废料转化为无害的生物医学实验。实验中的废料的聚乙烯物质(TCE)和相关温度数据如下:TCE=[5154203702501351206020];temp=[2923272520232327];2023/11/21MATLAB在通信中的应用81二维图形绘制不同坐标轴下叠加图形上述数据在35天中每隔5天一个采样得到,即days=0:5:35;tce=[5154203702501351206020];temp=[2923272520232327];plotyy(days,tce,days,temp);2023/11/21MATLAB在通信中的应用82二维图形绘制子图几个图形在同一图形窗口表示出来subplotsubplot(m,n,p)将一个图形窗口分割成m×n个子绘图区域,通过区域编号参数p调用各子区域2023/11/21MATLAB在通信中的应用83二维图形绘制子图c=9:16;subplot(3,2,1)plot(c,rangescore(:,1:1))title('线性代数')subplot(3,2,2)plot(c,rangescore(:,2:2))title('微积分')subplot(3,2,3)plot(c,rangescore(:,3:3))title('大学英语')subplot(3,2,4)plot(c,rangescore(:,4:4))title('计算机导论')subplot(3,2,5)plot(c,rangescore(:,5:5))title('马克思主义')subplot(3,2,6)plot(c,rangescore(:,6:6))title('C语言')1234562023/11/21MATLAB在通信中的应用84二维图形绘制二维特殊函数图函数名说明函数名说明area填充绘图feather矢量图bar条形图harh水平条形图hist直方图pie饼图polar极坐标图contour等高线图表:Matlab中常见二维特殊图形函数2023/11/21MATLAB在通信中的应用85二维图形绘制例【例】>>x=1:10;>>y=rand(10,1);>>bar(x,y)>>subplot(2,1,2)>>x=[111234353658595480818283848586];>>hist(x)barhist2023/11/21MATLAB在通信中的应用86二维图形绘制离散数据图形绘制x=0:0.25:(3*pi);stem(x,sin(x));%stem(x,sin(x),’sr’,’fill’);title('stem(x,sin(x))');xlabel('x');x=0:0.25:(3*pi);%stem(x,sin(x));stem(x,sin(x),’sr’,’fill’);title('stem(x,sin(x))');xlabel('x');2023/11/21MATLAB在通信中的应用87MATLAB提供的统计分析绘图函数还有很多,例如,用来表示各元素占总和的百分比的饼图、复数的相量图等等。例5-14绘制图形:(1)某企业全年各季度的产值(单位:万元)分别为:2347,1827,2043,3025,试用饼图作统计分析。(2)绘制复数的相量图:7+2.9i、2-3i和-1.5-6i。2023/11/21MATLAB在通信中的应用88程序如下:subplot(1,2,1);pie([2347,1827,2043,3025]);title('饼图');legend('一季度','二季度','三季度','四季度');subplot(1,2,2);compass([7+2.9i,2-3i,-1.5-6i]);title('相量图');2023/11/21MATLAB在通信中的应用89(二)fill

––––基本二维绘图函数

fill的功能:绘制二维多边形并填充颜色例:x=[12345];y=[41514];fill(x,y,'r')2023/11/21MATLAB在通信中的应用90例,绘制阶梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y)2023/11/21MATLAB在通信中的应用91例:阶梯绘图h2=[11;1-1];h4=[h2h2;h2-h2];h8=[h4h4;h4-h4];t=1:8;subplot(8,1,1);stairs(t,h8(1,:));axis('off')subplot(8,1,2);stairs(t,h8(2,:));axis('off')subplot(8,1,3);stairs(t,h8(3,:));axis('off')subplot(8,1,4);stairs(t,h8(4,:));axis('off')subplot(8,1,5);stairs(t,h8(5,:));axis('off')subplot(8,1,6);stairs(t,h8(6,:));axis('off')subplot(8,1,7);stairs(t,h8(7,:));axis('off')subplot(8,1,8);stairs(t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论