matlab与通信仿真实验指导书(上)

matlab与通信仿真实验指导书(上)
matlab与通信仿真实验指导书(上)

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

通信与信息工程学院

2011-1

目录

第一章 MALTAB基础知识 (1)

1.1MATLAB基础知识 (1)

1.2MATLAB基本运算 (2)

1.3MATLAB程序设计 (7)

第二章 MATLAB计算结果可视化和确知信号分析 (13)

2.1计算结果可视化 (13)

2.2确知信号分析 (17)

第三章随机信号与数字基带仿真 (23)

3.1基本原理 (23)

3.2蒙特卡罗算法 (30)

第四章模拟调制MATLAB实现 (34)

4.1模拟调制 (34)

4.2信道加性高斯白噪声 (35)

4.3AM调制解调的MATLAB实现 (36)

第五章模拟信号的数字传输 (45)

5.1脉冲编码调制 (45)

5.2低通抽样定理 (45)

5.3均匀量化原理 (46)

5.4非均匀量化 (48)

第六章数字频带传输系统 (52)

6.1数字频带传输原理 (52)

6.2数字频带传输系统的MATLAB实现 (53)

第七章通信系统仿真综合实验 (67)

7.1基本原理 (67)

7.2实验内容 (67)

第一章 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主窗口的菜单栏,共包含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公司的网站https://www.360docs.net/doc/1b7698191.html,询问有关问题。

1.2 MATLAB基本运算

1.2.1 MATLAB内部特殊变量和常数

MATLAB内部有很多变量和常数,用来表达特殊含义,常用的有:

●变量ans:指示当前未定义变量名的答案。

●常数eps:表示浮点相对精度,其值是从1.0到下一个最大浮点数之间的差值。

●常数Inf:表示无穷大。

●虚数单位i j:表示不定型值,是由0/0运算产生。

●常数pi:表示圆周率π。

1.2.2 变量类型

(1)变量命名规则

MATLAB中对变量的命名应遵循以下规则:

●变量名可以由字母、数字和下划线混合组成,但必须以字母开头。

●字符长度不能大于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)与

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同样大小的零矩阵

例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组成。

例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旋转90o的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)。

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

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

语句组m

else

语句组n

end

语句用于实现多分支选择结构。

例1-7 输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。

c=input('请输入一个字符','s');

if c>='A' & c<='Z'

disp(setstr(abs(c)+abs('a')-abs('A')));

elseif c>='a'& c<='z'

disp(setstr(abs(c)-abs('a')+abs('A')));

elseif c>='0'& c<='9'

disp(abs(c)-abs('0'));

else

disp(c);

end

switch语句

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

switch 表达式

case 表达式1

语句组1

case 表达式2

语句组2

……

case 表达式m

语句组m

otherwise

语句组n

end

当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2,…,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n。当任意一个分支的语句执行完后,直接执行switch语句的下一句。

例1-8 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price<200 没有折扣

200≤price<500 3%折扣

500≤price<1000 5%折扣

1000≤price<2500 8%折扣

2500≤price<5000 10%折扣

5000≤price 14%折扣

输入所售商品的价格,求其实际销售价格。

程序如下:

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 %价格大于等于5000

rate=14/100;

end

price=price*(1-rate) %输出商品实际销售价格

●try语句

语句格式为:

try

语句组1

catch

语句组2

end

try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。

例1-9 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。

程序如下:

A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12];

try

C=A*B;

catch

C=A.*B;

end

C

lasterr %显示出错原因

(3)循环结构

●for语句

for语句的格式为:

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

循环体语句

end

其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。

例1-10 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙

花数。

程序如下:

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)

end

end

●while语句

while语句的一般格式为:

while (条件)

循环体语句

end

其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。

例1-11 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

程序如下:

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):');

end

if (cnt > 0)

sum

mean=sum/cnt

end

●break语句和continue语句

break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。

continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。

例1-12 求[100,200]之间第一个能被21整除的整数。

程序如下:

for n=100:200

if rem(n,21)~=0

continue

end

break

end

(4)函数文件

●函数文件的基本结构

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

function 输出形参表=函数名(输入形参表)

注释说明部分

函数体语句

其中以function开头的一行为引导行,表示该M文件是一个函数文件。函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。

●函数调用

函数调用的一般格式是:

[输出实参表]=函数名(输入实参表)

要注意的是,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。

例1-13 利用函数的递归调用,求n!。

n!本身就是以递归的形式定义的:显然,求n!需要求(n-1)!,这时可采用递归调用。递归调用函数文件factor.m如下:

function f=factor(n)

if n<=1

f=1;

else

f=factor(n-1)*n; %递归调用求(n-1)!

end

第二章 MATLAB计算结果可视化和确知信号分析

本章目标

●掌握二维平面图形的绘制方法,能够使用这些方法进行常用的数据可视化处理

●理解周期信号的傅里叶级数展开的物理意义

●掌握信号的傅里叶变换及其反变换

2.1 计算结果可视化

