中国高校课件下载中心 》 教学资源 》 大学文库

《通信原理实验》课程教学资源(实验指导)MATLAB与通信仿真实验指导书(上)

文档信息
资源类别:文库
文档格式:DOC
文档页数:71
文件大小:1.62MB
团购合买:点击进入团购
内容简介
《通信原理实验》课程教学资源(实验指导)MATLAB与通信仿真实验指导书(上)
刷新页面文档预览

《Matlab与通信仿真》实验指导书(上) 刘毓杨辉徐健和煦黄庆东吉利萍编著 通信与信息工程学院 2009-12

《Matlab 与通信仿真》实验指导书(上) 刘毓 杨辉 徐健 和煦 黄庆东 吉利萍编著 通信与信息工程学院 2009-12

目录 第一章MALTAB基础知识.,· 1.1 MATLAB基础知识 明。,。,1 1.2 MATLAB基本运算.2 1.3 MATLAB程序设计.7 第二章MATLAB计算结果可视化和确知信号分析.13 2.1计算结果可视化.13 2.2确知信号分析. .17 第三章随机信号与数字基带仿真,······ 3.1基本原理和实现示例.24 3.2蒙特卡罗算法. .31 第四章棋拟调制MATLAB实现.··· .35 4.1模拟调制. 35 4.2AM调制解调的MATLAB实现. .36 第五章模拟信号的数字传输.·.·.。 .45 5.1脉冲编码调制.· 45 5.2低通抽样定理. 45 5.3均匀量化原理. .46 5.4非均匀量化. .48 第六章数字频带传输系统.52 6.1数字频带传输原理. 52 6.2信道加性高斯白噪声功率的讨论 。.。,。,。,。,,53 6.3仿真分析.54 第七章通信系统仿真综合实验.,·, 68 7.1基本原理. 68 72实验内容. .68

目 录 第一章 MALTAB 基础知识 . 1 1.1 MATLAB 基础知识 .1 1.2 MATLAB 基本运算 .2 1.3 MATLAB 程序设计 .7 第二章 MATLAB 计算结果可视化和确知信号分析 . 13 2.1 计算结果可视化.13 2.2 确知信号分析.17 第三章 随机信号与数字基带仿真 . 24 3.1 基本原理和实现示例.24 3.2 蒙特卡罗算法.31 第四章 模拟调制 MATLAB 实现 . 35 4.1 模拟调制.35 4.2 AM 调制解调的 MATLAB 实现 .36 第五章 模拟信号的数字传输. 45 5.1 脉冲编码调制.45 5.2 低通抽样定理.45 5.3 均匀量化原理.46 5.4 非均匀量化.48 第六章 数字频带传输系统 . 52 6.1 数字频带传输原理.52 6.2 信道加性高斯白噪声功率的讨论.53 6.3 仿真分析.54 第七章 通信系统仿真综合实验 . 68 7.1 基本原理.68 7.2 实验内容.68

第一章MATLAB基础知识 第一章MALTAB基础蜘识 本章目标 ●了解MATLAB程序设计语言的基本特点,熟悉MATLAB软件运行环境 。掌握创建、保存、打开m文件及函数的方法 。掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进 行处理的能力 1.1 MATLAB基础知识 L.L.1 MATLAB程序设计语言简介 MATLAB,Matrix Laboratory的缩写,是由Math Works公司开发的一套用于科学工 程计算的可视化高性能语言,具有强大的矩阵运算能力。与大家常用的Fortran和C等高 级语言相比,MATLAB的语法规则更简单,更贴近人的思维方方式,被称为“草稿纸式的 语言”。MATLAB软件主要由主包、仿真系统(simulink)和工具箱(toolbox)三大部分 组成。 1.1.2 MATLAB界面及帮助 MATLAB基本界面如图1-1所示,命令窗口包含标题栏、菜单栏、工具栏、命令行区、 状态栏、垂直和水平波动条等区域。 标题栏菜单栏工具栏 命令行区 状态栏 垂直和水平滚动条 ◆HATLAB 日▣☒ Eile Edit yiew Yek Window Help De年?Curent Directory C.MATLABEp5wrk 0 woclpece 7☒ Command Window ☒ 日n盼sakB圆 >》B=iwA) 可e Sire Bytes Class 田A 3x3 72 double arra 田B 3x3 72 double arro -0.0345 0.0345 -0.7759 田as double arra -0.0172 0.0172 -0.1379 33 0.1659 -0.040 1.2028 用 1at 8 double arra 田ney 2x6 double arra 》A林B 用, 1知 8 double arrs ans 1x1 8 double arra 用y 3x4 9 double arra 1.0000 0.0000 0 0 1.0000 0.0000 0.0000 -0.0000 1.0000 Workspace Current Directory >》=p1/2*wp06)+78 r= [7,1938:2,31,8:1,45] B=inv (A) 711.7045 A*B h=[7,19,8:2,31,8:1.4,5] >》 《 么Stat 图1-1 MATLAB基本界面 (1)菜单栏

