Matlab与通信仿真第一章Matlab基础知识.ppt

上传人:小飞机 文档编号:5438918 上传时间:2023-07-07 格式:PPT 页数:53 大小:549KB
返回 下载 相关 举报
Matlab与通信仿真第一章Matlab基础知识.ppt_第1页
第1页 / 共53页
Matlab与通信仿真第一章Matlab基础知识.ppt_第2页
第2页 / 共53页
Matlab与通信仿真第一章Matlab基础知识.ppt_第3页
第3页 / 共53页
Matlab与通信仿真第一章Matlab基础知识.ppt_第4页
第4页 / 共53页
Matlab与通信仿真第一章Matlab基础知识.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《Matlab与通信仿真第一章Matlab基础知识.ppt》由会员分享,可在线阅读,更多相关《Matlab与通信仿真第一章Matlab基础知识.ppt(53页珍藏版)》请在三一办公上搜索。

1、Matlab与通信仿真,内容提要,Matlab基础知识,1,Matlab计算结果可视化和确知信号分析,2,3,模拟调制Matlab实现,4,模拟信号的数字传输,5,数字频带传输系统,6,通信系统仿真综合实验,7,随机信号和数字基带仿真,本章目标,了解MATLAB 程序设计语言的基本特点,熟悉MATLAB软件运行环境掌握创建、保存、打开m文件及函数的方法掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进行处理的能力。,1.1 MATLAB基础知识,MATLAB,Matrix Laboratory缩写;MathWorks公司开发,具有强大的矩阵运算能力;MATLAB包括:主包、

2、simulink和toolbox;其最基本的数据结构是矩阵,即操作对象以矩阵为单位,Matlab系统,Matlab系统由5个主要部分构成1)Matlab语言2)Matlab工作环境3)Matlab数学函数库4)Matlab图形处理系统5)Matlab应用程序接口,Matlab语言,面向对象的高级语言有自己独特的数据结构、输入输出功能、流程控制语句、函数。,Matlab工作环境,包括以下几部分:命令窗口M文件编译调试器(F5)Matlab工作空间在线帮助文档,1.1 MATLAB基础知识,(1)菜单栏在MATLAB主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help

3、 6个菜单项。File菜单项:File菜单项实现有关文件的操作;Edit菜单项:Edit菜单项用于命令窗口的编辑操作;View菜单项:View菜单项用于设置MATLAB集成环境的显示方式;Web菜单项:Web菜单项用于设置MATLAB的Web操作;Window菜单项:主用于关闭所有打开的编辑器窗口;Help菜单项:Help菜单项用于提供帮助信息。,(2)工具栏MATLAB主窗口的工具栏共提供了10个命令按钮。这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。(3)命令行区Command Window,(4)帮助系统,(1)帮助命令(help)如:help sin;(2)look

4、for命令可以从键入的关键字列出所有相关的题材;(3)帮助窗口(help window)提供与帮助命令相同的信息,但帮助窗口界面更为方便直接;(4)帮助桌面(help desk)通过在命令窗口中选择帮助菜单的“help desk”选项或键入helpdesk命令即可进入帮助桌面;(5)在线帮助页是帮助桌面的在线帮助均有相应的PDF格式文件;(6)Mathworks网站,。,1.2 MATLAB数值计算功能,数值计算符号计算如何处理矩阵?一个标量:1*1矩阵 n维向量:n*1矩阵 一个长度为n的数组:1*n矩阵,1、MATLAB矩阵生成(1)矩阵的建立直接输入法:将矩阵的元素用方括号括起来,按矩阵

5、行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔;M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件;冒号表达式建立行向量:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值;(a=1:1:5)建立大矩阵:大矩阵可由方括号中的小矩阵或向量建立起来。,(2)矩阵的拆分矩阵元素A=1,2,3;4,5,6;A(1,2)ans=2B=1,2,3;4,5,6;B(3)ans=2显然在Matlab中矩阵是按列存储的。注:“;”在每条语句结束后可以出现,此时的作用是在Command Window中不显示运行结果,如果语句后没有“;”则在Comm

6、and Window中显示运行结果。,矩阵拆分1)利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。A=1 2 3;4 5 6;7 8 9A(2,:)a(2,:)=Ans=4 5 6 a=1 2 3 7 8 9 A=1 2 3;4 5 6A(2,3)Ans=6,矩阵拆分,A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。2)利用空矩阵删除矩阵的元