MATLAB在数据可视化方面的表现能力很强。它的图形处理能力不仅功能强大,而且充分考虑了不同层次用户的不同需求,系统具有两个层次的绘图指令:一个层次是直接对图形句柄进行操作的底层绘图指令;另一层次是在底层指令基础上建立的高层绘图指令。常用的MATLAB绘图语句有figure、plot、subplot、stem等,图形修饰语具有title、axis、text等。

(1)figure语句

figure有两种用法。当只有一句figure命令时,程序会创建一个新的图形窗口,并返回一个整数型的窗口编号。当采用figure(n)时,表示将第n个图形窗口作为当前的图形窗口,将其显示在所有窗口的最前面。如果该图形窗口不存在,则新建一个窗口,并赋以编号n。(2)plot语句

线形绘图函数。用法为plot(x,y,’s’)。参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细等,通常可以省略,常用方法如表2-1所示。

表2-1 plot命令的参数及其含义

(3)subplot语句

subplot(m,n,i)是分割显示图形窗口命令,它把一个图形窗口分为m行n列共m×n个小窗口,并指定第i个小窗口为当前窗口。

(4)二维统计分析图

在MATLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:

bar(x,y,选项)

stairs(x,y,选项)

stem(x,y,选项)

fill(x1,y1,选项1,x2,y2,选项2,…)

例2-1 分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。

程序如下:

x=0:pi/10:2*pi;

y=2*sin(x);

subplot(2,2,1);bar(x,y,'g');

title('bar(x,y,''g'')');axis([0,7,-2,2]);

subplot(2,2,2);stairs(x,y,'b');

title('stairs(x,y,''b'')');axis([0,7,-2,2]);

subplot(2,2,3);stem(x,y,'k');

title('stem(x,y,''k'')');axis([0,7,-2,2]);

subplot(2,2,4);fill(x,y,'y');

title('fill(x,y,''y'')');axis([0,7,-2,2]);

仿真结果:

bar(x,y,'g')stairs(x,y,'b')

fill(x,y,'y')

(5)图形保持

hold on/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。

例2-2 采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5x cos(4πx) 和y2=2e-0.5x cos(πx)。程序如下:

x=0:pi/100:2*pi;

y1=0.2*exp(-0.5*x).*cos(4*pi*x);

plot(x,y1)

hold on

y2=2*exp(-0.5*x).*cos(pi*x);

plot(x,y2);

hold off

仿真结果:

(6)绘图修饰命令

title(图形名称) xlabel(x 轴说明) ylabel(y 轴说明) text(x,y,图形说明)

legend(图例1,图例2,…) 例2-3 在0≤x ≤2π区间内,绘制曲线y1=2e-0.5x 和y2=cos(4πx),并给图形添加图形标注。 程序如下:

x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x); plot(x,y1,x,y2)

title('x from 0 to 2{\pi}'); %加图形标题 xlabel('Variable X'); %加X 轴说明 ylabel('Variable Y'); %加Y 轴说明

text(0.8,1.5,'曲线y1=2e^{-0.5x}'); %在指定位置添加图形说明 text(2.5,1.1,'曲线y2=cos(4{\pi}x)');

legend(‘y1’,‘ y2’) %加图例 仿真结果:

x from 0 to 2π

Variable X

V a r i a b l e Y

(7)坐标控制

axis函数的调用格式为:

axis([xmin xmax ymin ymax zmin zmax])

axis函数功能丰富,常用的格式还有:

axis equal:纵、横坐标轴采用等长刻度。

axis square:产生正方形坐标系(缺省为矩形)。

axis auto:使用缺省设置。

axis off:取消坐标轴。

axis on:显示坐标轴。

给坐标加网格线用grid命令来控制。grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。

给坐标加边框用box命令来控制。box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。

例2-4 在同一坐标中,可以绘制3个同心圆,并加坐标控制。

程序如下:

t=0:0.01:2*pi;

x=exp(i*t);

y=[x;2*x;3*x]';

plot(y)

grid on; %加网格线

box on; %加坐标边框

axis equal %坐标轴采用等刻度

仿真结果:

2.2 确知信号分析

2.2.1周期信号的傅里叶级数

(1)基本原理

若一周期信号()()f t f t kT =+,其中k 为整数,T 成为信号的周期。若周期信号在一个周期内可积,则可通过傅立叶级数对该信号进行展开。其傅立叶展开式如(2-1)式所示:

()2s j nf t

n n f t F e π∞

=-∞

=

(2-1)

其中,()/2

2/2

1s T j nf t n T F f t e dt T π--=?,T 为信号周期;1/s f T =为信号的基波;n F 为傅立叶展开系数,其物理意义为频率分量s nf 的幅度和相位。

式2-1表明:信号可以展开成一系列频率为1/s f T =的整数倍的正弦、余弦信号的加权叠加,其中相应频率分量的加权系数即为n F ,因此可以用周期信号的傅立叶展开来重构该周期信号,其逼进程度与展开式的项数有关。 (2)举例

设周期信 号一个周期的波形为()1,0/2

1/2t T f t T t T

≤≤?=?

-<≤?,,求该信号傅里叶级数展开式,

并用MATLAB 画出傅里叶级数展开后的波形,并通过展开式项数的变化考察其对()f t 的逼近程度,考察其物理意义。 解:

()20

1s T

j nf t n F f t e dt T π-=?

()222022

111122sin /2s s T

T j nf t j nf t T j n j n s s jn e dt e dt T e e T j nf j nf c n e πππππ

ππ-----??=- ???

??--=- ?--??=??

注:()()sin sin c

x x x sa x ππ==

源代码: clear all;

N=20;%取展开式的项数为2N+1项 %可以改为N=input('input N:') T=1;%周期为1 fs=1/T;

N_sample=128;%为了画波形,设置每个周期的采样点数

dt=1/ N_sample;%时间分辨率

t=0:dt:10*T-dt;%取10个周期

n=-N:N;

Fn=sinc(n/2).*exp(-j*n*pi/2);%求傅立叶系数

Fn(N+1)=0;%当n=0时,代入Fn得Fn=0,由于数组的序号是从1开始的,即n=-N时对%应Fn(1), n=0时对%应Fn(n+1),即n=N时对%应Fn(2N+1)

ft=zeros(1,length(t));%建立一个全零数组,其长度和原始信号长度相同,用来存放由傅里叶%展开恢复的信号

for m=-N:N;%一共2N+1项累加。

ft=ft+Fn(m+N+1)*exp(j*2*pi*m*fs*t) ;%Fn是一个数组,而MATLAB中数组中元素的序%号是从1开始的,故Fn序号是从1开始的,到2N+1结束,该语句中体现为为Fn(m+N+1) %而当n=0时,Fn=0,在数组中的位置为第N+1个元素,故令Fn(N+1)=0

end

plot(t,ft)

仿真结果:

N=100时,

N=20时,

Matlab实验指导书

实验一 Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句; 3、熟悉Matlab绘图命令及基本绘图控制; 4、熟悉Matlab程序设计的基本方法。 二、实验内容 1、帮助命令 2、矩阵运算 (1)矩阵的乘法和乘方 已知A=[1 2;3 4]:B=[5 5;7 8]:求A^2*B ( 2 )矩阵除法 已知A=[1 2 3:4 5 6:7 8 9]:B=[1 0 0:0 2 0:0 0 3],求矩阵左除A\B,右除A/B。 ( 3 )矩阵的转置及共轭转置 已知A=[5+i,2-i,1;6*i,4,9-i],求该复数矩阵的转置A',共轭转置A.' ( 4 )使用冒号选出指定元素 已知:A=[1 2 3:4 5 6:7 8 9];求A中第3列前2个元素;A中第2、3行元素。 ( 5 )方括号[] 用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列 3、多项式 (1)求多项式P(x)=x3-2x-4的根 ( 2 )已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4].,构造多项式,并计算多项式值为20的解。 4、基本绘图命令 ( 1 ) 绘制余弦曲线 ] 2,0[ ), cos(π ∈ =t t y 。 ( 2 ) 在同一坐标系中绘制曲线 ] 2,0[ ), 5.0 sin( ), 25 .0 cos( yπ ∈ - = - =t t y t 5、基本绘图控制 绘制 ] 4,0[π 区间上的y=10sint曲线,并要求: (1)线形为点划线,颜色为红色,数据点标记为加号; (2)坐标轴控制:显示范围,刻度线,比例,网络线; (3)标注控制:坐标轴名称,标题,相应文本。 6、基本程序设计 (1)编写命令文件:计算1+2+....+n<2000时的最大n值; (2)编写函数文件:分别用n和which循环结构编写程序,求2的0到n次幂的和. n=input('输入正数n:') ji=1: for i=1:n; ji=ji+2^i: end ji input('输入正数n:') ji-1:i-1: While i<=n ji=ji+2^i; i=i+1; end ji (3)如果想对一个变量x赋值,当从键盘输入y或Y时,x自动赋为1;当从键盘输入n或N时,x自 动赋为0;输入其他字符时终止程序。 k=input('shuruX:'.'s'): if k=='y' k=='Y' x=1 ; else k=='n' k=='N' x=0; else ruturn end >> n=input('输入正数n:') 输入正数n:20 n =20

通信原理课程设计报告(基于Matlab)

2DPSK调制与解调系统的仿真 设计原理 (1) 2DPSK信号原理 1.1 2DPSK信号原理 2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图2.1所示。 图1.1 2DPSK信号 在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。定义为本码元初相与前一码元初相之差,假设: →数字信息“0”; →数字信息“1”。 则数字信息序列与2DPSK信号的码元相位关系可举例表示如下: 数字信息: 1 0 1 1 0 1 1 1 0 1 DPSK信号相位:0

或 : 1.2 2DPSK 信号的调制原理 一般来说,2DPSK 信号有两种调试方法,即模拟调制法和键控法。2DPSK 信号的的模拟调制法框图如图1.2.1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。 图1.2.1 模拟调制法 2DPSK 信号的的键控调制法框图如图1.2.2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0” 时接相位0,当输入数字信息为“1”时接pi 。 图1.2.2 键控法调制原理图 1.3 2DPSK 信号的解调原理 2DPSK 信号最常用的解调方法有两种,一种是极性比较和码变换法,另一种是差分相干解调法。 码变换 相乘 载波 s(t) e o (t)

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

数控仿真软件实验指导书

数控仿真实验指导书 机电一体化机械设计制造自动化专业 2008年实训中心编制

目录 实验一数控车床仿真软件操作学习 (2) 实验二数控车编程及仿真加工实例 (5) 实验三数控铣床仿真软件操作学习 (7) 实验四数控铣床编程及仿真加工实例 (10) 实验五数控机床(加工中心)仿真软件操作学习 (12) 实验六广州数控系统车床操作学习 (15)

实验一数控车床仿真操作学习 一、实验目的 通过使用数控模拟仿真软件,使学生从计算机上直观的学习包括法那克、西门子、华中数控等系统的数控车床的基本操作方法,同时可输入程序进行仿真加工实验,达到对学生理论课巩固和理解以及提高学生操作技能的目的。 二、实验内容 1、 FANUC Oimate数控系统车床操作界面及仿真加工过程 2、华中数控HNC21T、西门子802d操作界面 三、实验步骤 1、进入仿真系统 (1)在桌面上找到“机电国贸CZK系列软件”的文件夹,双击进入,找到“数控车床系列”,双击进入,然后选择CZK-Fanuc0iMate。 (2)出现重新选择主机提示框,选择确定(主机名是服务端的计算机名,已经设定好了,学生无须改动)。登录窗口出现后,选择训练模式。 (3)整个仿真软件主要由机床操作面板、仿真机床窗口组成。 2、仿真机床操作面板按键说明(以FANUC Oimate为例) 一>MDI键盘 (1)常用功能键 POS 当前机床位置显示 PROGRAM 程序显示 OFSET 偏置量显示 (2)常用的编辑键 RESET 复位键:终止当前一切操作、CNC复位、解除报警。 INPUT 用于参数、偏置量的输入 地址/数字键用于字母、数字等的输入 CAN取消输入键用于删除已输入到缓冲器的文字或符号 ↑↓光标的移动键

MATLAB实验指导书

实验一MATLAB 工作环境熟悉及简单命令的执行 一、 实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、 实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单 (Menu )、工具条(T oolbar )、命令窗口(Command Window)、历史命令窗口、工作 空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3; (2)area=pi*2.5^2; (3)已知x=3,y=4,在MATLAB 中求z : ()23 2y x y x z -= ; (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。 m1=???? ? ???? ???11514412679810115133216 执行以下命令 >>m1( 2 , 3 ) >>m1( 11 ) >>m1( : , 3 ) >>m1( 2 : 3 , 1 : 3 ) >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) (5)执行命令>>help abs 查看函数abs 的用法及用途,计算abs( 3 + 4i ); (6)执行命令 >>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y) (7)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。 四、思考题 1、以下变量名是否合法?为什么? (1)x2; (2)3col ; (3)_row ; (4)for ;