第一章 MATLAB 基础知识 1 第一章 MALTAB 基础知识 本章目标 ⚫ 了解 MATLAB 程序设计语言的基本特点,熟悉 MATLAB 软件运行环境 ⚫ 掌握创建、保存、打开 m 文件及函数的方法 ⚫ 掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进 行处理的能力 1.1 MATLAB 基础知识 1.1.1 MATLAB 程序设计语言简介 MATLAB,Matrix Laboratory 的缩写,是由 MathWorks 公司开发的一套用于科学工 程计算的可视化高性能语言,具有强大的矩阵运算能力。与大家常用的 Fortran 和 C 等高 级语言相比,MATLAB 的语法规则更简单,更贴近人的思维方方式,被称为“草稿纸式的 语言”。MATLAB 软件主要由主包、仿真系统(simulink)和工具箱(toolbox)三大部分 组成。 1.1.2 MATLAB 界面及帮助 MATLAB 基本界面如图 1-1 所示,命令窗口包含标题栏、菜单栏、工具栏、命令行区、 状态栏、垂直和水平波动条等区域。 图 1-1 MATLAB 基本界面 (1)菜单栏

第一章MATLAB基础知识 在MATLAB主窗口的菜单栏,共包含File、Edit、iew、Web、Window和Help6 个菜单项。 ●File菜单项:File菜单项实现有关文件的操作。 ●Edit莱单项:Edit菜单项用于命令窗口的编辑操作。 ●View菜单项:View菜单项用于设置MATLAB集成环境的显示方式。 ●Web菜单项:Web菜单项用于设置MATLAB的Web操作。 Vindow菜单项:主窗口菜单栏上的Window菜单,只包含一个子菜单Close al山,用于 关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。 ●Help菜单项:Help菜单项用于提供帮助信息。 (2)工具栏 MATLAB主窗口的工具栏共提供了10个命令按钮。这些命令按钮均有对应的菜单命 令,但比菜单命令使用起来更快捷、方便。 (3)命令行区 MATLAB按以下顺序对输入命令进行解释: 。检查它是否是工作空间中的变量,实则显示变量内容。 ●检查它是否是嵌入函数,是则运行之。 ● 检查它是否是子函数。 ●检查它是否是私有函数。 ● 检查它是否是位于MATLAB搜索路径范围内的函数文件或脚本文件。 MATLAB里有以下几种方法可获得帮助: (1)帮助命令(help)是查询函数相关信息的最直接方式,信息会直接显示在命令窗口中。 键入help sin,会显示sin相关信息。 (2)lookfor命令可以从键入的关键字列出所有相关的题材,和hep相比,lookfor覆盖范 围更广,可查找到某个主题所有词组或短语。 (3)帮助窗口(help wir血dow)提供与帮助命令相同的信息,但帮助窗口界面更为方便直接。 (4)帮助桌面(help desk)通过在命令窗口中选择帮助菜单的“help desk”选项或键入 helpdesk命令即可进入帮助桌面。 (5)在线帮助页是帮助桌面的在线帮助均有相应的PDF格式文件。 (6)Mathworks网站,对于连接入Internet的用户通过Mathworks公司的网站 wwW.nathworks.com询问有关问题。 1.2 MATLAB基本运算 1.2.1 MATLAB内部特殊变量和常数 MATLAB内部有很多变量和常数,用来表达特殊含义,常用的有: ●变量ans:指示当前未定义变量名的答案。 ●常数eps:表示浮点相对精度,其值是从1.0到下一个最大浮点数之间的差值。 ●常数Inf:表示无穷大。 ●虚数单位ij:表示不定型值,是由0/0运算产生。 ●常数p:表示圆周率r。 1.2.2变量类型 (1)变量命名规则 ATLAB中对变量的命名应遵循以下规则: ●变量名可以由字母、数字和下划线混合组成,但必须以字母开头

