




已阅读5页,还剩159页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB通信系统仿真,陈晓红 手机邮箱:,第一章 MATLAB语言基础,1.1 MATLAB简介 了解MATLAB语言的功能和主要特点 掌握MATLAB语言的基本操作,1.1 MATLAB简介,一、概述 MATLAB的名称源自Matrix Laboratory,它的首创者是在数值线性代数领域颇有影响的Cleve Moler博士,他也是生产经营MATLAB产品的美国Mathworks公司的创始人之一。 MATLAB是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而使其被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作中。,MATLAB产品族可以用来进行如下工作: 数值分析; 数值和符号计算; 工程与科学绘图; 控制系统的设计与仿真; 数字图像处理; 数字信号处理; 通讯系统设计与仿真; 财务与金融工程等。,1.1 MATLAB简介,二、 MATLAB仿真的意义 当在实际电子通信系统中进行试验研究比较困难或者根本无法实现时,仿真技术就成为必然的选择。,1.1 MATLAB简介,MATLAB与其它计算机高级语言如C,C+等相比,MATLAB语言编程要简洁得多,编程语句更加接近数学描述,可读性好,其强大的图形功能和可视化数据处理能力也是其它高级语言望尘莫及的。对于具有任何一门高级语言基础的学生来说,学习MATLAB十分容易。,1.1 MATLAB简介,MATLAB使得人们摆脱了常规计算机编程的繁琐,让人们能够将大部分精力投入到研究问题的数学建模上。可以说,应用MATLAB这一数学计算和系统仿真的强大工具,可以使科学研究的效率得以成百倍的提高。,1.1 MATLAB简介,二、MATLAB特点 跨平台的数学语言 超高级语言 语法简单,编程风格接近数学风格 强大的绘图功能 计算精度很高 拥有学科众多,领域广泛的工具箱 可移植,1.1 MATLAB简介,二、MATLAB入门操作 命令窗口 Command Window 历史命令窗口 Command History 当前目录窗口 Current Directory 工作空间窗口 Workspace,1.1 MATLAB简介,1.1 MATLAB简介,1. Command Window 可显示除图像以为的所有结果 最简单的计算器使用法 例1.1 求12+2(7-4) 32 例1.2 输入矩阵 例1.3 矩阵A的分行输入,MATLAB表达式的基本运算符 加 + 减 - 乘 * 除 /或 幂 MATLAB中可以采用逗号或空格来分隔矩阵中的列元素,而采用分号或回车符来分隔矩阵的行,整个矩阵包含在方括号“”内。,1.1 MATLAB简介,数值的记述 MATLAB的数值采用习惯的十进制表示,可以带小数点或负号 3 -99 0.001 9.456 1.3e-3 4.5e33,1.1 MATLAB简介,变量命名规则 变量名、函数名对字母大小敏感 ; 变量名的第一个字符必须是英文字母 (可包含英文、数字和下划线,但不得包含空格和标点)。,1.1 MATLAB简介,1.1 MATLAB简介,复数和复数矩阵 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+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简介,指令窗的常用控制指令 clc 清除指令窗中显示内容 clear 清除工作空间中保存的变量 exit 关闭/退出MATLAB quit 关闭/退出MATLAB,2. Command History Window 记录着用户在指令窗中所输入过的所有指令行。,1.1 MATLAB简介,3. Current Directory Window 组织、管理和使用所有matlab文件和非matlab文件。,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简介,4. Workspace Window 内存变量的查阅、保存和编辑。,1.1 MATLAB简介,内存变量的查阅与编辑 数组编辑器和大数组的输入 内存变量的保存 内存变量的删除,1.1 MATLAB简介,第一章 MATLAB语言基础,1.2 MATLAB数值数组及其运算 掌握一、二维数值数组的创建与寻访 掌握数组运算与矩阵运算的区别 了解字符串运算,数组是指一组实数或复数排成的长方阵列,它可以是一维的“行”或“列”,也可以是二维的“矩形”,也可以是三维的“若干同维矩形的堆叠”,甚至更高的维数。 数组运算是指:无论在数组是施加什么运算(加减乘除或函数),总认定是那种运算对被运算组中的每个元素平等地实施同样的操作。,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的数组。数组运算避免了效率很低的循环运算。 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用冒号分隔,冒号必须在英文状态下。 3、inc可以省略,省略时,默认其值为1。 4、inc可取整数或负数。 例2.3 A=1:2:10,B=1:10,C=10:-1:1,1.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=linspace(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(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+i,1.2 MATLAB数值数组及其运算,对于较大而复杂的数组,可用两种方法: 1、公式编辑器 2、专门建立一个M文件,起名保存,以后只要在matlab指令窗中,运行该文件,文件中的数组就会自动生成于matlab内存中。,1.2 MATLAB数值数组及其运算,四、二维数组的子数组寻访和赋值 1、二维数组元素的标识 全下标标识法 如 A(3,5) 单下标标识法 由于数组在matlab中规定是按列存储的,首先对二维数组的所有元素“一维编号”,即设想把二维数组的所有列,按先左后右,首尾相接排成一维长列,然后自上而下对元素位置进行编号。 以(mn)的二维数组A为例,若全下标元素位置是“第r行第c列”,则相应的单下标为 l=(c-1) m+r,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数值数组及其运算,五、标准数组生成函数和数组操作函数 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 按指定维上的数组铺放模块数组 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数值数组及其运算,六、数组运算和矩阵运算 二维数组和矩阵在外观外形和数据结构上看,没有区别。所以,二维数组和矩阵的标识、建立、存储可以使用相同的指令,区别只在他们的运算符和运算法则。 数组“除、乘方、转置”运算前的小黑点决不能遗漏,否则不按数组运算规律进行。 在执行数组与数组之间的运算时,参与运算的数组必须是同维的,运算所得结果数组也与原数组同维。 数组的运算是针对每个元素的运算,而矩阵的运算则遵循线性代数中矩阵的运算法则。,1.2 MATLAB数值数组及其运算,六、数组运算和矩阵运算 例2.10 A=zeros(2,3); A(:)=1:6; A=A*(1+i); A1=A. A2=A,1.2 MATLAB数值数组及其运算,六、数组运算和矩阵运算 矩阵、向量、标量都是数学概念,而数组不是。数组是一个用于程序设计的概念。在其它语言中,数组的运算会采用循环,而matlab中不用,有专门用于数组的运算符和运算法则。矩阵运算也是,不用循环。 向量和标量可以视为矩阵的特例。n维行向量可以看成1n阶矩阵,n维列向量可以看成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个单引号符表示 例2.14 b=Example “3.1.2”,第一章 MATLAB语言基础,1.3 MATLAB数值运算 掌握多项式插值与拟合 重点掌握一维插值和多项式拟合的方法,1.3 MATLAB数值运算,1. 什么叫插值和拟合? 在许多实际问题中,我们需要用函数f(x)来表示某种内在规律的数量关系。但存在两个问题: a. 我们得到的是给定区间一系列点的测量值; b. 函数的解析表达式很复杂,使用不方便。 我们希望根据跟定的各点测量值,做出一个既能反映函数f(x)特性,又能便于计算的的简单函数来近似f(x)。,1.3 MATLAB数值运算,1. 什么叫插值和拟合? 插值,就是构造一个便于计算的g(x)近似f(x),g(x)通过全部节点,再利用g(x)来估计其他插值节点。 拟合,也是就是构造一个便于计算的g(x)近似f(x),不要求g(x)通过全部节点,要求再数据点上的误差平方和最小。,1.3 MATLAB数值运算,2. 插值和拟合的比较,1.3 MATLAB数值运算,2. 插值和拟合的比较 相同点 都需要根据已知数据构造函数。 可使用得到函数计算未知点的函数值。 不同点 插值需要构造的函数正好通过各插值点,拟合则不要求,只要均方差最小即可。 对实验数据进行拟合时,函数形式通常已知,仅需要拟合参数值。,1.3 MATLAB数值运算,2. 插值和拟合的比较 总结: 测量值准确无误差时,一般用插值; 测量值与真实值有误差时,一般用拟合。,1.3 MATLAB数值运算,3. 常用插值方法 一维插值一个自变量 y1=interp1(x,y,x1,method) 线性插值 非线性插值 三次多项式插值 三次样条插值 二维插值两个自变量(了解) z1=interp1(x,y,z,x1,y1,method),1.3 MATLAB数值运算,3. 常用插值方法 linear(分段)线性插值,即相邻节点间用直线连接。,1.3 MATLAB数值运算,3. 常用插值方法 cubic三次多项式插值,即在整个区间构造三次多项式 , 通过已知的数据点求得多项式的系数 。 spline三次样条插值,也为三次分段多项式插值,即在相邻节点构成的子区间构造三次多项式,在整个区间二阶导数连续。,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),1.3 MATLAB数值运算,4. 常用拟合方法 多项式拟合 最小二乘法拟合,1.3 MATLAB数值运算,4. 常用拟合方法 多项式拟合 p=polyfit(x,y,n) 其中,x,y为已知的测量点,n为要拟合的多项式的阶数。 拟合后的目标多项式的形式为 。p即是拟合后的多项式各系数,1.3 MATLAB数值运算,4. 常用拟合方法 可结合使用多项式求值函数y=polyval(p,x)来求出输入数据点在拟合多项式上的值,两个进行比较。,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. 常用拟合方法 最小二乘法拟合 最小二乘法曲线拟合问题最常用的方法。最小二乘法拟合的一般形式: 最小二乘准则就是确定 ,使得n个测量点处的观测值 ,与 在拟合曲线y上计算值最小的误差平方和,即,1.3 MATLAB数值运算,4. 常用拟合方法 最小二乘法拟合 使用最小二乘法时, 的形式会告知,比如会已知拟合模型时指数函数 ,根据已知测量点求系数a、b。,1.3 MATLAB数值运算,测试习题: y=sinx, ,在n个节点(n取511)上用分段线性、三次多项式和三次样条插值方法,计算m个插值点(m取50100)的函数值,通过图形与理论值进行比较。,第一章 MATLAB语言基础,1.4 MATLAB符号运算 掌握符号对象的生成和各种表达式 掌握符号表达式的各种操作(化简、微分、积分) 掌握符号积分变换(Fourier、Laplace和Z变换),1.4 MATLAB符号运算,符号运算的特点总结起来有四点: 1. 运算以推理解析的方式进行,不受计算误差积累问题的困扰; 2. 符号计算可给出完全正确的封闭解,或给出任意精度的数值解; 3. 符号计算指令调用比较简单,与经典教科书公式相近; 4. 计算所需时间较长。,1.4 MATLAB符号运算,一、符号对象定义 sym(A) sym(A,flag) %把数值表达式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. 算术运算 +,-,*,/,实现矩阵的加减乘除幂 .*, ./, ., .实现数组的乘除幂 , . 实现共轭转置和非共轭转置,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. 表达式化简 collect(EXPR,v) expand(EXPR) factor(EXPR) n,d=numden(EXPR) simplify(EXPR) simple(EXPR),1.4 MATLAB符号运算,例4.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符号运算,二、符号表达式各种运算 3. 符号微分积分 diff(f,v,n) int(f,v) int(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. 符号积分变换 Fourier变换 F=fourier(f) F=fourier(f,v) F=fourier(f,u,v) Fourier反变换 f=ifourier(F) f=ifourier(F, u) f=ifourier(F,v,u),1.4 MATLAB符号运算,例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符号运算,二、符号表达式各种运算 Laplace变换 L=laplace(f) L=laplace (f,t) L=fourier(f,w,z) Laplace反变换 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(f) g=1/(t-a)2; IL=ilaplace(g),1.4 MATLAB符号运算,二、符号表达式各种运算 Z变换 F=ztrans(f) F=ztrans (f,w) F=ztrans (f,k,w) Z反变换 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数据可视化 掌握绘制二维图形的命令 了解三维图形的绘制,1.5 MATLAB数据可视化,数据的可视化是MATLAB的强大功能之一。MATLAB的图形功能主要包括数据可视化、创建用户图形界面和简单数据统计处理等。,1.5 MATLAB数据可视化,MATLAB数据可视化的过程主要有如下步骤: * 准备需要绘制在MATLAB图形窗体中的数据。 * 创建图形窗体,并且选择绘制数据的区域。 * 使用MATLAB的绘图函数绘制图形或者曲线。 * 设置曲线的属性,例如线型、线宽等。 * 设置绘图区域的属性,并且添加数据网格线。 * 为绘制的图形添加标题、轴标签或者标注文本等。 * 打印或者导出图形。,1.5 MATLAB数据可视化,一、基本绘图指令 在MATLAB中进行数据可视化使用最频繁的绘制函数就是plot函数。 plot函数的基本使用语法格式为 绘制一条曲线: plot(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数据可视化,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数据可视化,二、设置曲线的样式属性 为了能够在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,-ks,t,y3,:mp),1.5 MATLAB数据可视化,1.5 MATLAB数据可视化,为了能够更加直观地观察数据曲线,可以使用grid命令将轴的坐标线绘制出来,具体的做法为grid on。 若需要向已经存在曲线的图形窗体中增加曲线,则可以使用hold on命令锁定当前的图形窗体,之后所有绘图操作的结果都会显示在当前的图形窗体中。,1.5 MATLAB数据可视化,例子5-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的图形窗体中可以划分为多个图形显示区域,每个图形显示区域彼此独立,用户可以根据自己的需要把数据绘制在指定的区域中,这种特性就是利用MATLAB图形窗体的子图功能来完成的。,1.5 MATLAB数据可视化,subplot函数把现有的图形窗体分割成指定行数和列数的区域,在每个区域内都可以包含一个绘图轴,利用该函数选择不同的绘图区,然后所有的绘图操作都将结果输出到指定的绘图区中。,1.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);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) %对图例进行的说明性文本 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,) 三维曲面图 surf(x,y,z),第一章 MATLAB语言基础,1.6 MATLAB程序设计 掌握matlab程序设计的概念和方面,与前几章所学知识有效结合,1.6 MATLAB程序设计,一、概述 MATLAB提供了完整的编写应用程序的能力,这种能力通过一种被称为M语言的高级语言来实现。其实,一个M语言文件就是由若干MATLAB的命令组合在一起构成的,这些命令都是在前面章节中介绍的合法的MATLAB命令,其文件的扩展名为.m。,1.6 MATLAB程序设计,M语言文件可以分为两类,其中一类是脚本文件,另外一类叫作函数文件。本章将分别介绍这两类文件的编写方法。,1.6 MATLAB程序设计,二、流程控制 1. 选择结构 a. If语句 (1) if (关系运算表达式) MATLAB语句 end,1.6 MATLAB程序设计,(2) if(关系运算表达式) MATLAB语句A else MATLAB语句B end,1.6 MATLAB程序设计,(3) if (关系运算表达式a) MATLAB语句A elseif (关系运算表达式b) MATLAB语句B else (关系运算表达式c) end,1.6 MATLAB程序设计,例6.1 cost=10;number=12; if number8 sums=number*0.95*cost; end sums,1.6 MATLAB程序设计,(b) switch语句 switch(表达式) case 常量表达式a MATLAB语句A case 常量表达式b MATLAB语句B case 常量表达式m MATLAB语句M otherwise MATLAB语句N end,1.6 MATLAB程序设计,例6.2 试用switch语句完成卷面成绩的转换 score=input(请输入卷面成绩:score=); switch fix(score/10) case 9 grade=优 case 8 grade=良 case 7 grade=中 case 6 grade=及格 otherwise grade=不及格 end,1.6 MATLAB程序设计,2. 循环结构 awhile循环结构 while(表达式) MATLAB语句 end,1.6 MATLAB程序设计,bfor循环结构 for index = start:increment:end MATLAB语句 end,1.6 MATLAB程序设计,例6.3 求1!+2!+10! s=0; for i=1:10 p=1; for j=1:i p=p* j end s=s+p; end s,1.6 MATLAB程序设计,3. 程序流的控制 break 能够在执行循环体的时候强迫终止循 环,即控制程序的流程,使其提前退出循环。 continue 能够中断本次的循环体运行,将程序的流程跳转到判断循环条件的语句处,继续下一次的循环。 return 终止被调用函数的运行,返回到调用函数。,1.6 MATLAB程序设计,三、脚本文件 所谓脚本文件,就是由一系列的MATLAB指令和命令组成的纯文本格式的M文件,执行脚本文件时,文件中的指令或者命令按照出现在脚本文件中的顺序依次执行。 脚本文件没有输入参数,也没有输出参数。,1.6 MATLAB程序设计,例6.4 编程计算向量元素的平均值 x=input(输入向量:x=); m,n=size(x); if (m=1) (n=1(m=1)&(n=1) error(必须输入向量) end average=sum(x)/length,1.6 MATLAB程序设计,四、函数文件 M语言函数文件具有下面的不同部分: * 函数定义行。 * 在线帮助。 * 注释行。 * M语言代码。,1.6 MATLAB程序设计,例6.5 编写函数average_2(x)用于计算向量元素的平均值 function average_2(x) %函数average_2(x)完成 m,n=size(x); if (m=1) (n=1(m=1)&(n=1) error(必须输入向量) end average=sum(x)/length,1.6 MATLAB程序设计,将average_2(x)存盘后,该函数的用法与其他matlab函数一样,可调用。 y=1:50; average_2(y),第一章 MATLAB语言基础,1.7 交互式仿真集成环境Simulink 掌握使用Simulink对简单的动态系统建模、仿真。,1.7 交互式仿真集成环境Simulink,一、Simulink概述 Simulink是一个用来对动态系统进行建模、仿真和分析的软件包。 实现了可视化建模 实现了多工作环境间文件互用和数据交换 把理论研究和工程实现有机地结合在一起,1.7 交互式仿真集成环境Simulink,二、Simulink入门例子 把正弦波作为输入源,示波器作为输出端,观察波形。 了解Simulink创建模型的大致过程。,1.7 交互式仿真集成环境Simulink,1.7 交互式仿真集成环境Simulink,三、模型的创建 Simulink模型的几层含义: 在视觉上表现为直观的方框图; 在文件上是扩展名为mdl的ASCII代码; 在数学上体现了一组微分方程和差分方程; 在行为上模拟了物理器件构成的实际系统的动态特性 。,1.7 交互式仿真集成环境Simulink,Simulink模型一般包含3种组件:,1.7 交互式仿真集成环境Simulink,1、模块操作 模块的选定 模块的复制 a. 不同模型窗之间的模块复制 b. 同一模型窗内的模块复制 模块的移动 模块的删除 改变模块大小 模块的旋转 模块名的操作,1.7 交互式仿真集成环境Simulink,2、信号线操作 产生连线 信号线的分支 信号线的标示,1.7 交互式仿真集成环境Simulink,四、常用的Source信源 Sine Wave 正弦波输出 Constant 常数信号 Signal generator 信号发生器 Step 阶跃输出 Form File/Workspace 从文件或工作空间中读数据,1.7 交互式仿真集成环境Simulink,四、常用的Sink信宿 Scope 示波器 Display 数值显示 XY Graph 使用matlab图形窗口显示信号的X-Y图 To File/Workspace 将数据写在文件或工作空间的变量中,1.7 交互式仿真集成环境Simulink,四、Simulink仿真实例,1.7 交互式仿真集成环境Simulink,根据电路得到系统方程,1.7 交互式仿真集成环境Simulink,2. 根据微分方程画Simulink模型框图,1.7 交互式仿真集成环境Simulink,3. 根据题目要求设置各模块参数 4. 仿真设置:把仿真的停止时间设置为1s 5. 运行仿真:在命令窗赋值 R=100,L=0.25,C=100e-6,1.7 交互式仿真集成环境Simulink,第二章 MATLAB/Simulink在通信系统中的应用,2.1 模拟通信系统建模仿真 掌握模拟通信系统的基本模型 掌握各部分(信源、信宿、信道、调制和解调)的仿真方法,2.1 模拟通信系统建模仿真,一、模拟通信系统的基本模型,2.1 模拟通信系统建模仿真,二、信源模型 确定信源 伪随机码源 统计信源(噪声),2.1 模拟通信系统建模仿真,二、信源模型 确定信源 Simulink基本库的常用确定信源 压控振荡源(连续时间,离散时间) 输出信号的频率随着输入信号幅度的变化而发生相应的变化 用于调频调制器、锁相环路等,2.1 模拟通信系统建模仿真,二、信源模型 伪随机码源 数据信源 伯努利二进制信源(产生单极性二进制随机码源) 二进制错误模式发生源(用于纠错编码) 泊松整数分布发生源、随机整数发生源 伪随机码(用于扩频通信、模拟噪声) PN序列发生器、Gold序列发生器、Walsh序列发生器,2.1 模拟通信系统建模仿真,二、信源模型 噪声源 Simulink基本库中提供的随机信号源 高斯噪声发生器、均匀噪声发生器、瑞利噪声发生器、莱斯噪声发生器,2.1 模拟通信系统建模仿真,三、调制与解调 根据调制的性质,被调信号类型等可以讲调制分为不同的类型。 线性调制:调制前后频谱形状不变,仅发生线性变化。(幅度调制AM,抑制载波双边带调制DSB-SC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国AM和和FM收音机行业发展趋势分析与未来投资战略咨询研究报告
- 冷库主管工作总结
- 2025至2030中国心耳封堵器行业产业运行态势及投资规划深度研究报告
- 铁路隧道消防培训
- 2025年智能可穿戴设备个性化健康服务技术创新报告
- 欺诈性债务抵消:虚构合同解除与补偿协议
- 蒙氏混龄班老师工作总结
- 高铁站空调采购、安装及旅客舒适度提升合同
- 离婚协议书中财产分割、子女抚养及共同财产清算协议
- 离婚协议违约金及财产分配纠纷解决合同
- GA/T 1661-2019法医学关节活动度检验规范
- 小学生(成语故事100个)讲解
- 楷书毛笔课件
- 急危重症患者的抢救应急处理预案及流程
- 班主任基本功大赛评分标准
- 额窦手术课件
- 流感疫苗项目市场营销策略方案
- 财务代理记账报税合同模板
- HY_T 0330-2022 海滩养护与修复工程验收技术方法
- 十四条经络养生课件
- 清洁生产的实施途径
评论
0/150
提交评论