MATLAB通信建模实验仿真实验报告

实验1:上采样与内插 一、实验目的 1、了解上采样与内插的基本原理和方法。 2、掌握上采样与内插的matlab程序的设计方法。 二、实验原理 上采样提高采样频率。上采样使得周期降低M倍,即新采样周期Tu和原有采样周期Ts的关系是T u=T s/M,根据对应的连续信号x(t),上采样过程从原有采样值x(kT s)生成新采样值x(kT u)=x(kT s/M)。操作的结果是在每两个采样值之间放入M-1个零值样点。 更实用的内插器是线性内插器,线性内插器的脉冲响应定义如下: 上采样值x(kT u)=x(kT s/M)通过与线性内插器的脉冲响应的卷积来完成内插。 三、实验内容 仿真正弦波采样和内插,通过基本采样x(k),用M=6产生上采样x u(k),由M=6线性内插得到样点序列x i(k)。 四、实验程序 % File: c3_upsampex.m M = 6; % upsample factor h = c3_lininterp(M); % imp response of linear interpolator t = 0:10; % time vector tu = 0:60; % upsampled time vector x = sin(2*pi*t/10); % original samples xu = c3_upsamp(x,M); % upsampled sequence subplot(3,1,1) stem(t,x,'k.') ylabel('x') subplot(3,1,2) stem(tu,xu,'k.') ylabel('xu') xi = conv(h,xu); subplot(3,1,3) stem(xi,'k.') ylabel('xi') % End of script file. % File: c3_upsample.m function out=c3_upsamp(in,M)

系统仿真综合实验指导书(2011.6)

系统仿真综合实验指导书 电气与自动化工程学院 自动化系 2011年6月

前言 电气与自动化工程学院为自动化专业本科生开设了控制系统仿真课程,为了使学生深入掌握MATLAB语言基本程序设计方法,运用MATLAB语言进行控制系统仿真和综合设计,同时开设了控制系统仿真综合实验,30学时。为了配合实验教学,我们编写了综合实验指导书,主要参考控制系统仿真课程的教材《自动控制系统计算机仿真》、《控制系统数字仿真与CAD》、《反馈控制系统设计与分析——MATLAB语言应用》及《基于MATLAB/Simulink的系统仿真技术与应用》。