第一章 MATLAB 基础知识 2 在 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)是查询函数相关信息的最直接方式,信息会直接显示在命令窗口中。 键入 help sin,会显示 sin 相关信息。 (2)lookfor 命令可以从键入的关键字列出所有相关的题材,和 help 相比,lookfor 覆盖范 围更广,可查找到某个主题所有词组或短语。 (3)帮助窗口(help window)提供与帮助命令相同的信息,但帮助窗口界面更为方便直接。 (4)帮助桌面(help desk)通过在命令窗口中选择帮助菜单的“help desk”选项或键入 helpdesk 命令即可进入帮助桌面。 (5)在线帮助页是帮助桌面的在线帮助均有相应的 PDF 格式文件。 ( 6) Mathworks 网站,对于连接入 Internet 的用户通过 Mathworks 公司的网站 www.mathworks.com 询问有关问题。 1.2 MATLAB 基本运算 1.2.1 MATLAB 内部特殊变量和常数 MATLAB 内部有很多变量和常数,用来表达特殊含义,常用的有: ⚫ 变量 ans:指示当前未定义变量名的答案。 ⚫ 常数 eps:表示浮点相对精度,其值是从 1.0 到下一个最大浮点数之间的差值。 ⚫ 常数 Inf:表示无穷大。 ⚫ 虚数单位 i j:表示不定型值,是由 0/0 运算产生。 ⚫ 常数 pi:表示圆周率π。 1.2.2 变量类型 (1)变量命名规则 MATLAB 中对变量的命名应遵循以下规则: ⚫ 变量名可以由字母、数字和下划线混合组成,但必须以字母开头

第一章MATLAB基础知识 ●. 字符长度不能大于31。 ·变量命名区分大小写。 (2)局部变量和全局变量 局部变量是指那些每个函数体内自己定义的,不能从其他函数和MATLAB工作空间访 问的变量。 全局变量是指用关键字“goal”声明的变量。全局变量名应尽量大写,并能反映它本 身的含义。如果需要在工作空间和几个函数中都能访问一个全局变量,必须在工作空间和 几个函数中都声明该变量是全局的。 1.2.3内存变量管理 (1)内存变量的删除与修政 clear命令用于刑除MATLAB工作空间中的变量。 cc命令用于清空MATLAB命令窗口中的变量。 who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。who 命令只显示出驻留变量的名称,wos在给出变量名的同时,还给出它们的大小、所占字节 数及数据类型等信息。 (2)内存变量文件 利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩 展名是.mat。MAT文件的生成和装入由save和load命令来完成。常用格式为: save文件名[变量名表]卜append-ascii] load文件名[变量名表]-ascii 1.2.4 MATLAB常用数学函数 MATLAB提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐 项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。函数使用说明: ●三角函数以弧度为单位计算。 ● abs函数可以求实数的绝对值、复数的模、字符申的ASCⅡ码值。 ● 用于取整的函数有fi、loor、ceil、round,要注意它们的区别。 ● rem与mod函数的区别。rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标 量。 1.2.5 MATLAB矩阵生成 MATLAB具有强大的矩阵运算和数据处理功能,对矩阵的处理必须遵从代数规则。 (1)矩阵的建立 ·直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元 素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔, 不同行的元素之间用分号分隔。 ●利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。下面通过一个简单例 子来说明如何利用M文件创建矩阵。 ●利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:el:e2:e3,其中e1为初始值,e2为步 长,3为终止值。 在MATLAB中,还可以用linspace函数产生行向量。其调用格式为:linspacet(a,b,n), 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。显然,linspace(a,b,n)与

