《matlab通信系统仿真.ppt》由会员分享,可在线阅读,更多相关《matlab通信系统仿真.ppt(164页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB通信系统仿真通信系统仿真陈晓红手机:邮箱:第一章第一章 MATLAB语言基础语言基础1.1 MATLAB简介u 了解MATLAB语言的功能和主要特点u 掌握MATLAB语言的基本操作1.1 MATLAB简介简介一、概述 MATLAB的名称源自Matrix Laboratory,它的首创者是在数值线性代数领域颇有影响的Cleve Moler博士,他也是生产经营MATLAB产品的美国Mathworks公司的创始人之一。MATLAB是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而使其被广泛地应用于科学计算、控制系
2、统、信息处理等领域的分析、仿真和设计工作中。MATLAB产品族可以用来进行如下工作:l数值分析;l数值和符号计算;l工程与科学绘图;l控制系统的设计与仿真;l数字图像处理;l数字信号处理;l通讯系统设计与仿真;l财务与金融工程等。1.1 MATLAB简介简介二、MATLAB仿真的意义 当在实际电子通信系统中进行试验研究比较困难或者根本无法实现时,仿真技术就成为必然的选择。1.1 MATLAB简介简介 MATLAB与其它计算机高级语言如C,C+等相比,MATLAB语言编程要简洁得多,编程语句更加接近数学描述,可读性好,其强大的图形功能和可视化数据处理能力也是其它高级语言望尘莫及的。对于具有任何一
3、门高级语言基础的学生来说,学习MATLAB十分容易。1.1 MATLAB简介简介 MATLAB使得人们摆脱了常规计算机编程的繁琐,让人们能够将大部分精力投入到研究问题的数学建模上。可以说,应用MATLAB这一数学计算和系统仿真的强大工具,可以使科学研究的效率得以成百倍的提高。1.1 MATLAB简介简介二、MATLAB特点l跨平台的数学语言l超高级语言l语法简单,编程风格接近数学风格l强大的绘图功能l计算精度很高l拥有学科众多,领域广泛的工具箱l可移植1.1 MATLAB简介简介二、MATLAB入门操作l 命令窗口 Command Windowl 历史命令窗口 Command Historyl
4、 当前目录窗口 Current Directoryl 工作空间窗口 Workspace1.1 MATLAB简介简介1.1 MATLAB简介简介1.Command Window 可显示除图像以为的所有结果l最简单的计算器使用法 例1.1 求12+2(7-4)32 例1.2 输入矩阵 例1.3 矩阵A的分行输入 lMATLAB表达式的基本运算符 加+减-乘*除 /或 幂 lMATLAB中可以采用逗号或空格来分隔矩阵中的列元素,而采用分号或回车符来分隔矩阵的行,整个矩阵包含在方括号“”内。1.1 MATLAB简介简介l数值的记述 MATLAB的数值采用习惯的十进制表示,可以带小数点或负号 3 -99
5、 0.001 9.456 1.3e-3 4.5e331.1 MATLAB简介简介l变量命名规则 变量名、函数名对字母大小敏感;变量名的第一个字符必须是英文字母 (可包含英文、数字和下划线,但不得包含空格和标点)。1.1 MATLAB简介简介1.1 MATLAB简介简介l复数和复数矩阵 MATLAB把复数作为一个整体处理。虚数单位用预定义变量i或j表示;复数z=a+bi=直角坐标是和极坐标系之间转换的MATLAB指令:real(z)imag(z)abs(z)angle(z)MATLAB的矩阵元素允许是复数、复变量和由它们组成的表达式1.1 MATLAB简介简介例1.5 z1=3+4i,z2=1+
6、2i,z3=,计算z=z1z2/z3例1.6 A=1,3;2,4-5,8;6,9*i B=1+5i,2+6i;3+8*i,4+9*i C=A*B例1.7 求上述复数矩阵C的实部、虚部、模和相角 1.1 MATLAB简介简介l指令窗的常用控制指令 clc 清除指令窗中显示内容 clear 清除工作空间中保存的变量 exit 关闭/退出MATLAB quit 关闭/退出MATLAB 2.Command History Window 记录着用户在指令窗中所输入过的所有指令行。1.1 MATLAB简介简介3.Current Directory Window 组织、管理和使用所有matlab文件和非ma
7、tlab文件。1.1 MATLAB简介简介例1.8 在当前目录窗口中获取M和MAT文件信息,比如matlab6p5toolboxmatlabelmatones.m文件的文件信息。(1)使matlab6p5toolboxmatlabelmat出现在当前目录栏中。此时,就可在文件列表中看到ones.m的文件类型和简单描述。(2)下拉菜单项File:Preference,引出参数选择Preference对话框,点选Current Directory项,勾选“Show M-file comments and MAT-file contents”。这样就可以看到详细的文件描述。1.1 MATLAB简介简
8、介4.Workspace Window 内存变量的查阅、保存和编辑。1.1 MATLAB简介简介l内存变量的查阅与编辑l数组编辑器和大数组的输入l内存变量的保存l内存变量的删除1.1 MATLAB简介简介第一章第一章 MATLAB语言基础语言基础1.2 MATLAB数值数组及其运算u 掌握一、二维数值数组的创建与寻访u 掌握数组运算与矩阵运算的区别u 了解字符串运算 数组是指一组实数或复数排成的长方阵列,它可以是一维的“行”或“列”,也可以是二维的“矩形”,也可以是三维的“若干同维矩形的堆叠”,甚至更高的维数。数组运算是指:无论在数组是施加什么运算(加减乘除或函数),总认定是那种运算对被运算组
9、中的每个元素平等地实施同样的操作。1.2 MATLAB数值数组及其运算数值数组及其运算1.2 MATLAB数值数组及其运算数值数组及其运算引例2.1 绘制函数 在 时的曲线 x=0:0.1:1;y=x.*exp(-x);plot(x,y)xlabel(x);ylabel(y);title(y=x.*exp(-x);1.2 MATLAB数值数组及其运算数值数组及其运算说明:1.第一句指令定义自变量采样数组:以0为起点,每隔0.1取一个采样点,直到1为止,该数组是111的数组 2.运算符“.*”,实施数组x和数组exp(x)对应元素的相乘。因此,所得结果y也是111的数组。数组运算避免了效率很低的
10、循环运算。3.plot根据所得的x数组和y数组,绘制曲线。4.定义在连续区间上的函数,进行数值计算时必须对此给定的连续区间进行适当的采样,得到一个采样值数组。数值计算都是关于这种采样数组进行的。1.2 MATLAB数值数组及其运算数值数组及其运算一、一维数组的创建 (1)逐个元素输入法 (2)冒号生成法 (3)函数生成法1.2 MATLAB数值数组及其运算数值数组及其运算(1)逐个元素输入法例2.2 x=2 pi/2 sqrt(3)3+5*i (2)冒号生成法 x=a:inc:b 说明:1、a是数组的第一个元素;inc是采样点之间的间隔,即步长。2、a,inc,b用冒号分隔,冒号必须在英文状态
11、下。3、inc可以省略,省略时,默认其值为1。4、inc可取整数或负数。例2.3 A=1:2:10,B=1:10,C=10:-1:11.2 MATLAB数值数组及其运算数值数组及其运算(3)函数生成法 线性等分A=linspace(a1,an,n)对数等分A=logspace(a1,an,n)说明:1、A=linspace(a1,an,n),a1首元素,an尾元素,n是采样总点数(默认为100)。该指令作用与A=a1:(an-a1)/n-1:an相同。2、A=logspace(a1,an,n),a1是首元素的幂,an是尾元素的幂,n是采样总点数。A(n)=n默认50。例2.4 A=linspa
12、ce(3,50,6),B=logspace(2,6,3)1.2 MATLAB数值数组及其运算数值数组及其运算二、一维数组的子数组的寻访和赋值例2.5 rand(state,0);x=rand(1,5);x(3)%寻访数组x的第三个元素 x(1 2 5)%寻访数组x的第一、二、五个元素组成的子数组 x(1:3)%寻访前3个元素组成的子数组 x(3:end)%寻访前3个以为的全部其它数据 x(3:-1:1)%由前3个元素倒排成的子数组 x(1 2 3 4 4 3 2 1)%对元素可以重复访问,所得数组长度允许大于原数组1.2 MATLAB数值数组及其运算数值数组及其运算例2.4 子数组的赋值 x(
13、3)=0%对上例中的第三个元素赋值为0 x(1 4)=1 1%对x数组的第一、四个元素都赋值为1说明:保证被重新赋值的子数组的长度与送入的长度相同1.2 MATLAB数值数组及其运算数值数组及其运算三、二维数组的创建 对于较小数组,从键盘上直接输入比较简单,二维数组必须有以下3个要素:1、整个输入数组必须以方括号“”为其首尾;2、数组的行与行之间必须用分号“;”,或回车键隔离;3、数组元素必须用逗号或空格分隔。例2.6 a=2.7358;b=33/79;C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i1.2 MATLAB数值数组及其运算数值数组及其运算 对
14、于较大而复杂的数组,可用两种方法:1、公式编辑器 2、专门建立一个M文件,起名保存,以后只要在matlab指令窗中,运行该文件,文件中的数组就会自动生成于matlab内存中。1.2 MATLAB数值数组及其运算数值数组及其运算四、二维数组的子数组寻访和赋值 1、二维数组元素的标识 全下标标识法 如 A(3,5)单下标标识法 由于数组在matlab中规定是按列存储的,首先对二维数组的所有元素“一维编号”,即设想把二维数组的所有列,按先左后右,首尾相接排成一维长列,然后自上而下对元素位置进行编号。以(mn)的二维数组A为例,若全下标元素位置是“第r行第c列”,则相应的单下标为 l=(c-1)m+r
15、1.2 MATLAB数值数组及其运算数值数组及其运算四、二维数组的子数组寻访和赋值 2、二维数组的子数组寻访和赋值 A(r,c)A(r,:)由A的r行和全部列上的元素组成 A(:,c)由A的全部行和c列上的元素组成 A(:)单下标全元素寻访 A(:)=D(:)全元素赋值方式,A、D两个数组的总元素相等,但行宽、列长不一定相同。1.2 MATLAB数值数组及其运算数值数组及其运算例2.7 A=zeros(2,4)A(:)=1:8 s=2 3 5 A(s)Sa=10 20 30 A(s)=Sa A(:,2,3)=ones(2)1.2 MATLAB数值数组及其运算数值数组及其运算五、标准数组生成函数
16、和数组操作函数1、eye 产生单位数组 ones 全1数组 zeros 全0数组 rand 均匀分布随机数组 randn 正态分布随机数组1.2 MATLAB数值数组及其运算数值数组及其运算例2.8 ones(1,2)randn(state,0)randn(2,3)eye(3)1.2 MATLAB数值数组及其运算数值数组及其运算五、标准数组生成函数和数组操作函数2、数组操作函数 reshape 总元素数不变的前提下,改变各维的大小 tril 提取数组下三角元素,生成下三角阵 triu 提取数组上三角元素,生成上三角阵 flipud 沿水平轴上下翻转 fliplr 沿垂直轴左右翻转 repmat
17、 按指定维上的数组铺放模块数组 rot90 逆时针旋转90度1.2 MATLAB数值数组及其运算数值数组及其运算例2.9 a=-4:4,A=reshape(a,3,3),flipud(A)fliplr(A)rot90(A)repmat(A,1,3)1.2 MATLAB数值数组及其运算数值数组及其运算六、数组运算和矩阵运算 二维数组和矩阵在外观外形和数据结构上看,没有区别。所以,二维数组和矩阵的标识、建立、存储可以使用相同的指令,区别只在他们的运算符和运算法则。数组“除、乘方、转置”运算前的小黑点决不能遗漏,否则不按数组运算规律进行。在执行数组与数组之间的运算时,参与运算的数组必须是同维的,运算
18、所得结果数组也与原数组同维。数组的运算是针对每个元素的运算,而矩阵的运算则遵循线性代数中矩阵的运算法则。1.2 MATLAB数值数组及其运算数值数组及其运算六、数组运算和矩阵运算 例2.10 A=zeros(2,3);A(:)=1:6;A=A*(1+i);A1=A.A2=A1.2 MATLAB数值数组及其运算数值数组及其运算六、数组运算和矩阵运算 矩阵、向量、标量都是数学概念,而数组不是。数组是一个用于程序设计的概念。在其它语言中,数组的运算会采用循环,而matlab中不用,有专门用于数组的运算符和运算法则。矩阵运算也是,不用循环。向量和标量可以视为矩阵的特例。n维行向量可以看成1n阶矩阵,n
19、维列向量可以看成n1阶矩阵。标量可以看成11阶矩阵。1.2 MATLAB数值数组及其运算数值数组及其运算七、字符串运算1、创建字符串数组例2.11 a=This is an example.2、字符串数组a的大小例2.12 size(a)%以一个向量的形式给出所有各维的数值大小3、字符串数组元素标识 在一维字符串数组中,按从左至右的顺序用自然数数码标识字符的位置例2.13 a1=a(1:4)1.2 MATLAB数值数组及其运算数值数组及其运算七、字符串运算4、中文字符串数组 注意字符外面的单引号对必须在英文状态下输入。5、创建带单引号的字符串 当字符串中文字包含单引号时,每个单引号用连续的2个
20、单引号符表示 例2.14 b=Example“3.1.2”第一章第一章 MATLAB语言基础语言基础1.3 MATLAB数值运算数值运算u 掌握多项式插值与拟合掌握多项式插值与拟合u 重点掌握一维插值和多项式拟合的方法重点掌握一维插值和多项式拟合的方法1.3 MATLAB数值运算数值运算1.什么叫插值和拟合?什么叫插值和拟合?在许多实际问题中,我们需要用函数在许多实际问题中,我们需要用函数f(x)来表来表示某种内在规律的数量关系。但存在两个问题:示某种内在规律的数量关系。但存在两个问题:a.我们得到的是给定区间一系列点的测量值;我们得到的是给定区间一系列点的测量值;b.函数的解析表达式很复杂,
21、使用不方便。函数的解析表达式很复杂,使用不方便。我们希望根据跟定的各点测量值,做出一个我们希望根据跟定的各点测量值,做出一个既能反映函数既能反映函数f(x)特性,又能便于计算的的简单函特性,又能便于计算的的简单函数来近似数来近似f(x)。1.3 MATLAB数值运算数值运算1.什么叫插值和拟合?什么叫插值和拟合?插值,就是构造一个便于计算的插值,就是构造一个便于计算的g(x)近似近似f(x),g(x)通过全部节点,再利用通过全部节点,再利用g(x)来估计其他插值节来估计其他插值节点。点。拟合,也是就是构造一个便于计算的拟合,也是就是构造一个便于计算的g(x)近似近似f(x),不要求,不要求g(
22、x)通过全部节点,要求再数据点上通过全部节点,要求再数据点上的误差平方和最小。的误差平方和最小。1.3 MATLAB数值运算数值运算2.插值和拟合的比较插值和拟合的比较 1.3 MATLAB数值运算数值运算2.插值和拟合的比较插值和拟合的比较l相同点相同点l都需要根据已知数据构造函数。都需要根据已知数据构造函数。l可使用得到函数计算未知点的函数值。可使用得到函数计算未知点的函数值。l不同点不同点l插值需要构造的函数正好通过各插值点,拟合则不要插值需要构造的函数正好通过各插值点,拟合则不要求,只要均方差最小即可。求,只要均方差最小即可。l对实验数据进行拟合时,函数形式通常已知,仅需要对实验数据进
23、行拟合时,函数形式通常已知,仅需要拟合参数值。拟合参数值。1.3 MATLAB数值运算数值运算2.插值和拟合的比较插值和拟合的比较 总结:总结:测量值准确无误差时,一般用插值;测量值准确无误差时,一般用插值;测量值与真实值有误差时,一般用拟合。测量值与真实值有误差时,一般用拟合。1.3 MATLAB数值运算数值运算3.常用插值方法常用插值方法l一维插值一维插值一个自变量一个自变量 y1=interp1(x,y,x1,method)l线性插值线性插值l非线性插值非线性插值l三次多项式插值三次多项式插值l三次样条插值三次样条插值l二维插值二维插值两个自变量(了解)两个自变量(了解)z1=inter
24、p1(x,y,z,x1,y1,method)1.3 MATLAB数值运算数值运算3.常用插值方法常用插值方法llinear(分段)线性插值,即相邻节点间用直(分段)线性插值,即相邻节点间用直线连接。线连接。xjxj-1xj+1x0 xn1.3 MATLAB数值运算数值运算3.常用插值方法常用插值方法lcubic三次多项式插值,即在整个区间构造三次多项式插值,即在整个区间构造三次多项式三次多项式 ,通过已知通过已知的数据点求得多项式的系数的数据点求得多项式的系数 。lspline三次样条插值,也为三次分段多项式三次样条插值,也为三次分段多项式插值,即在相邻节点构成的子区间构造三次多项插值,即在相
25、邻节点构成的子区间构造三次多项式,在整个区间二阶导数连续。式,在整个区间二阶导数连续。1.3 MATLAB数值运算数值运算例例3.1 x,y的实测数据如表,求的实测数据如表,求x=2.55处的插值结果。处的插值结果。程序:程序:x=1 2 3 4 5;y=11.2 16.5 20.4 26.3 30.5;x1=2.55;y11=interp1(x,y,x1,linear)y12=interp1(x,y,x1,cubic)y13=interp1(x,y,x1,spline)x1.02.03.04.05.0 y11.216.520.426.330.51.3 MATLAB数值运算数值运算4.常用拟合
26、方法常用拟合方法l多项式拟合多项式拟合l最小二乘法拟合最小二乘法拟合1.3 MATLAB数值运算数值运算4.常用拟合方法常用拟合方法l多项式拟合多项式拟合 p=polyfit(x,y,n)其中,其中,x,y为已知的测量点,为已知的测量点,n为要拟合的多项为要拟合的多项式的阶数。式的阶数。拟合后的目标多项式的形式为拟合后的目标多项式的形式为 。p即是拟合后的即是拟合后的多项式各系数多项式各系数1.3 MATLAB数值运算数值运算4.常用拟合方法常用拟合方法 可结合使用多项式求值函数可结合使用多项式求值函数y=polyval(p,x)来来求出输入数据点在拟合多项式上的值,两个进行求出输入数据点在拟
27、合多项式上的值,两个进行比较。比较。1.3 MATLAB数值运算数值运算例例3.2 设设x=0 0.3 0.8 1.1 1.6 2.3,y=0.5 0.82 1.14 1.25 1.35 1.40,试求二次多项式拟合系数,并据,试求二次多项式拟合系数,并据此计算此计算x1=0.9 1.2时对应的时对应的y1。程序:程序:x=0 0.3 0.8 1.1 1.6 2.3;y=0.5 0.82 1.14 1.25 1.35 1.40;p=polyfit(x,y,2)x1=0.9 1.2;y1=polyval(p,x1)1.3 MATLAB数值运算数值运算4.常用拟合方法常用拟合方法l最小二乘法拟合最
28、小二乘法拟合 最小二乘法曲线拟合问题最常用的方法。最小二最小二乘法曲线拟合问题最常用的方法。最小二乘法拟合的一般形式:乘法拟合的一般形式:最小二乘准则就是确定最小二乘准则就是确定 ,使得,使得n个测量点处的观测值个测量点处的观测值 ,与,与 在拟合曲线在拟合曲线y上计算上计算值最小的误差平方和,即值最小的误差平方和,即 1.3 MATLAB数值运算数值运算4.常用拟合方法常用拟合方法l最小二乘法拟合最小二乘法拟合 使用最小二乘法时,使用最小二乘法时,的形式会告知,比如的形式会告知,比如会已知拟合模型时指数函数会已知拟合模型时指数函数 ,根据已知测量点,根据已知测量点求系数求系数a、b。1.3
29、MATLAB数值运算数值运算测试习题:测试习题:y=sinx,,在,在n个节点(个节点(n取取511)上用分段线性、三次多项式和三次样条)上用分段线性、三次多项式和三次样条插值方法,计算插值方法,计算m个插值点(个插值点(m取取50100)的)的函数值,通过图形与理论值进行比较。函数值,通过图形与理论值进行比较。第一章第一章 MATLAB语言基础语言基础1.4 MATLAB符号运算符号运算u 掌握符号对象的生成和各种表达式掌握符号对象的生成和各种表达式u 掌握符号表达式的各种操作(化简、微掌握符号表达式的各种操作(化简、微分、积分)分、积分)u 掌握符号积分变换(掌握符号积分变换(Fourie
30、r、Laplace和和Z变换)变换)1.4 MATLAB符号运算符号运算 符号运算的特点总结起来有四点:符号运算的特点总结起来有四点:1.运算以推理解析的方式进行,不受计算误差积运算以推理解析的方式进行,不受计算误差积累问题的困扰;累问题的困扰;2.符号计算可给出完全正确的封闭解,或给出任符号计算可给出完全正确的封闭解,或给出任意精度的数值解;意精度的数值解;3.符号计算指令调用比较简单,与经典教科书公符号计算指令调用比较简单,与经典教科书公式相近;式相近;4.计算所需时间较长。计算所需时间较长。1.4 MATLAB符号运算符号运算 一、符号对象定义一、符号对象定义 sym(A)sym(A,f
31、lag)%把数值表达式把数值表达式A转换为转换为flag格式格式 的符号对象的符号对象 syms(x,y,z)syms x y z flag 1.4 MATLAB符号运算符号运算例例4.1 f1=sym(log(2),d)a=log(2)f2=sym(3*4-2)/5)例例4.2 syms m n real例例4.3 syms r x y s t;f1=r2+sin(x)+cos(y)+log(s)+exp(t)例例4.4 A=sym(x,y;a,b)1.4 MATLAB符号运算符号运算二、符号表达式各种运算二、符号表达式各种运算 1.算术运算算术运算l+,-,*,/,实现矩阵的加减乘除幂实现
32、矩阵的加减乘除幂l.*,./,.,.实现数组的乘除幂实现数组的乘除幂l,.实现共轭转置和非共轭转置实现共轭转置和非共轭转置 1.4 MATLAB符号运算符号运算例例4.5 syms a b c d e f g h;A=a b;c d;B=e f;g h;C=A+B D=A-B 1.4 MATLAB符号运算符号运算二、符号表达式各种运算二、符号表达式各种运算 2.表达式化简表达式化简lcollect(EXPR,v)lexpand(EXPR)lfactor(EXPR)ln,d=numden(EXPR)lsimplify(EXPR)lsimple(EXPR)1.4 MATLAB符号运算符号运算例例4
33、.6 EXPR=sym(x2+x*exp(-t)+1)*(x+exp(-t);expr1=collect(EXPR)expr2=collect(EXPR,exp(-t)例例4.7 syms x;f1=x4-5*x3+5*x2+5*x-6;factor(f1)factor(1025)1.4 MATLAB符号运算符号运算例例4.8 简化简化 syms x;f=(1/x3+6/x2+12/x+8)(1/3)sfy1=simplify(f1),sfy2=simplify(sfy1)g1=simple(f),g2=simple(g1)1.4 MATLAB符号运算符号运算二、符号表达式各种运算二、符号表达
34、式各种运算 3.符号微分积分符号微分积分ldiff(f,v,n)lint(f,v)lint(f,v,a,b)1.4 MATLAB符号运算符号运算例例4.9 syms t;f=exp(-t)*sin(t);diff(f,t,3)int(f,t)1.4 MATLAB符号运算符号运算二、符号表达式各种运算二、符号表达式各种运算 4.符号积分变换符号积分变换lFourier变换变换 F=fourier(f)F=fourier(f,v)F=fourier(f,u,v)lFourier反变换反变换 f=ifourier(F)f=ifourier(F,u)f=ifourier(F,v,u)1.4 MATLA
35、B符号运算符号运算例例4.10 syms x w u v;f=sin(x)*exp(-x2);F=fourier(f)g=exp(-abs(x);IF=ifourier(g)1.4 MATLAB符号运算符号运算二、符号表达式各种运算二、符号表达式各种运算lLaplace变换变换 L=laplace(f)L=laplace(f,t)L=fourier(f,w,z)lLaplace反变换反变换 f=ilaplace(L)f=ilaplace(L,y)f=ifourier(L,y,x)1.4 MATLAB符号运算符号运算例例4.11 syms s a t;f=1/sqrt(s);L=laplace(
36、f)g=1/(t-a)2;IL=ilaplace(g)1.4 MATLAB符号运算符号运算二、符号表达式各种运算二、符号表达式各种运算lZ变换变换 F=ztrans(f)F=ztrans(f,w)F=ztrans(f,k,w)lZ反变换反变换 f=iztrans(F)f=iztrans(F,k)f=iztrans(f,w,k)1.4 MATLAB符号运算符号运算例例4.12 syms n;f=n4;ZF=ztrans(f)IL=iztrans(ZF)第一章第一章 MATLAB语言基础语言基础1.5 MATLAB数据可视化数据可视化u 掌握绘制二维图形的命令掌握绘制二维图形的命令u 了解三维图形
37、的绘制了解三维图形的绘制1.5 MATLAB数据可视化数据可视化 数数据据的的可可视视化化是是MATLAB的的强强大大功功能能之之一一。MATLAB的的图图形形功功能能主主要要包包括括数数据据可可视视化化、创创建建用用户户图图形形界界面面和和简简单单数数据据统统计计处理等。处理等。1.5 MATLAB数据可视化数据可视化 MATLAB数据可视化的过程主要有如下步骤:数据可视化的过程主要有如下步骤:*准备需要绘制在准备需要绘制在MATLAB图形窗体中的数据。图形窗体中的数据。*创建图形窗体,并且选择绘制数据的区域。创建图形窗体,并且选择绘制数据的区域。*使用使用MATLAB的绘图函数绘制图形或者
38、曲线。的绘图函数绘制图形或者曲线。*设置曲线的属性,例如线型、线宽等。设置曲线的属性,例如线型、线宽等。*设置绘图区域的属性,并且添加数据网格线。设置绘图区域的属性,并且添加数据网格线。*为绘制的图形添加标题、轴标签或者标注文本为绘制的图形添加标题、轴标签或者标注文本等。等。*打印或者导出图形。打印或者导出图形。1.5 MATLAB数据可视化数据可视化一、基本绘图指令一、基本绘图指令 在在MATLAB中进行数据可视化使用最频繁的绘中进行数据可视化使用最频繁的绘制函数就是制函数就是plot函数。函数。plot函数的基本使用语法格式为函数的基本使用语法格式为 绘制一条曲线:绘制一条曲线:plot(
39、xdata,ydata,color_linestyle_marker)绘制多条曲线:绘制多条曲线:plot(xdata1,ydata1,clm1,xdata2,ydata2,clm2,.)1.5 MATLAB数据可视化数据可视化 例子例子5-1 MATLAB基本绘图指令的使用。基本绘图指令的使用。x=0:pi/1000:2*pi;y=sin(2*x+pi/4);plot(x,y)1.5 MATLAB数据可视化数据可视化 例子例子5-1 MATLAB基本绘图指令的使用。基本绘图指令的使用。x=0:pi/1000:2*pi;y=sin(2*x+pi/4);plot(x,y)1.5 MATLAB数据
40、可视化数据可视化 plot函函数数能能够够同同时时绘绘制制多多条条曲曲线线,在在MATLAB命命令行窗口中,键入下面的指令:令行窗口中,键入下面的指令:plot(x,y,x,y+1,x,y+2)1.5 MATLAB数据可视化数据可视化 利利用用plot函函数数可可以以直直接接将将矩矩阵阵的的数数据据绘绘制制在在图图形形窗窗体体中中,这这个个时时候候plot函函数数将将矩矩阵阵的的每每一一列数据作为一条曲线绘制在窗体中。列数据作为一条曲线绘制在窗体中。例子例子5-2 利用利用plot函数绘制矩阵数据。函数绘制矩阵数据。A=randn(5);plot(A)1.5 MATLAB数据可视化数据可视化二
41、、设置曲线的样式属性二、设置曲线的样式属性 为为了了能能够够在在plot函函数数中中控控制制曲曲线线的的样样式式,MATLAB预预先先设设置置了了不不同同的的曲曲线线样样式式属属性性值值,分别控制曲线的色彩、线型和标识符。分别控制曲线的色彩、线型和标识符。1.5 MATLAB数据可视化数据可视化1.5 MATLAB数据可视化数据可视化例子例子5-3 设置曲线的样式。设置曲线的样式。在在MATLAB命令行窗口中,键入下面的指令:命令行窗口中,键入下面的指令:t=0:pi/20:2*pi;y=sin(t);y2=sin(t-pi/2);y3=sin(t-pi);plot(t,y,-.rv,t,y2
42、,-ks,t,y3,:mp)1.5 MATLAB数据可视化数据可视化1.5 MATLAB数据可视化数据可视化 为为了了能能够够更更加加直直观观地地观观察察数数据据曲曲线线,可可以以使使用用grid命命令令将将轴轴的的坐坐标标线线绘绘制制出出来来,具具体体的的做法为做法为grid on。若若需需要要向向已已经经存存在在曲曲线线的的图图形形窗窗体体中中增增加加曲曲线线,则则可可以以使使用用hold on命命令令锁锁定定当当前前的的图图形形窗窗体体,之之后后所所有有绘绘图图操操作作的的结结果果都都会会显显示示在在当当前前的的图图形形窗窗体中。体中。1.5 MATLAB数据可视化数据可视化例子例子5-
43、4 用图形表示连续调制波形用图形表示连续调制波形y=sint*sin9t及及其包络。其包络。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),plot(t,y1,r:);hold on;plot(t,y2,b);hold on;plot(t3,y3,bo);axis(0,pi,-1,1);grid on;1.5 MATLAB数据可视化数据可视化三、使用子图三、使用子图 MATLAB的的图图形形窗窗体体中中可可以以划划分分为为多多个个图图形形显显示示区区域域,每每个个图图形
44、形显显示示区区域域彼彼此此独独立立,用用户户可可以以根根据据自自己己的的需需要要把把数数据据绘绘制制在在指指定定的的区区域域中中,这这种种特特性性就就是是利利用用MATLAB图图形形窗窗体体的的子图功能来完成的。子图功能来完成的。1.5 MATLAB数据可视化数据可视化 subplot函函数数把把现现有有的的图图形形窗窗体体分分割割成成指指定定行行数数和和列列数数的的区区域域,在在每每个个区区域域内内都都可可以以包包含含一一个个绘绘图图轴轴,利利用用该该函函数数选选择择不不同同的的绘绘图图区区,然然后后所所有的绘图操作都将结果输出到指定的绘图区中。有的绘图操作都将结果输出到指定的绘图区中。1.
45、5 MATLAB数据可视化数据可视化 subplot函数的基本用法如下:函数的基本用法如下:subplot(m,n,p)其中,其中,m和和n为将图形窗体分割成的行数和为将图形窗体分割成的行数和列数,列数,p为选定的窗体区域的序号,以行元素为选定的窗体区域的序号,以行元素优先顺序排列。优先顺序排列。1.5 MATLAB数据可视化数据可视化例例5-5 x=linspace(0,2*pi,100);subplot(2,2,1);plot(x,sin(x);grid on;subplot(2,2,2);plot(x,cos(x);grid on;subplot(2,2,3);plot(x,exp(x)
46、;grid on;subplot(2,2,4);plot(x,exp(-x);grid on;1.5 MATLAB数据可视化数据可视化四、坐标轴及标注四、坐标轴及标注 axis函数可以修改图形窗体轴的范围,它函数可以修改图形窗体轴的范围,它的基本语法格式如下:的基本语法格式如下:axis(xmin xmax ymin ymax)其中,其中,xmin和和xmax决定决定X轴的显示范围,轴的显示范围,ymin和和ymax决定决定Y轴的显示范围。轴的显示范围。1.5 MATLAB数据可视化数据可视化title(string)%添加标题添加标题legend(string1,string2.)%对对图图
47、例例进进行行的的说说明性文本明性文本xlabel(string)%x轴加标注轴加标注text(x,y,string)%x,y是是文文本本注注释释添添加加的的坐坐标标值值,即文本起始点的坐标即文本起始点的坐标1.5 MATLAB数据可视化数据可视化例例5-6 为例为例5-3程序添加标注信息程序添加标注信息 title(正弦函数比较正弦函数比较);legend(y=sin(t),y=sin(t-pi/2),y=sin(t-pi);xlabel(x);ylabel(y);1.5 MATLAB数据可视化数据可视化五、三维绘图五、三维绘图 三维曲线图三维曲线图 plot3(x1,y1,z1,)三维曲面图
48、三维曲面图 surf(x,y,z)第一章第一章 MATLAB语言基础语言基础1.6 MATLAB程序设计程序设计u 掌握掌握matlab程序设计的概念和方面,与程序设计的概念和方面,与前几章所学知识有效结合前几章所学知识有效结合1.6 MATLAB程序设计程序设计一、概述一、概述 MATLAB提提供供了了完完整整的的编编写写应应用用程程序序的的能能力力,这这种种能能力力通通过过一一种种被被称称为为M语语言言的的高高级级语语言言来来实实现现。其其实实,一一个个M语语言言文文件件就就是是由由若若干干MATLAB的的命命令令组组合合在在一一起起构构成成的的,这这些些命命令令都都是是在在前前面面章章节
49、节中中介介绍绍的的合合法法的的MATLAB命命令令,其其文文件件的的扩扩展名为展名为.m。1.6 MATLAB程序设计程序设计 M语言文件可以分为两类,其中一类是脚语言文件可以分为两类,其中一类是脚本文件,另外一类叫作函数文件。本章将分别本文件,另外一类叫作函数文件。本章将分别介绍这两类文件的编写方法。介绍这两类文件的编写方法。1.6 MATLAB程序设计程序设计二、流程控制二、流程控制 1.选择结构选择结构 a.If语句语句(1)if(关系运算表达式关系运算表达式)MATLAB语句语句end1.6 MATLAB程序设计程序设计(2)if(关系运算表达式关系运算表达式)MATLAB语句语句A
50、else MATLAB语句语句B end1.6 MATLAB程序设计程序设计(3)if(关系运算表达式关系运算表达式a)MATLAB语句语句A elseif(关系运算表达式关系运算表达式b)MATLAB语句语句B else(关系运算表达式关系运算表达式c)end1.6 MATLAB程序设计程序设计例例6.1 cost=10;number=12;if number8 sums=number*0.95*cost;end sums1.6 MATLAB程序设计程序设计(b)switch语句语句 switch(表达式表达式)case 常量表达式常量表达式a MATLAB语句语句A case 常量表达式常