实验一MATLAB基本操作 实验目的 1.熟悉MATLAB实验环境,练习MATLAB命令、m文件、Simulink的基本操作。 2.利用MATLAB编写程序进行矩阵运算、图形绘制、数据处理等。 3.利用Simulink建立系统的数学模型并仿真求解。 实验原理 MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。MATLAB有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink模型编辑窗口。 1.命令窗口(The Command Window) 当MATLAB启动后,出现的最大的窗口就是命令窗口。用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。 在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。在命令窗口中输入该文件名,这一连串命令就被执行了。因为这样的文件都是以“.m”为后缀,所以称为m-文件。 2.m-文件编辑窗口(The Edit Window) 我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。在MATLAB 主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。 3.图形窗口(The Figure Window) 图形窗口用来显示MATLAB程序产生的图形。图形可以是2维的、3维的数据图形,也可以是照片等。 MATLAB中矩阵运算、绘图、数据处理等内容参见教材《自动控制系统计算机仿真》的相关章节。 Simulink是MATLAB的一个部件,它为MATLAB用户提供了一种有效的对反馈控制系统进行建模、仿真和分析的方式。 有两种方式启动Simulink:

仿真实验指导书

实验一MATLAB的实验环境及基本命令 一实验目的: 1.学习了解MA TLAB的实验环境 2.在MA TLAB系统命令窗口练习有关MA TLAB命令的使用。 二实验步骤 1.学习了解MA TLAB的实验环境: 在Windows桌面上,用mouse双击MA TLAB图标,即可进入MA TLAB系统命令窗口: 图1-1 MA TLAB系统命令窗口 ①在命令提示符”>>”位置键入命令: help

此时显示MA T ALAB 的功能目录, 其中有“Matlab\general ”,“toolbox\control ”等;阅读目录的内容; ② 键入命令: intro 此时显示MA TLAB 语言的基本介绍,如矩阵输入、数值计算、曲线绘图等。要求阅读命令平台上的注释内容,以尽快了解MA TLAB 语言的应用。 ③ 键入命令: help help 显示联机帮助查阅的功能,要求仔细阅读。 ④ 键入命令: into 显示工具箱中各种工具箱组件和开发商的联络信息。 ⑤ 键入命令: demo 显示MA TLAB 的各种功能演示。 2. 练习MA TLAB 系统命令的使用。 ① 表达式 MA TLAB 的表达式由变量、数值、函数及操作符构成。实验前应掌握有关变量、数值、函数及操作符的有关内容及使用方法。 练习1-1: 计算下列表达式: 要求计算完毕后,键入相应的变量名,查看并记录变量的值。 ②.向量运算: ) 6 sin(/250π =d 2 /)101(+=a ) sin(3.2-=e c i b 53+=

n 维向量是由n 个成员组成的行或列数组。在MA TLAB 中,由分号分隔的方括号中的元素产生一个列向量;由逗号或空号分隔的方括号中的元素产生一个列向量;同维的向量可进行加减运算,乘法须遵守特殊的原则。 练习1-2 已知:X=[2 ;-4;8] 求 :Y=R ';P=5*R ;E=X .*Y ;S=X '* Y 练习1-3 ⑴产生每个元素为1的4维的行向量; ⑵产生每个元素为0的4维的列向量; ⑶产生一个从1到8的整数行向量,默认步长为1; ⑷产生一个从π到0,间隔为π/3的行向量; ③矩阵基本运算操作。 要求熟悉矩阵的输入方法及矩阵运算的有关命令。 练习1-4求出下列运算结果,并上机验证。已知矩阵: (1) A (:,1) (2)A (2,:) (3)A (:,2:3) (4)A (2:3,2:3) (5) A (:,1:2:3) (6)A (2:3) (7)A (:) (8)A (:,:) (9) ones(2,2) (10)eye(2) (11)[A,[ones(2,2);eye(2)]] (12)diag(A) (13)diag(A,1) (14)diag(A,-1) (15)diag(A,2) (16)fliplr(A) (17)flipud(A) (18)rot90(A) (19)tril(A) ] 5,9,4 [-=π tg R ????? ???????=4443 4241 343332312423222114131211 A

机电控制技术系统仿真综合实验指导书

机电控制技术 系统仿真综合实验指导书 南京工业职业技术学院 机械工程系 2008年2月

实验一MATLAB基本操作 实验目的 1.熟悉MATLAB实验环境,练习MATLAB命令、m文件、Simulink的基本操作。 2.利用MATLAB编写程序进行矩阵运算、图形绘制、数据处理等。 3.利用Simulink建立系统的数学模型并仿真求解。 实验原理 MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。MATLAB 有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink模型编辑窗口。 1.命令窗口(The Command Window) 当MA TLAB启动后,出现的最大的窗口就是命令窗口。用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。 在MA TLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。在命令窗口中输入该文件名,这一连串命令就被执行了。因为这样的文件都是以“.m”为后缀,所以称为m-文件。 2.m-文件编辑窗口(The Edit Window) 我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。 3.图形窗口(The Figure Window) 图形窗口用来显示MA TLAB程序产生的图形。图形可以是2维的、3维的数据图形,也可以是照片等。 MA TLAB中矩阵运算、绘图、数据处理等内容参见教材《机电控制技术》P18-26。 Simulink是MATLAB的一个部件,它为MA TLAB用户提供了一种有效的对反馈控制系统进行建模、仿真和分析的方式。 有两种方式启动Simulink:

matlab与通信仿真实验指导书(上)

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

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

第一章 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)菜单栏