第一章 MATLAB 基础知识 3 ⚫ 字符长度不能大于 31。 ⚫ 变量命名区分大小写。 (2)局部变量和全局变量 局部变量是指那些每个函数体内自己定义的,不能从其他函数和 MATLAB 工作空间访 问的变量。 全局变量是指用关键字“global”声明的变量。全局变量名应尽量大写,并能反映它本 身的含义。如果需要在工作空间和几个函数中都能访问一个全局变量,必须在工作空间和 几个函数中都声明该变量是全局的。 1.2.3 内存变量管理 (1)内存变量的删除与修改 clear 命令用于删除 MATLAB 工作空间中的变量。 clc 命令用于清空 MATLAB 命令窗口中的变量。 who和 whos这两个命令用于显示在 MATLAB 工作空间中已经驻留的变量名清单。who 命令只显示出驻留变量的名称,whos 在给出变量名的同时,还给出它们的大小、所占字节 数及数据类型等信息。 (2)内存变量文件 利用 MAT 文件可以把当前 MATLAB 工作空间中的一些有用变量长久地保留下来,扩 展名是.mat。MAT 文件的生成和装入由 save 和 load 命令来完成。常用格式为: save 文件名 [变量名表] [-append][-ascii] load 文件名 [变量名表] [-ascii] 1.2.4 MATLAB 常用数学函数 MATLAB 提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐 项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。函数使用说明: ⚫ 三角函数以弧度为单位计算。 ⚫ abs 函数可以求实数的绝对值、复数的模、字符串的 ASCII 码值。 ⚫ 用于取整的函数有 fix、floor、ceil、round,要注意它们的区别。 ⚫ rem 与 mod 函数的区别。rem(x,y)和 mod(x,y)要求 x,y 必须为相同大小的实矩阵或为标 量。 1.2.5 MATLAB 矩阵生成 MATLAB 具有强大的矩阵运算和数据处理功能,对矩阵的处理必须遵从代数规则。 (1)矩阵的建立 ⚫ 直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元 素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔, 不同行的元素之间用分号分隔。 ⚫ 利用 M 文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个 M 文件。下面通过一个简单例 子来说明如何利用 M 文件创建矩阵。 ⚫ 利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中 e1 为初始值,e2 为步 长,e3 为终止值。 在 MATLAB 中,还可以用 linspace 函数产生行向量。其调用格式为:linspace(a,b,n), 其中 a 和 b 是生成向量的第一个和最后一个元素,n 是元素总数。显然,linspace(a,b,n)与

第一章MATLAB基础知识 a:(b-a)/(n-1):b等价。 ●建立大矩阵 大矩阵可由方括号中的小矩阵或向量建立起来。 (2)矩阵的拆分 ·矩阵元素 通过下标引用矩阵的元素,例如 A=1,2,3;4,5,6 A(1,2) ans=2 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列 顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如 A=1,2,3;4,5,6 A(3) ans=2 显然,序号(ndex)与下标(Subscript)是一一对应的,以mXn矩阵A为例,矩阵元素Aij) 的序号为G-l)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。 ·矩阵拆分 1)利用冒号表达式获得子矩阵 ①A(:j)表示取A矩阵的第j列全部元素;A(,:)表示A矩阵第i行的全部元素;A(j) 表示取A矩阵第i行、第j列的元素。 ②A(itm,:)表示取A矩阵第i~i计m行的全部元素;A(:,k:k+m)表示取A矩阵第k~ k+m列的全部元素,A(i:i计m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的 所有元素。 此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某 一维的末尾元素下标。 2)利用空矩阵别除矩阵的元素 在MATLAB中,定义为空矩阵。给变量X赋空矩阵的语句为X|。注意,X=与 clear X不同,dear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为 0。 (3)特殊矩阵 常用的产生通用特殊矩阵的函数有: zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(么矩阵)。 eye:产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn::产生均值为0,方差为1的标准正态分布随机矩阵。 例1-1分别建立3×3、3×2和与矩阵A同样大小的零矩阵。 ()建立一个3X3零矩阵。 zeros(3) (2)建立一个3X2零矩阵。 zeros(3,2) (③)设A为2X3矩阵,则可以用zros(siz(A)建立一个与矩阵A同样大小零矩阵。 A=123;456;%产生一个2X3阶矩阵A zeros(size(A)) %产生一个与矩阵A同样大小的零矩阵

第一章 MATLAB 基础知识 4 a:(b-a)/(n-1):b 等价。 ⚫ 建立大矩阵 大矩阵可由方括号中的小矩阵或向量建立起来。 (2)矩阵的拆分 ⚫ 矩阵元素 通过下标引用矩阵的元素,例如 A=[1,2,3;4,5,6]; A(1,2) ans=2 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列 顺序。在 MATLAB 中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如 A=[1,2,3;4,5,6]; A(3) ans=2 显然,序号(Index)与下标(Subscript )是一一对应的,以 m×n 矩阵 A 为例,矩阵元素 A(i,j) 的序号为(j-1)*m+i。其相互转换关系也可利用 sub2ind 和 ind2sub 函数求得。 ⚫ 矩阵拆分 1) 利用冒号表达式获得子矩阵 ① A(:,j)表示取 A 矩阵的第 j 列全部元素;A(i,:)表示 A 矩阵第 i 行的全部元素;A(i,j) 表示取 A 矩阵第 i 行、第 j 列的元素。 ② A(i:i+m,:)表示取 A 矩阵第 i~i+m 行的全部元素;A(:,k:k+m)表示取 A 矩阵第 k~ k+m 列的全部元素,A(i:i+m,k:k+m)表示取 A 矩阵第 i~i+m 行内,并在第 k~k+m 列中的 所有元素。 此外,还可利用一般向量和 end 运算符来表示矩阵下标,从而获得子矩阵。end 表示某 一维的末尾元素下标。 2) 利用空矩阵删除矩阵的元素 在 MATLAB 中,定义[]为空矩阵。给变量 X 赋空矩阵的语句为 X=[]。注意,X=[]与 clear X 不同,clear 是将 X 从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为 0。 (3)特殊矩阵 常用的产生通用特殊矩阵的函数有: zeros:产生全 0 矩阵(零矩阵)。 ones:产生全 1 矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生 0~1 间均匀分布的随机矩阵。 randn:产生均值为 0,方差为 1 的标准正态分布随机矩阵。 例 1-1 分别建立 3×3、3×2 和与矩阵 A 同样大小的零矩阵。 (1) 建立一个 3×3 零矩阵。 zeros(3) (2) 建立一个 3×2 零矩阵。 zeros(3,2) (3) 设 A 为 2×3 矩阵,则可以用 zeros(size(A))建立一个与矩阵 A 同样大小零矩阵。 A=[1 2 3;4 5 6]; %产生一个 2×3 阶矩阵 A zeros(size(A)) %产生一个与矩阵 A 同样大小的零矩阵