7、素在MATLAB中,定义 为空矩阵。给变量X赋空矩阵的语句为X=。注意,X=与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。,除用户自定义矩阵之外,matlab提供产生特殊矩阵的函数zeros:产生全0矩阵(零矩阵)。Ans=0ones:产生全1矩阵(幺矩阵)。Eye(n):产生n阶单位矩阵。Rand(m,n):产生m*n随机矩阵,数值范围01。randn:产生均值为0,方差为1的标准正态分布随机矩阵。,矩阵元素操作函数,Fliplr(a):矩阵左右翻转Flipud(a):矩阵上下翻转Rot90(a,k):矩阵逆时针旋转k*90度Diag(a,

8、k):取矩阵对角线元素Tril(a,k):取矩阵的下三角部分Triu(a,k):取矩阵的上三角部分,A=1 2;3 4;5 6Fliplr(a)Ans=2 1 3 4 5 6Rot90(a)Ans=2 4 6 1 3 5 Rot90(a,3)%逆时针旋转3*90度Ans=5 3 1 6 4 2,1.2 MATLAB数值计算功能,2、MATLAB内部特殊变量和常数变量ans:指示当前未定义变量名的答案;常数eps:表示浮点相对精度,2-52;常数Inf:表示无穷大;虚数单位i j:表示不定型值,是由0/0运算产生;常数pi:表示圆周率。,3、变量类型(1)变量命名规则变量名可以由字母、数字和下划

9、线混合组成,但必须以字母开头;字符长度不能大于31;变量命名区分大小写。(2)局部变量和全局变量局部变量是指那些每个函数体内自己定义的,不能从其他函数和MATLAB工作空间访问的变量;全局变量是指用关键字“global”声明的变量。全局变量名应尽量大写,全局变量的名字体现其代表的含义。,4、内存变量管理(1)内存变量的删除与修改clear命令用于删除工作空间(Workspace)中的变量;clc命令用于清空命令窗口(Command Window)中的变量;who命令在Command Window中显示出驻留变量的名称;whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。(

10、2)内存变量文件利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。MAT文件的生成和装入由save和load命令来完成。常用格式为:save 文件名 变量名表-append-asciiload 文件名 变量名表-ascii,5、MATLAB常用数学函数三角函数以弧度为单位计算,如:sin、cos等;abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值;用于取整的函数有:fix(向0取整)、floor(向下取整)、ceil(向上取整)、round(四舍五入);A=fix(2.3)a=fix(-2.3)A=2 a=-2A=floor(2.3)a

11、=floor(-2.3)a=ceil(2.3)a=ceil(-2.3)A=2 a=-3 a=3 a=-2A=round(2.5)a=round(-2.5)A=3 a=-3,rem与mod求余函数。当x和y的同号时,两个函数结果相同;当x和y异号时,rem函数结果与x同号,而mod和y同号。如:a=rem(10,-3)a=mod(10,-3)a=1 a=-2 mod不能整除时,其值=除数(整商+1)-被除数,例1-1分别建立33、32和与矩阵A同样大小的零矩阵。(1)建立一个33零矩阵。(2)建立一个32零矩阵。(3)设A为23矩阵,建立一个与矩阵A同样大小零矩阵。clc,clear;a=zer

12、os(3)b=zeros(3,2)A=1 2 3;4 5 6;%产生一个23阶矩阵Ac=zeros(size(A)%产生一个与矩阵A同样大小的零矩阵,例1-2建立随机矩阵:(1)在区间20,50内均匀分布的5阶随机矩阵。(2)均值为0.6、方差为0.1的5阶正态分布随机矩阵。clc,clear;x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5),6、MATLAB矩阵运算(1)算术运算1)矩阵加减运算:由A+B和A-B实现矩阵的加减运算,要求A和B矩阵的维数必须相同;2)矩阵乘法:假定有两个矩阵A和B,若A为mn矩阵,B为np矩阵,则C=A*B为mp矩阵;3

13、)矩阵除法:在MATLAB中,有两种矩阵除法运算分别表示为左除“”和右除“/”。如果A矩阵是非奇异方阵,则AB和B/A运算可以实现,即:AB=inv(A)*B,B/A=B*inv(A)。对于矩阵运算,一般ABB/A。对于含有标量的运算,两种除法运算的结果相同;4)矩阵乘方:一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量;5)点运算:在MATLAB中,点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。,(2)关系运算MATLAB提供了6种关系运算符:(大于)、=(大于或等于)、=(等于)、=(不等于)。当两个比较量是标量时,直接比较两

14、数的大小。若关系成立,关系表达式结果为1,否则为0。当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。,例1-3产生5阶随机方阵A,其元素为10,90区间的随机整数,然后判断A的元素是否能被3整除。(1)生成5阶随机方阵A。(2)判断A的元素是否可以被3整除。clc,clea

15、r;A=fix(90-10+1)*rand(5)+10)P=rem(A,3)=0,(3)逻辑运算MATLAB提供了3种逻辑运算符:&(与)、|(或)和(非)。在逻辑运算中,非零元素为真,用1表示,零元素为假,用0表示。设参与逻辑运算的是两个标量a和b,那么,a&b a,b全为非零时,运算结果为1,否则为0。a|b a,b中只要有一个非零,运算结果为1。a 当a是零时,运算结果为1;当a非零时,运算结果为0。若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成。若参与逻辑运算的一个是标量,一个是矩阵,那么运算