《企业管理综合仿真实训》实训指导书

企业管理综合仿真实训 实 训 指 导 书 编写:鲍桑 2017年 6 月

编写说明 1.实训总体目标 “企业管理综合仿真实训”是讲授企业经营管理的实训课程。它采用一种全新的授课方法,课程的开展就是针对一个模拟企业,把企业能赢所处的内外部环境定义为一系列的规则,由受训者组成三个供应商,六个制造商相互竞争的模拟企业,通过模拟企业一年的经营,使受训者在分析市场、制定战略、营销策划、组织生产、财务管理等一系列活动中,参悟科学的管理规律,全面提升管理能力。 2.适用专业 工商管理、人力资源管理 3.先修课程 《供应链管理》、《财务管理》、《基础会计》、《生产管理》 4.实训课时分配 实训项目实训内容课时 创建模拟公司1.组建供应商公司 2.组建生产商公司 3.组建管委会 4.组建其他职能机构 4 报价获取订单1.各组人员分工 2.投放产品报价及广告费用 3.开展商品订货会PPT制作 4 预生产1月份订单1.锁定订单排名并发放订单 2.各组计算产能、人员招聘 3.生产商、制造商采购、运输合同签订;管委会机构(税务、 银行、运输、外贸、客户)系统确认 4.生产前准备 4 生产2-6月订单1.k/3系统凭证分录录入 2.生产排程检测,确定生产进度 3.根据“看板式”管理确认原材料、仓库、运输车辆、各组 人员、资金情况,合理调度。 4.各机构K/3系统输入和手工操作 4 制作财务报表及手 工凭证1. 订单商品出库、运输、交货、银行汇兑 2. 组内信息汇总完成手工填写内容 3. 清仓、对账 4 合计20

5.实训环境 企业管理综合仿真实训在专业的实训室完成,该实训室共有12组实训场景,共计电脑30台。 6.实训总体要求 企业管理综合仿真实训是集知识性、趣味性、对抗性于一体的企业管理技能训练课程。受训学生被分成若干个团队,每个团队由若干个学生组成,每个学生将担任总经理、营销总监、生产总监、财务总监、供应总监等。每个团队经营一个拥有销售良好、资金充裕的虚拟公司,连续从事1个会计年度的经营活动。通过仿真模拟企业实际运行状况,内容涉及企业整体战略、产品研发、生产、市场、销售、财务管理、团队协作等多方面,让学员在游戏般的训练中体验完整的企业经营过程,感受企业发展的典型历程,感悟正确的经营思路和管理理念。在短短一周的训练中,学员将遇到企业经营中常出现的各种典型问题,他们必须一同发现机遇,分析问题,制定决策,保证公司成功及不断成长。

通信原理MATLAB仿真

小学期报告 实习题目通信原理Matlab仿真专业通信与信息工程 班级 学号 学生姓名 实习成绩 指导教师 2010年

通信原理Matlab仿真 目录 一、实验目的------------------------------------------------------------------------------------------------2 二、实验题目------------------------------------------------------------------------------------------------2 三、正弦信号波形及频谱仿真------------------------------------------------------------------------2 (一)通信原理知识--------------------------------------------------------------------------------------2 (二)仿真原理及思路--------------------------------------------------------------------------------------2 (三)程序流程图------------------------------------------------------------------------------------------- 3 (四)仿真程序及运行结果------------------------------------------------------------------------------3 (五)实验结果分析---------------------------------------------------------------------------------------5 四、单极性归零波形及其功率谱密度仿真--------------------------------------------------------5 (一)通信原理知识--------------------------------------------------------------------------------------6 (二)仿真原理及思路------------------------------------------------------------------------------ -------6 (三)程序流程图-------------------------------------------------------------------------------------------6 (四)仿真程序及运行结果--------------------------------------------------------------------------------6 (五)实验结果分析-------------------------------------------------------------------------------- -------6 五、升余弦滚降波形的眼图及功率谱密度仿真-------------------------------------------------8 (一)通信原理知识--------------------------------------------------------------------------------------8 (二)仿真原理及思路------------------------------------------------------------------------------ -------9 (三)程序流程图------------------------------------------------------------------------------- -----------9 (四)仿真程序及运行结果------------------------------------------------------------------------------10 (五)实验结果分析---------------------------------------------------------------------------------------11 六、PCM编码及解码仿真-----------------------------------------------------------------------------12 (一)通信原理知识---------------------------------------------------------------------------------- ---12 (二)仿真原理及思路------------------------------------------------------------------------------ ------ 13 (三)程序流程图------------------------------------------------------------------------------- -----------14 (四)仿真程序及运行结果------------------------------------------------------------------------------15 (五)实验结果分析---------------------------------------------------------------------------------------18 七、实验心得---------------------------------------------------------------------------- -------------------18