第一章MATLAB基础知识 例1-2建立随机矩阵:(1)在区间I20,501内均匀分布的5阶随机矩阵。(2)均值为0.6、方差 为0.1的5阶正态分布随机矩阵。 命令如下: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5) 此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A 重新排成mXn的二维矩阵。 1.2.6 MATLAB矩阵运算 (1)算术运算 ●基本算术运算 MATLAB的基本算术运算有:十(加)、一(减)、*乘)、/右除)人左除)、人^乘方)。注 意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。 1)矩阵加减运算 假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。运算规则是:若 A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如 果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。 2)矩阵乘法 假定有两个矩阵A和B,若A为mXn矩阵,B为nXp矩阵,则C=A*B为mXp矩 阵。 3)矩阵除法 在MATLAB中,有两种矩阵除法运算:和/,分别表示左除和右除。如果A矩阵是非 奇异方阵,则AB和B/A运算可以实现。AB等效于A的逆左乘B矩阵,也就是iv(A)*B, 而BA等效于A矩阵的逆右乘B矩阵,也就是B*iv(A)。对于含有标量的运算,两种除法 运算的结果相同,如34和43有相同的值,都等于0.75。又如,设a=10.5,2,则 a/5=51a=2.10005.0000。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩 阵的关系。对于矩阵运算,一般AB≠B/A。 4)矩阵的乘方 一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量。 ●点运算 在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所 以叫点运算。点运算符有.*、人和.。两矩阵进行点运算是指它们的对应元素进行相关运 算,要求两矩阵的维参数相同。 (2)关系运算 MATLAB提供了6种关系运算符:大于)、人>=(大于或等 于)人=等于)、~=(不等于)。它们的含义不难理解,但要注意其书写方法与数学中的不等 式符号不尽相同。关系运算符的运算法则为: ●当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否 则为0。 ● 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关 系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原 矩阵相同的矩阵,它的元素由0或1组成。 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量 关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与 原矩阵相同的矩阵,它的元素由0或1组成