16、将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或0组成。逻辑非是单目运算符,也服从矩阵运算规则。在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。,例1-4 建立矩阵A,然后找出大于4的元素的位置。clc,clear;A=4,-65,-54,0,6;56,0,67,-45,0find(A4),7、MATLAB中的矩阵分析(1)矩阵的转置:转置运算符是单撇号,如:A。(2)矩阵的旋转:利用函数rot90(A,k)将矩阵A旋转90的k倍,当k为1时可省略。(3)矩阵的逆:对于一个方阵A,如果存在一个与其同阶方阵B,使得:AB=BA=

17、I(I为单位矩阵)则称B为A的逆矩阵,求方阵A的逆矩阵可调用函数inv(A)。(4)方阵的行列式:求方阵A所对应的行列式的值的函数是det(A)。(5)矩阵的秩:矩阵线性无关的行数与列数称为矩阵的秩,求矩阵秩的函数是rank(A)。,1.3 MATLAB程序设计,1、M文件用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。(1)建立新的M文件启动MATLAB文本编辑器有3种方法:菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB

18、 文本编辑器窗口。命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘。命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。,(2)打开已有的M文件菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。命令操作。在MATLAB命令窗口输入命令:edit 文件名,则打开指定的M文件。命令按钮操作。单击MATLAB主窗口工具栏上的

19、Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。,例1-5 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。clc;clear;%清除工作空间中的变量f=input(Input Fahrenheit temperature:);c=5*(f-32)/9,function c=f2c(f)c=5*(f-32)/9;,clc,clear;y=input(Input Fahrenheit temperature:);x=f2c(y),2、程序控制结构(1)顺序结构数据的输入,该函数的调用格式为:A=input(提示信息,选项);数据的输出,disp(输出项);程序的暂停

20、可以使用pause函数,若要强行中止程序的运行可使用Ctrl+C命令。,(2)选择结构if语句1)单分支if语句:if 条件 语句组 end当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。2)双分支if语句:if 条件 语句组1 else 语句组2 end当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。,3)多分支if语句:if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件m 语句组m else 语句组n end语句用于实现多分支选择结构。,例1-6 计算分段

21、函数的值。clc,clear;x=input(请输入x的值:);if x=0 y=(x+sqrt(pi)/exp(2);else y=log(x+sqrt(1+x*x)/2;endy,例1-7 输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。clc,clear;c=input(请输入一个字符,s);if c=A end,switch语句 switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 case

22、 表达式m 语句组m otherwise 语句组n end当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n。当任意一个分支的语句执行完后,直接执行switch语句的下一句。,例1-8 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price200 没有折扣 200price500 3%折扣 500price1000 5%折扣 1000price2500 8%折扣 2500price5000 10%折扣 5000pri

23、ce 14%折扣输入所售商品的价格,求其实际销售价格。,clc,clear;price=input(请输入商品价格:);switch fix(price/100)case 0,1%价格小于200 rate=0;case 2,3,4%价格大于等于200但小于500 rate=3/100;case num2cell(5:9)%价格大于等于500但小于1000 rate=5/100;case num2cell(10:24)%价格大于等于1000但小于2500 rate=8/100;case num2cell(25:49)%价格大于等于2500但小于5000 rate=10/100;otherwise

24、%价格大于等于5000 rate=14/100;endprice=price*(1-rate)%输出商品实际销售价格,try语句语句格式为:try 语句组1catch 语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。,例1-9 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。clc,clear;A=1,2,3;4,5,6;B=7,8,9;10,11,12;try C=A*B;catch C=A.*B;endClasterr%显示出错原因,(3)循环结构

25、for语句for语句的格式为:for 循环变量=表达式1:表达式2:表达式3 循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。,例1-10 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。clc,clear;for m=100:999 m1=fix(m/100);%求m的百位数字 m2=rem(fix(m/10),10);%求m的十位数字 m3=rem(m,10);%求m的个位数字 if m=m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m)endend,while

26、语句while语句的一般格式为:while(条件)循环体语句end其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。,例1-11 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。clc,clear;sum=0;cnt=0;val=input(Enter a number(end in 0):);while(val=0)sum=sum+val;cnt=cnt+1;val=input(Enter a number(end in 0):);endif(cnt 0)sum mean=sum/cntend,break语句和continue语句

27、break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。,例1-12 求100,200之间第一个能被21整除的整数。clc,clear;for n=100:200 if rem(n,21)=0 continue end breakendn,(4)函数文件函数文件的基本结构函数文件由function语句引导,其基本结构为:function 输出形参表=函数名(输入形参表)注释说明部分 函数体语句其中以function开头的

28、一行为引导行,表示该M文件是一个函数文件。函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。函数调用函数调用的一般格式是:输出实参表=函数名(输入实参表)要注意的是,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。,例1-13 利用函数的递归调用,求n!。clc,clear;n=input(请输入一个整数:);f=factor(n)function f=factor(n)if n=1 f=1;else f=factor(n-1)*n;%递归调用求(n-1)!end,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号