MATLAB仿真实验报告

MATLA仿真实验报告 学院:计算机与信息学院 课程:—随机信号分析 姓名: 学号: 班级: 指导老师: 实验一

题目:编写一个产生均值为1,方差为4的高斯随机分布函数程序, 求最大值,最小值,均值和方差,并于理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示 G仁random( 'Normal' ,0,4,1,1024); y=max(G1) x=mi n(G1) m=mea n(G1) d=var(G1) plot(G1);

实验二 题目:编写一个产生协方差函数为CC)=4e":的平稳高斯过程的程序,产生样本函数。估计所产生样本的时间自相关函数和功率谱密度,并求统计自相关函数和功率谱密度,最后将结果与理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示。 N=10000; Ts=0.001; sigma=2; beta=2; a=exp(-beta*Ts); b=sigma*sqrt(1-a*a); w=normrnd(0,1,[1,N]); x=zeros(1,N); x(1)=sigma*w(1); for i=2:N x(i)=a*x(i-1)+b*w(i); end %polt(x); Rxx=xcorr(x0)/N; m=[-N+1:N-1]; Rxx0=(sigma A2)*exp(-beta*abs(m*Ts)); y=filter(b,a,x) plot(m*Ts,RxxO, 'b.' ,m*Ts,Rxx, 'r');

periodogram(y,[],N,1/Ts); 文件旧硯化)插入(1〕 ZMCD 克闻〔D ]窗口曲) Frequency (Hz) 50 100 150 200 250 300 350 400 450 500 NH---.HP)&UO 二 balj/ 」- □歹

系统建模及仿真实验指导书(10级)

《系统建模与仿真实验设计与指导》机电工程学院电气工程及自动化实验室 2013年3月 目录 基础实验(一)控制系统建模及稳定性分析 基础实验(二)控制系统的数字仿真 基础实验(三)控制系统的时域分析 基础实验(四)控制系统的频域分析 综合实验(五)控制系统的设计 实验说明: 通过本课程的实验教学,学生应熟练掌握MATLAB语言的程序设计与使用。掌握MATLAB软件实现控制系统数学模型的建立、变换和稳定性分析;控制系统的数字仿真;控制系统的时域、频域分析;控制系统设计。通过实验对所学的专业理论知识有更深入的理解和认识,从而具备解决自动化及相关专业领域中实际系统分析、设计与综合等问题的能力。 实验报告要求给出具体的MATLAB程序和简要的实验总结。 实验一 控制系统建模及稳定性分析 一、实验目的 1.掌握Matlab中系统模型描述相关命令函数及使用; 2.掌握系统模型变换; 3.掌握Matlab中不同方法的系统稳定性分析。 二、实验内容 1.系统数学模型建立与转换 2.控制系统稳定性分析 三、实验步骤 1.系统数学模型建立

2. 系统数学模型转换 3. 控制系统稳定性分析 给定SISO 系统输入为“flow”,输出为“Temp”,传递函数为 使用MATLAB 表示该传递函数 ()22321.32 2.5e ()0.5 1.21 s s s G s s s s -++=+++ 将状态空间模型 转换为传递函数和零 极点增益模型。 R ) 已知控制系统结构图如图所示,

实验二 控制系统数字仿真一、实验目的 掌握Matlab中典型闭环系统的数字仿真; 二、实验内容 典型闭环系统的数字仿真MATLAB实现 三、实验步骤 求如图所示系统的阶跃响应y(t)的数值解。

昆明理工大学MATLAB实验指导书(第二次实验)

************************ MATLAB上机指导书 ************************ 昆明理工大学机电学院 彭用新 2015年3月

实验三符号计算 一、操作部分:在命令窗口执行命令完成以下运算,记录运算结果。 1.findsym:帮助我们获取系统定义的自变量 f= sym('sin(a*x+b*y)'); findsym(f) 2.numden(获取分子分母), sym2poly,(获取多项式时系数)poly2sym(根据多项式系 数获得符号表达式) [n,d]=numden(sym('x*x+y')+sym('y^2')) p=sym('2*x^3+3*x^2+4'); sym2poly(p) x=[2,3,0,4]; poly2sym(x) 3. collect :合并同类项;expand:展开多项式;horner: 分解成嵌套形式;factor:因式 分解;simplify: 对表达式化简 syms x y; collect(x^2*y+y*x-x^2-2*x) collect((x+y)*(x^2+y^2+1), y) syms x y; expand((x-2)*(x-4)) syms x;horner(x^3-6*x^2+11*x-6) syms x;factor(x^3-6*x^2+11*x-6) syms x;simplify((x^2+5*x+6)/(x+2)) 4. finverse :求得符号函数的反函数。 syms x y; finverse(1/tan(x)) f= x^2+y; finverse(f,y) finverse(f) https://www.360docs.net/doc/1b7698191.html,pose 求符号函数的复合函数 syms x y; f = 1/(1 + x^2); g = sin(y); compose(f,g) 6. subs :表达式替换。 syms a b;subs(a+b,a,4)