第一章 MATLAB 基础知识 5 例 1-2 建立随机矩阵:(1) 在区间[20,50]内均匀分布的 5 阶随机矩阵。(2) 均值为 0.6、方差 为 0.1 的 5 阶正态分布随机矩阵。 命令如下: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5) 此外,常用的函数还有 reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵 A 重新排成 m×n 的二维矩阵。 1.2.6 MATLAB 矩阵运算 (1)算术运算 ⚫ 基本算术运算 MATLAB 的基本算术运算有:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)。注 意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。 1) 矩阵加减运算 假定有两个矩阵 A 和 B,则可以由 A+B 和 A-B 实现矩阵的加减运算。运算规则是:若 A 和 B 矩阵的维数相同,则可以执行矩阵的加减运算,A 和 B 矩阵的相应元素相加减。如 果 A 与 B 的维数不相同,则 MATLAB 将给出错误信息,提示用户两个矩阵的维数不匹配。 2) 矩阵乘法 假定有两个矩阵 A 和 B,若 A 为 m×n 矩阵,B 为 n×p 矩阵,则 C=A*B 为 m×p 矩 阵。 3) 矩阵除法 在 MATLAB 中,有两种矩阵除法运算:\和/,分别表示左除和右除。如果 A 矩阵是非 奇异方阵,则 A\B 和 B/A 运算可以实现。A\B 等效于 A 的逆左乘 B 矩阵,也就是 inv(A)*B, 而 B/A 等效于 A 矩阵的逆右乘 B 矩阵,也就是 B*inv(A)。对于含有标量的运算,两种除法 运算的结果相同,如 3/4 和 4\3 有相同的值,都等于 0.75。又如,设 a=[10.5,25],则 a/5=5\a=[2.1000 5.0000]。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩 阵的关系。对于矩阵运算,一般 A\B≠B/A。 4) 矩阵的乘方 一个矩阵的乘方运算可以表示成 A^x,要求 A 为方阵,x 为标量。 ⚫ 点运算 在 MATLAB 中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所 以叫点运算。点运算符有.*、./、.\和.^。两矩阵进行点运算是指它们的对应元素进行相关运 算,要求两矩阵的维参数相同。 (2)关系运算 MATLAB 提供了 6 种关系运算符:(大于)、>=(大于或等 于)、==(等于)、~=(不等于)。它们的含义不难理解,但要注意其书写方法与数学中的不等 式符号不尽相同。关系运算符的运算法则为: ⚫ 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为 1,否 则为 0。 ⚫ 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关 系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原 矩阵相同的矩阵,它的元素由 0 或 1 组成。 ⚫ 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量 关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与 原矩阵相同的矩阵,它的元素由 0 或 1 组成

第一章MATLAB基础知识 例1-3产生5阶随机方阵A,其元素为10,90区间的随机整数,然后判断A的元素是否能 被3整除。 (1)生成5阶随机方阵A。 A=fix(90-10+1)*rand(5)+10) (2)判断A的元素是否可以被3整除。 P=rem(A,3)=0 其中,rem(A,3)是矩阵A的每个元素除以3的余数矩阵。此时,0被扩展为与A同维 数的零矩阵,P是进行等于仁=)比较的结果矩阵。 (3)逻辑运算 MATLAB提供了3种逻辑运算符:&(与)、I(或)和~(非)。逻辑运算的运算法则为: ● 在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。 ● 设参与逻辑运算的是两个标量a和b,那么, a&ba,b全为非零时,运算结果为1,否则为0。 aba,b中只要有一个非零,运算结果为1。 ~a当a是零时,运算结果为1;当a非零时,运算结果为0。 若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则 逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成。 ● 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与炬阵中的每个元素 之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或0 组成。 ● 逻辑非是单目运算符,也服从矩阵运算规则。在算术、关系、逻辑运算中,算术运算 优先级最高,逻辑运算优先级最低。 例1-4建立矩阵A,然后找出大于4的元素的位置。 A=4,-65,-54,0,6;56,0,67,-45,01 find(A>4) 1.2.7 MATLAB中的矩阵分析 (1)矩阵的转置 转置运算符是单撒号'。 (2)矩阵的旋转 利用函数rot90(A,k将矩阵A旋转90°的k倍,当k为1时可省略。 (3)矩阵的逆 对于一个方阵A,如果存在一个与其同阶的方阵B,使得:AB=B·A=I(I为单位矩阵) 则称B为A的逆矩阵,当然,A也是B的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作, 容易出错,但在MATLAB中,求一个矩阵的逆非常容易。求方阵A的逆矩阵可调用函数 inv(A)。 (4)方阵的行列式 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应 的行列式的值。在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)。 (5)矩阵的秩 矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是 rank(A)。 6

第一章 MATLAB 基础知识 6 例 1-3 产生 5 阶随机方阵 A,其元素为[10,90]区间的随机整数,然后判断 A 的元素是否能 被 3 整除。 (1) 生成 5 阶随机方阵 A。 A=fix((90-10+1)*rand(5)+10) (2) 判断 A 的元素是否可以被 3 整除。 P=rem(A,3)==0 其中,rem(A,3)是矩阵 A 的每个元素除以 3 的余数矩阵。此时,0 被扩展为与 A 同维 数的零矩阵,P 是进行等于(==)比较的结果矩阵。 (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 组成。 ⚫ 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素 之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由 1 或 0 组成。 ⚫ 逻辑非是单目运算符,也服从矩阵运算规则。在算术、关系、逻辑运算中,算术运算 优先级最高,逻辑运算优先级最低。 例 1-4 建立矩阵 A,然后找出大于 4 的元素的位置。 A=[4,-65,-54,0,6;56,0,67,-45,0] find(A>4) 1.2.7 MATLAB 中的矩阵分析 (1)矩阵的转置 转置运算符是单撇号’。 (2)矩阵的旋转 利用函数 rot90(A,k)将矩阵 A 旋转 90º的 k 倍,当 k 为 1 时可省略。 (3)矩阵的逆 对于一个方阵 A,如果存在一个与其同阶的方阵 B,使得:A·B=B·A=I (I 为单位矩阵) 则称 B 为 A 的逆矩阵,当然,A 也是 B 的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作, 容易出错,但在 MATLAB 中,求一个矩阵的逆非常容易。求方阵 A 的逆矩阵可调用函数 inv(A)。 (4)方阵的行列式 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应 的行列式的值。在 MATLAB 中,求方阵 A 所对应的行列式的值的函数是 det(A)。 (5)矩阵的秩 矩阵线性无关的行数与列数称为矩阵的秩。在 MATLAB 中,求矩阵秩的函数是 rank(A)

第一章MATLAB基础知识 1.3 MATLAB程序设计 1.3.1M文件 用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两 类:命令文件(Script File)和函数文件(Function File)。M文件是一个文本文件,它可以用任 何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。 (1)建立新的M文件 启动MATLAB文本编辑器有3种方法: ● 菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-ile命令, 屏幕上将出现MATLAB文本编辑器窗口。 ● 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入 M文件的内容并存盘。 ● 命令按钮操作。单击MATLAB主窗口工具栏上的NewM-Fle命令按钮,启动MATLAB 文本编辑器后,输入M文件的内容并存盘。 (2)打开已有的M文件 打开已有的M文件,也有3种方法: 菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话 框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行 编辑修改,编辑完成后,将M文件存盘。 ●命令操作。在MATLAB命令窗口输入命令:edit文件名,则打开指定的M文件。 ●命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对 话框中选择所需打开的M文件。 例1-5分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。 程序1: 首先建立命令文件并以文件名f2c.m存盘。 clear; %清除工作空间中的变量 f=input('Input Fahrenheit temperature:) c=5*(f-32)/9 然后在MATLAB的命令窗口中输入2c,将会执行该命令文件,执行情况为: Input Fahrenheit temperature:73 c= 22.7778 程序2: 首先建立函数文件2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input('Input Fahrenheit temperature:) x=f2c(y) 输出情况为: Input Fahrenheit temperature:70 c= 21.1111 个

第一章 MATLAB 基础知识 7 1.3 MATLAB 程序设计 1.3.1 M 文件 用 MATLAB 语言编写的程序,称为 M 文件。M 文件可以根据调用方式的不同分为两 类:命令文件(Script File)和函数文件(Function File)。M 文件是一个文本文件,它可以用任 何编辑程序来建立和编辑,而一般常用且最为方便的是使用 MATLAB 提供的文本编辑器。 (1)建立新的 M 文件 启动 MATLAB 文本编辑器有 3 种方法: ⚫ 菜单操作。从 MATLAB 主窗口的 File 菜单中选择 New 菜单项,再选择 M-file 命令, 屏幕上将出现 MATLAB 文本编辑器窗口。 ⚫ 命令操作。在 MATLAB 命令窗口输入命令 edit,启动 MATLAB 文本编辑器后,输入 M 文件的内容并存盘。 ⚫ 命令按钮操作。单击 MATLAB主窗口工具栏上的 New M-File命令按钮,启动 MATLAB 文本编辑器后,输入 M 文件的内容并存盘。 (2)打开已有的 M 文件 打开已有的 M 文件,也有 3 种方法: ⚫ 菜单操作。从 MATLAB 主窗口的 File 菜单中选择 Open 命令,则屏幕出现 Open 对话 框,在 Open 对话框中选中所需打开的 M 文件。在文档窗口可以对打开的 M 文件进行 编辑修改,编辑完成后,将 M 文件存盘。 ⚫ 命令操作。在 MATLAB 命令窗口输入命令:edit 文件名,则打开指定的 M 文件。 ⚫ 命令按钮操作。单击 MATLAB 主窗口工具栏上的 Open File 命令按钮,再从弹出的对 话框中选择所需打开的 M 文件。 例 1-5 分别建立命令文件和函数文件,将华氏温度 f 转换为摄氏温度 c。 程序 1: 首先建立命令文件并以文件名 f2c.m 存盘。 clear; %清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); c=5*(f-32)/9 然后在 MATLAB 的命令窗口中输入 f2c,将会执行该命令文件,执行情况为: Input Fahrenheit temperature:73 c = 22.7778 程序 2: 首先建立函数文件 f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在 MATLAB 的命令窗口调用该函数文件。 clear; y=input('Input Fahrenheit temperature:'); x=f2c(y) 输出情况为: Input Fahrenheit temperature:70 c = 21.1111