北邮dsp软件matlab仿真实验报告

题目: 数字信号处理MATLAB仿真实验 姓名 学院 专业 班级 学号 班内序号

实验一:数字信号的 FFT 分析 1、实验内容及要求 (1) 离散信号的频谱分析: 设信号 此信号的0.3pi 和 0.302pi 两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。 (2) DTMF 信号频谱分析 用计算机声卡采用一段通信系统中电话双音多频(DTMF )拨号数字 0~9的数据,采用快速傅立叶变换(FFT )分析这10个号码DTMF 拨号时的频谱。 2、实验目的 通过本次实验,应该掌握: (a) 用傅立叶变换进行信号分析时基本参数的选择。 (b) 经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT ) 后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。 (c) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。 (d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。 (e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio 。 3、程序代码 (1) N=5000; n=1:1:N; x=0.001*cos(0.45*pi*n)+sin(0.3*pi*n)-cos(0.302*pi*n-pi/4); y=fft(x,N); magy=abs(y(1:1:N/2+1)); k=0:1:N/2; w=2*pi/N*k; stem(w/pi,magy) axis([0.25,0.5,0,50]) (2) column=[1209,1336,1477,1633]; line=[697,770,852,941]; fs=10000; N=1024; 00010450303024().*cos(.)sin(.)cos(.)x n n n n ππππ=+--

东北林业大学 系统建模与仿真实验指导书

《系统建模与仿真实验设计与指导》 机电工程学院电气工程及自动化实验室 2013年3月

目录 基础实验(一)控制系统建模及稳定性分析 基础实验(二)控制系统的数字仿真 基础实验(三)控制系统的时域分析 基础实验(四)控制系统的频域分析 综合实验(五)控制系统的设计 实验说明: 通过本课程的实验教学,学生应熟练掌握MATLAB语言的程序设计与使用。掌握MATLAB软件实现控制系统数学模型的建立、变换和稳定性分析;控制系统的数字仿真;控制系统的时域、频域分析;控制系统设计。通过实验对所学的专业理论知识有更深入的理解和认识,从而具备解决自动化及相关专业领域中实际系统分析、设计与综合等问题的能力。 实验报告要求给出具体的MATLAB程序和简要的实验总结。

控制系统建模及稳定性分析 一、 实验目的 1. 掌握Matlab 中系统模型描述相关命令函数及使用; 2. 掌握系统模型变换; 3. 掌握Matlab 中不同方法的系统稳定性分析。 二、 实验内容 1. 系统数学模型建立与转换 2. 控制系统稳定性分析 三、 实验步骤 1. 系统数学模型建立 P87 2. 系统数学模型转换 P99 3. 控制系统稳定性分析 P170 给定SISO 系统输入为“flow”,输出为“Temp”,传递函数为 使用MATLAB 表示该传递函数 () 22321.32 2.5e ()0.5 1.21 s s s G s s s s -++= +++ 将状态空间模型 转换为传递函数和零 极点增益模型。 []0100001052011100???? ????=+??? ?????---????= x x u y x R ) 已知控制系统结构图如图所示, 求取系统的闭环极点,并判别闭环系统的稳定性。

MATLAB实验指导书(学生定稿)

实验一 MATLAB语言平台及基本运算 一、实验目的 1、熟悉MATLAB基本的操作界面。 2、掌握MATLAB中变量、数组、向量等对象的生成方法。 3、掌握矩阵的生成和基本运算方法。 4、掌握MATLAB中的常用绘图命令使用方法 二、实验设备 计算机,MATLAB语言环境 三、实验指导原理 1、常见数学函数 如:输入 x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则 ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) = -5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 7 系统的在线帮助 (1) help 命令: 1).当不知系统有何帮助内容时,可直接输入 help以寻求帮助: >> help(回车) 2).当想了解某一主题的内容时,如输入: >> help syntax (了解 Matlab 的语法规定) 3).当想了解某一具体的函数或命令的帮助信息时,如输入: >> help sqrt (了解函数 sqrt 的相关信息)

(2) lookfor 命令 现需要完成某一具体操作,不知有何命令或函数可以完成,如输入: >> lookfor line (查找与直线、线性问题有关的函数) 3、常量与变量 系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后 可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表: (1)数值型向量(矩阵)的输入 1).任何矩阵(向量),可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([ ]内;例1: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] >> X_Data = [2.32 3.43;4.37 5.98] 2).系统中提供了多个命令用于输入特殊的矩阵: 上面函数的具体用法,可以用帮助命令 help 得到。如:help zeros ZEROS Zeros array. ZEROS(N) is an N-by-N matrix of zeros. ZEROS(M,N) or ZEROS([M,N]) is an M-by-N matrix of zeros.等等 4、数组(矩阵)的点运算 运算符:+(加)、-(减)、./(右除)、.\(左除)、.^(乘方), 例4: >> g = [1 2 3 4];h = [4 3 2 1]; >> s1 = g + h, s2 = g.*h, s3 = g.^h, s4 = g.^2, s5 = 2.^h 5、矩阵的运算

相关文档
最新文档