第一章MATLAB基础知识 X= 21.1111 1.3.2程序控制结构 (1)顺序结构 ●数据的输入,该函数的调用格式为:A=input((提示信息,选项); 例1-5想输入一个人的姓名,可采用命令: xm=input('What"s your name?",'s');%采用's'选项,则允许用户输入一个字符串。 ●数据的输出,其调用格式为:disp(输出项): ● 程序的暂停可以使用pause函数,其调用格式为:pause((延迟秒数):如果省略延迟时 间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。若要强行中 止程序的运行可使用Ctr+C命令。 (2)选择结构 ●if语句 在MATLAB中,if语句有3种格式。 1)单分支if语句: if条件 语句组 end 当条件成立时,则执行语句组,执行完之后继续执行f语句的后继语句,若条件不成 立,则直接执行f语句的后继语句。 2)双分支if语句: if条件 语句组1 else 语句组2 end 当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执 行f语句的后继语句。 例1-6计算分段函数的值。 程序如下: x=input('请输入x的值:); if x<=0 y=(x+sqrt(pi))/exp(2); else y=log(x+sgrt(1+x*x))/2: end y 3)多分支f语句: if条件1 语句组1 elseif条件2 语句组2 . elseif条件m

第一章 MATLAB 基础知识 8 x = 21.1111 1.3.2 程序控制结构 (1)顺序结构 ⚫ 数据的输入,该函数的调用格式为:A=input(提示信息,选项); 例 1-5 想输入一个人的姓名,可采用命令: xm=input('What''s your name?','s'); %采用's'选项,则允许用户输入一个字符串。 ⚫ 数据的输出,其调用格式为:disp(输出项); ⚫ 程序的暂停可以使用 pause 函数,其调用格式为:pause(延迟秒数);如果省略延迟时 间,直接使用 pause,则将暂停程序,直到用户按任一键后程序继续执行。若要强行中 止程序的运行可使用 Ctrl+C 命令。 (2)选择结构 ⚫ if 语句 在 MATLAB 中,if 语句有 3 种格式。 1) 单分支 if 语句: if 条件 语句组 end 当条件成立时,则执行语句组,执行完之后继续执行 if 语句的后继语句,若条件不成 立,则直接执行 if 语句的后继语句。 2) 双分支 if 语句: if 条件 语句组 1 else 语句组 2 end 当条件成立时,执行语句组 1,否则执行语句组 2,语句组 1 或语句组 2 执行后,再执 行 if 语句的后继语句。 例 1-6 计算分段函数的值。 程序如下: x=input('请输入 x 的值:'); if x<=0 y= (x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x*x))/2; end y 3) 多分支 if 语句: if 条件 1 语句组 1 elseif 条件 2 语句组 2 . elseif 条件 m

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档