MATLAB教案(精选五篇)

时间:2019-05-11 21:40:10下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《MATLAB教案》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《MATLAB教案》。

第一篇:MATLAB教案

第二章MATLAB软件

2.1 MATLAB语言及其特点  人机界面友好

 强大而简易的作图功能  功能丰富,可扩展性强  超强的数值运算功能  实用的程序接口

2.2 MATLAB语言的工作环境 2.2.1 MATLAB启动

2.2.2命令窗(Command Window)中的菜单与功能

MATLAB命令窗口是用户和MATLAB交互的主要窗口。命令窗口菜单条下有6个下拉子菜单: File、Edit、Window、debug、desktop和Help。File子菜单:

New及其子菜单:允许用户打开一个新的文件。

Open....:从指定路径和文件名打开一个已经存在的文件。Close Command Window:关闭命令窗口。

Import Data....:从指定路径和相应文件中获取数据,在工作空间中生成一变量。Save Workspace As....:保存在指定路径下的相应文件中。Set Path....:设置MATLAB的搜索路径。Preferences...:对系统性能参数进行设置。

Page Setup:设置页面布局、页眉、页脚中所用的字体等 Edit子菜单:

Undo、Redo、Cut、Copy和Paste等:分别用于撤销、重复上一次操作、剪切、复制和粘贴。

Paste Special:将存放在缓冲区内的内容按照一定的格式存放在剪贴板变量中。Select All:用于选定当前窗口中所有内容。Delete:删除预先选定的内容。

Find:当前目录中的M-文件中查找相应内容。

Clear Command Window:清除命令窗口中显示内容,但不会删除工作空间中内容。(命令:clc)

Clear Command History:清除历史记录。Debug子菜单:

Open M-File „:打开一个要调试的M-文件 Step:逐个语句运行

Step In:进入下一个语句 Step Out:退出调试

Clear breakpoints in all file:清除所有文件断点

Stop if errors/warning„:遇到错误或警告断点停止运行 2.2.3 工作空间

允许用户查看当前工作空间的内容,它的作用与命令“whos”相同(“whos”的作用是:键入后可在命令窗口中查看当前工作空间的内容),不同的是用图形化的表示方法来显示。而且,通过它可以对工作空间中的变量进行删除、保存、修改等操作。用鼠标双击工作空间中所选变量,则进入数组编辑器(Array Editor),用户可对变量的维数、内容等进行修改。

2.2.4命令历史窗口(Command History)主要显示曾经在Command Window窗口执行过的命令。2.2.5当前路径窗口(Current Directory)主要显示当前工作路径,包括M文件的打开路径等。当前路径窗口允许用户对MATLAB的路径进行查看和修改。通常启动MATLAB的默认当前路径是MATLABwork,不改变当前目录,用户自己的工作空间和文件都将保存到该目录。2.2.6 MATLAB搜索路径

MATLAB是采用路径搜索的方法来查找文件系统中的M文件。如果在命令窗口中输入如下命令: >>test MATLAB对这一命令的搜索顺序为:

(1)检查“test”是否是工作空间中的变量;(2)检查“test”是否为内部函数;(3)检查当前目录中是否有test.m、test.mex或test.dll文件;

(4)检查MATLAB搜索路径上是否存在test.m、test.mex或test.dll文件;(5)如不满足上述任何一条件,则返回出错信息。如果在搜索路径中存在两个或多个同名函数,则只能发现搜索路径中的第一个函数,而其它同名函数不被执行。

为了运行已有程序,用户可事先设置好MATLAB的搜索路径,然后再运行程序。方法一:在当前路径窗口(Current Directory)将文件所在的路径设置为当前路径; 方法二:单击File菜单中的Set Path„项,弹出路径设置对话框如图1.11所示。2.2.7 MATLAB帮助系统 帮助浏览器 help命令

(1)在线帮助总览

>> help % 在命令窗口直接输入help,显示在线帮助总览(2)显示基本函数信息 >> help elfun(3)显示具体函数的帮助信息

>> help round %显示具体函数的详细信息,本例为round函数

注意:MATLAB对字母的大小写是敏感的,变量A与变量a表示两个不同的变量。MATLAB所有的命令和函数都必须用小写。lookfor命令 模糊查询 在线帮助页

2.3 MATLAB基本运算

2.3.1矩阵运算

第3章 MATLAB绘图

数据可视化是MATLAB的强大功能之一,数据可视化不仅仅是二维的,还可以在三维空间展示数据,而数据或者图形的可视化也是进行数据处理或者图形图像处理的第一步骤。

MATLAB绘图都是在MATLAB图形窗体中进行的,而所有图形数据可视化的工作也都以图形窗体为主。

MATLAB的图形窗体主要包括如下几个部分: * 菜单栏:图形窗一般包括一个菜单栏,利用这个菜单栏可完成对窗体中各种对象的基本操作。* 工具条:图形窗体的工具条用来完成对图形对象的一般性操作。* 绘图区域:图形窗体的绘图区域是面积最大的一部分,在这个区域中可以绘制各种曲线,显示图形图像文件,以及完成对图形图像或者曲线的编辑。

数据可视化的步骤: * 准备绘图数据。* 创建图形窗体。

* 使用绘图函数绘制图形或者曲线。* 设置图形属性

第二篇:Matlab 与线性代数教案

Matlab 与线性代数

一、Matlab 入门:

1.启动、退出、运行: 2.窗口介绍: 3.基本符号: =:赋值符号

[ ]:数组定义符号 , 区分列 函数参数分隔符;区分行 取消运行显示 % 注释标记

: 具有多种应用功能

4.matlab的变量(区分大小写): 预定义变量: ans

pi 相关命令: format(显示格式 rat long short)

who whos clear

5.M 文件(纯文本文件,扩展名为.m)建立 修改 保存 运行

二、Matlab 与线性代数的基本运算

1.矩阵的输入

数字矩阵:A=[1 2 3;3 2 1]

或 A=[1, 2, 3;3, 2, 1] 或 A=[1 2 3 2 1]

符号矩阵(显示出来元素之间有逗号): 定义符号变量 sym syms

用法:(1).sym(‘[a,b,c;b,c,a]’)或 sym(‘[a b c;b c a]’)

(2).syms a b c

A=[a b c;b c a]

2.产生特殊矩阵的函数:

zeros(m,n)zeros(n)

ones(m,n)ones(n)eye(n)

magic(n)rand(m,n)randn(n)% 产生(0,1)区间均匀分布的随机矩阵

3.相关命令:

round(A)% 表示对矩阵A中所有元素进行四舍五入 length(A)% 返回A的长度(列数)size(A)% 返回A的尺寸,行数 列数 A(i,j)% 引用矩阵A的第i行第j列元素

4.矩阵的基本运算

(1).+-*.*

(2).转置 A’

(3).方阵的幂:A^3

5.求向量组的极大无关组

A[1,2,3 ]

(1).U=rref(A)% U为A的行最简形

(2).[U,s]=rref(A)% U为A的行最简形, s为首非零元所在列组成的向量

(3).rrefmovie(A)% 返回A的行最简形,且给出每一步化简过程

6.求线性方程组的解

情形1。Ax=b,其中A为n阶可逆阵

法1: x=inv(A)*b 或 x=A^(-1)*b

法2: U=rref([A,b])% 返回值U为矩阵的行最简形,最后一列即为解x。

情形2。Ax=0, 其中A 为m*n 矩阵,R(A)=r

法1:U=rref(A), 选定自由变量,得到一组基础解系

法2:z=null(A)

% z的列向量为Ax=0的一组标准正交基。

情形3。Ax=b, 其中A 为m*n 矩阵, 求通解

U=rref([A,b])从最后一列找特解,前n列找导出组的基础解系,然后按格式写

出Ax=b的通解。(或先写出以U为增广矩阵的同解方程组也可。)

6x13x22x33x44x554x12x2x32x43x54

例子: .4x2x3x2xx0234512xx7x3x2x112345(4).(5).(6).(7).方阵行列式 det(A)方阵的秩 rank(A)方阵的逆 inv(A)或 A^(-1)矩阵的除法 左除 右除/

AB=C

则 A=C/B B=AC 输入:A=[6 3 2 3 4;4 2 1 2 3;4 2 3 2 1;2 1 7 3 2];

b=[5 4 0 1]’;

U=rref([A,b])10得到:U001/2000010000103/417/203/22 603/20取x2,x5为自由变量,令x20,x50得Ax=b的特解*2

60

1/23/410x210分别令和得导出组的基础解系为:10,21

x50107/2013x24x5x112x3x5或:导出组Ax=0的同解方程组:,x2,x5为自由变量,分别令x47x521/23/410x21,x50和x20,x51得导出组的基础解系为:10,21。

07/2017.求矩阵的特征值与特征向量

(1).d=eig(A)% d为矩阵A的特征值构成的向量

(2).[V,D]=eig(A)% D为A 的特征值构成的对角阵,V 的列为A的单位特征向

量,与D中的特征值对应,满足:AVDV8.Schmidt 正交化方法

B=orth(A)% B的列向量为A的列空间的一组标准正交基,换句话说,B的列是

A的列向量的正交标准化,满足B*Beye(rank(A))。

9.用正交变换化二次型为标准形

先写出所给二次型的矩阵A,则A为实对称矩阵,[V,D]=eig(A)% D 为A的特征值构成的对角阵,V的列向量为A的正交单位特征

向量,次序与D的元素对应。满足VAVDVT1'1,即AVVD。

AV。

第三篇:MATLAB仿真技术实验教案

《MATLAB仿真技术》 实验教案

实验一

实验名称:熟悉Matlab交互工作界面

一、实验目的

1、熟悉Matlab各种工作界面的操作要旨

2、掌握Matlab的基本操作命令

二、实验步骤

1、命令窗口

(1)体验命令窗口的菜单及各项功能(2)尝试命令窗口编辑特殊功能键和设置

2、工作空间窗口与当前路径窗口(1)在工作空间窗口查看及修改变量(2)添加新的路径为Matlab路径

3、图形窗口和文本编辑窗口

(1)练习图形窗口中修改图形的方法(2)在文本编辑窗口调试程序

4、体会Matlab的基本操作命令

三、实验仪器

PC机 MATLAB软件

四、实验结果

五、结论

实验二

实验名称:Matlab在符号计算方面的应用

一、实验目的

1、掌握标识符的生成和使用

2、掌握矩阵及变量的赋值

3、熟悉三类运算符及其功能

二、实验内容

1、标识符的生成和使用

1)、计算yx(x0.98)/(x1.35)5(x1/x),当x=2和x=4时的值。>>x=[2 4];y=x.^3+(x-0.98).^2./(x+1.35).^3-5*(x+1./x);y y =

-4.4723 42.8096 32)、计算cos6092。323>> y=cos(pi/3)-(9-sqrt(2))^(1/3)y =

-1.4649

2、矩阵及变量的赋值

21)、已知a=3,A=4,b=a,B=b2-1,c=a+A-2B,C=a+2B+c,求C >> a=3;A=4;b=a^2;B=b^2-1;c=a+A-2*B;C=a+2*B+c;C C = 2)、创建3×4矩阵魔方阵和相应的随机矩阵,将两个矩阵并接起来,然后提取任意两个列向量。

>> A=magic(4);A(4,:)=[];B=rand(3,4);C=[A B];D=C(:,3);E=C(:,4);D,E D = 3 10 6

E =

8 12 3)、创建一个5×5随机阵并求其逆。>> A=rand(5,5);B=inv(A)B =

-0.3113-0.5610-0.4334 0.8177 0.8277 0.9176-1.0464 2.3486-2.9934 0.3191-1.3483 0.5234-0.0487-0.1748 1.3919 0.6796 0.4366 0.4831 0.8076-1.7734 0.9505 1.2291-1.8918 1.7705-1.1269 4)利用上题的矩阵,计算矩阵的5次方。>> A=rand(5,5);C=A^5 C =

2.0162 1.9763 1.0497 1.3285 2.9673 2.4018 2.3423 1.2565 1.5811 3.5262 4.4993 4.1926 2.4290 2.9369 6.4685 3.0087 2.8175 1.6171 1.9680 4.3373 2.4288 2.3430 1.2792 1.5951 3.5506

3、三类运算符及其功能

1)创建一个4×4随机矩阵,提取对角线以上部分。>> A=rand(5,5);D=triu(A,1)D =

0 0.3142 0.0381 0.1603 0.6649 0 0 0.4586 0.8729 0.8704 0 0 0 0.2379 0.0099 0 0 0 0 0.1370 0 0 0 0 0 2)创建一个4×5随机矩阵,提取第一行和第二行中大于0.3的元素组成矩阵。>> A=rand(4,5);B=A([1 2],:)>0.3;C=B.*A([1 2],:)C =

0.3972 0.3716 0.7165 0 0.7036 0.4136 0.4253 0.5113 0.7006 0.4850 481343215,B6238,求C=A*B,D=A.*B。593)设A36271281397>> A=[1 4 8 13;-3 6-5-9;2-7-12-8];B=[5 4 3-2;6-2 3-8;-1 3-9 7];C=A*B' D=A.*B C =

19-82 30 12 27 3-38 54 29

D =

24-26-18-12-15 72-2-21 108-56

三、实验仪器

PC机 MATLAB软件

四、实验结果

五、结论

实验三

实验名称:一维二维数组创建与寻访

一、实验目的

1、掌握数组的创建和寻访

2、掌握数组的生成函数和操作运算

3、掌握数组操作运算与矩阵操作运算

二、实验步骤

1、直接输入法创建数组

创建一个数组并赋值给变量a 12345678 使a=a910111213141516

2、使用MATLAB函数创建数组

创建一个数组并赋值给变量b,使b中元素服从均值为0,方差为1的正态分布(b为4×4阶)

3、利用外部数据文件(MAT)保存和装载数组 保存并调用变量a,b

4、比较数组运算与矩阵运算操作的区别 ⑴分别对变量a,b 进行矩阵乘和数组乘 ⑵分别对变量a,b 进行矩阵除和数组除

三、实验结果

1、直接输入法创建数组

创建一个数组并赋值给变量a 12345678 使a=a910111213141516MATAB源程序:

>> a=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16] a =

13

2、使用MATLAB函数创建数组

创建一个数组并赋值给变量b,使b中元素服从均值为0,方差为1的正态分布(b为4×4阶)

MATAB源程序: >> b=randn(4,4)b =

-0.4326

-1.1465

0.3273

-0.5883

-1.6656

1.1909

0.1746

2.1832

0.1253

1.1892

-0.1867

-0.1364 0.2877

-0.0376

0.7258

0.1139

3、利用外部数据文件(MAT)保存和装载数组 保存并调用变量a,b MATAB源程序: >> save D:55 a b >> clear

>> load D:55 a b

4、比较数组运算与矩阵运算操作的区别 ⑴分别对变量a,b 进行矩阵乘和数组乘 MATAB源程序: >> a*b

ans =

-2.2370

4.6523

3.0196

3.8246

-8.9776

9.4362

7.1837

10.1142

-15.7182

14.2201

11.3477

16.4038

-22.4587

19.0040

15.5118

22.6934

>> a.*b

ans =

-0.4326

-2.2929

0.9819

-2.3533

-8.3279

7.1455

1.2225

17.4655

1.1280

11.8916

-2.0538

-1.6368

3.7398

-0.5269

10.8869

1.8229 ⑵分别对变量a,b 进行矩阵除和数组除 MATAB源程序: >> a/b

ans =

-2.6166

0.7871

-1.4789

4.7435

-7.5005

0.8441

-2.6467

12.1430

-12.3844

0.9011

-3.8145

19.5425

-17.2683

0.9581

-4.9822

26.9420 >> ab Warning: Matrix is close to singular or badly scaled.Results may be inaccurate.RCOND = 1.387779e-018.ans =

1.0e+016 *

0.6415

-1.3356

0.3480

-1.1382

-0.6372

1.4254

-0.3919

1.1373

-0.6503

1.1558

-0.2602

1.1400 0.6459

-1.2457

0.3041

-1.1391 >> a./b

ans =

-2.3118

-1.7445

9.1661

-6.7991

-3.0019

5.0381

40.0827

3.6644

71.8091

8.4093-58.9153-87.9792

45.1897-372.0112

20.6671 140.4355 >> a.b

ans =

-0.4326

-0.5732

0.1091

-0.1471

-0.3331

0.1985

0.0249

0.2729

0.0139

0.1189

-0.0170

-0.0114

0.0221

-0.0027

0.0484

0.0071

三、实验仪器

PC机 MATLAB软件

四、实验结果

五、结论

实验四

实验名称:Matlab在数值计算方面的应用

一、实验目的

1、学会使用MATLAB关系运算符

2、学会使用MATLAB逻辑运算符

3、掌握多项式的表示方法及运算

4、熟练掌握精度可控的数值积分

二、实验步骤

1、关系运算符

生成一个包含10个 元素的行向量A,要求A中的元素服从均值为0,方差为1的正态分布,求sin(A)./A的极限。

注:当A中的元素为0时MATLAB不发出警告

2、逻辑运算符

分别生成两个包含10个 元素的行向量A、B,要求A、B中的元素在(0,1)之间服从均匀分布,找出A中大于0.5,B中小于0.5的元素,并将结果分别赋值给变量a、b,求变量a、b的同或(只利用与、或、非三个基本逻辑运算符)。

3、多项式的表示方法及运算

令m(x)=x6+6x5+20x4+50x3+75x2+84x+64;n(x)=x4-12x3+25x+16 求m(x)与 n(x)的卷积。

4、精度可控的数值积分

已知y=x1·log(1+x1)关于x1求从0到1的积分,要求精度为1e-6

三、实验结果

1、关系运算符

生成一个包含10个 元素的行向量A,要求A中的元素服从均值为0,方差为1的正态分布,求sin(A)./A的极限。MATAB源程序: >> A=randn(1,10);A=A+(A==0)*eps;sin(A)./A

ans =

0.7799

0.7759

0.9999

0.9959

0.6231

0.9890

0.8241

0.6981

0.8954

0.9541

2、逻辑运算符

分别生成两个包含10个 元素的行向量A、B,要求A、B中的元素在(0,1)之间服从均匀分布,找出A中大于0.5,B中小于0.5的元素,并将结果分别赋值给变量a、b,求变量a、b的同或(只利用与、或、非三个基本逻辑运算符)。MATAB源程序: A=rand(1,10)B=rand(1,10)c=A>0.5;a=c.*A d=B<0.5;b=d.*B((~a)&(~b))|(a&b)A =

0.3654

0.1400

0.5668

0.8230

0.6739

0.9994

0.9616

0.0589

0.3603

0.5485

B =

0.2618

0.5973

0.0493

0.5711

0.7009

0.9623 0.4319

0.6343

a =

0

0

0.5668

0.8230

0.6739

0.9994 0

0.5485

b =

0.2618

0

0.0493

0

0

0 0.4319

0

ans =

0

0

0

0

0

0

0

3、多项式的表示方法及运算

令m(x)=x6+6x5+20x4+50x3+75x2+84x+64;n(x)=x4-12x3+25x+16 求m(x)与 n(x)的卷积。MATAB源程序:

>> m=[1 6 20 50 75 84 64];n=[1-12 0 25 16];w=conv(m,n)w =

Columns 1 through 10

-52

-165

626

1907

3300

2944

0.7505

0.9616

0-359

0.7400

0

0

-220

Column 11

1024

4、精度可控的数值积分

已知y=x1·log(1+x1)关于x1求从0到1的积分,要求精度为1e-6 MATAB源程序:

>> y=quad('x1.*log(1+x1)',0,1,'1e-6')y =

0.2500

三、实验仪器

PC机 MATLAB软件

四、实验结果

五、结论

实验五

实验名称:数据和函数的可视化

一、实验目的

1、掌握二维图形的绘制

2、熟悉二维图形的修饰

3、掌握三维图形的绘制

4、能从不同角度观察试图

二、实验步骤

1、二维图形的绘制

Y=sinx2e-x分别在四个子图中给出棒状图(红)、阶梯图(蓝)、条形图(黄)、填充图形(绿),并加网络线。

2、二维图形的修饰

已知y1=sin(x),y2=cos(x),在一个图形绘制y1,y2的曲线。⑴给出图形题目(“正弦曲线和余弦曲线”)⑵给出横坐标(“弧度值”),纵坐标(“函数值”)⑶分别加曲线标注(“正弦曲线”),(“余弦曲线”)⑷将x,y坐标轴的单位设置为相等 ⑸将当前图形设置为正方形

3、三维曲线的绘制

f(x,y)2sinx2y2xy22分别绘制其网线图及曲面图

4、三维曲线的修饰及视角 对上题的曲面图作

⑴用截面颜色分布方式填充 ⑵用插列式颜色分布方式填充 ⑶用平面式颜色分布方式填充 ⑷用300方位角,-37.50仰角观察 ⑸用1800方位角,00仰角观察

三、实验结果

1、二维图形的绘制

Y=sinx2e-x分别在四个子图中给出棒状图(红)、阶梯图(蓝)、条形图(黄)、填充图形(绿),并加网络线。MATAB源程序: x=0:0.5:2*pi;y=sin(x.^2).*exp(-x);figure(1)subplot(2,2,1)stem(x,y,'r')grid on subplot(2,2,2)stairs(x,y,'b')grid on subplot(2,2,3)bar(x,y,'y')axis([0,6,-.2,.6])grid on subplot(2,2,4)fill(x,y,'g')grid on

2、二维图形的修饰

已知y1=sin(x),y2=cos(x),在一个图形绘制y1,y2的曲线。⑴给出图形题目(“正弦曲线和余弦曲线”)⑵给出横坐标(“弧度值”),纵坐标(“函数值”)⑶分别加曲线标注(“正弦曲线”),(“余弦曲线”)⑷将x,y坐标轴的单位设置为相等 ⑸将当前图形设置为正方形 MATAB源程序: x=0:0.1:2*pi;y1=sin(x);y2=cos(x);plot(x,[y1;y2])title('正弦曲线和余弦曲线')xlabel('弧度值')ylabel('函数值')legend('正弦曲线','余弦曲线')axis('equal')axis('square')

3、三维曲线的绘制

f(x,y)2sinx2y2xy22分别绘制其网线图及曲面图

MATAB源程序: x=-8:0.5:8;y=x;[X,Y]=meshgrid(x,y);z=2.*sin(sqrt(X.^2+Y.^2)+eps)./(sqrt(X.^2+Y.^2)+eps);mesh(z)figure(2)surf(z)

4、三维曲线的修饰及视角 对上题的曲面图作

⑴用截面颜色分布方式填充 ⑵用插列式颜色分布方式填充 ⑶用平面式颜色分布方式填充 ⑷用300方位角,-37.50仰角观察 ⑸用1800方位角,00仰角观 MATAB源程序: shading faceted shading interp shading flat察 view(30,-37.5)view(180,0)

实验六

实验名称:M文件和函数句柄

一、实验目的

1、掌握利用控制语句实现复杂问题的方法

2、掌握M文件的创建及调用方法

3、掌握利用函数句柄来求取函数值的方法

4、学习利用内联函数来求取函数值的方法

二、实验步骤

x1xsin3x31x1

1、已知函数yxexx1要求利用控制语句来实现y的绘图。

2、已知f(x)11

(x2)20.1(x3)30.011)若X用矩阵代入,得f(x)为同阶矩阵 2)利用M文件求x∈[-1,0]的函数值 3)利用函数句柄求x∈[0,1]的函数值 4)利用内联函数求x∈[1,2]的函数值

3、设xcos(t),ysin(Nt),若N=2,α=0,π/3, π/2, π,在4个子图中分别画出其曲线。(要求只有一个subplot命令)

三、实验结果

x1xsin3x31x1

1、已知函数yxexx1要求利用控制语句来实现y的绘图。

M文件如下:

function y=hs(x)n=length(x);for k=1:n if x(k)<=-1 y(k)=x(k).*sin(3*x(k));elseif x(k)>=-1 y(k)=x(k)^3;else y(k)=exp(-x(k));end end plot(x,y)调用如下: >> a=-2:.1:2;>> b=hs(a);

876543210-1-2-2-1.5-1-0.500.511.52

2、已知f(x)11 23(x2)0.1(x3)0.011)利用M文件求x∈[-1,0]的函数值 2)利用函数句柄求x∈[0,1]的函数值 3)利用内联函数求x∈[1,2]的函数值 4)若X用矩阵代入,得f(x)为同阶矩阵 M文件如下:

function y=hs1(x)y=1./((x-2).^2+.1)+1./((x-3).^3+.01);plot(x,y)

2)调用如下: >> a=rand(4);>> b=hs1(a)0.90.80.70.60.50.40.30.200.10.20.30.40.50.60.70.80.91

b =

0.7156 0.6456 0.5748 0.6805 0.2626 0.5233 0.3370 0.5045 0.4170 0.3420 0.4220 0.2475 0.3550 0.2106 0.5483 0.3212

2)调用如下: >> a=-1:0.1:0;>> b=hs1(a);0.220.20.180.160.140.120.10.08-1-0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.10

3)调用如下: >> c=0:.1:1;>> d=@hs1;>> e=d(c);0.90.80.70.60.50.40.30.200.10.20.30.40.50.60.70.80.91 4)调用如下:

y=inline('1./((x-2).^2+.1)+1./((x-3).^3+.01)');p=1:.1:2;q=y(p);plot(p,q)987654321011.11.21.31.41.51.61.71.81.92

3、设xcos(t),ysin(Nt),若N=2,α=0,π/3, π/2, π,在4个子图中分别画出其曲线。(要求只有一个subplot命令)M文件如下:

function y=hs1(t)N=2;alpha=[0 pi/3 pi/2 pi];for i=1:4 x=cos(t);y=sin(N*t+alpha(1,i));subplot(2,2,i);plot(x,y)end 调用如下: >> t=0:.1:6;>> u=hs1(t);10.50-0.5-1-1-0.500.5110.50-0.5-1-1-0.500.5110.50-0.5-1-1-0.500.5110.50-0.5-1-1-0.500.51

实验七

实验名称:Simulink交互式仿真

一、实验目的

1、了解Simulink仿真的基本操作

2、熟练掌握系统中子系统的操作

3、掌握Simulink常用工具箱的基本运用

4、掌握连续时间系统的建模与仿真

二、实验步骤

1、信号平方运算

系统的功能是对输入信号进行平方运算,现要求建立系统的Simulink模型并进行简单的仿真分析。

⑴系统输入信号源幅值为1的正弦波

⑵使用示波器显示同时原始信号和结果信号 ⑶生成系统运算部分的子系统

2、使用代数环计算下式的值

5x16x245 4x7x822

13、根据上题,计算下式的值 2x2+7x-30=0

4、构建一连续时间系统,使时间t<5秒内输出5sin(x)2,时间t>5秒输出3sin(x)。

三、实验结果

1、信号平方运算

系统的功能是对输入信号进行平方运算,现要求建立系统的Simulink模型并进行简单的仿真分析。

⑴系统输入信号源幅值为1的正弦波

⑵使用示波器显示同时原始信号和结果信号 ⑶生成系统运算部分的子系统

2、使用代数环计算下式的值

5x16x245 4x17x282

3、根据上题,计算下式的值 2x2+7x-30=0

4、构建一连续时间系统,使时间t<5秒内输出5sin(x)2,时间t>5秒输出3sin(x)。

三、实验仪器

PC机 MATLAB软件

四、实验结果

五、结论

实验八

实验名称:Simulink交互式仿真

(二)一、实验目的

1、掌握低通数字滤波器的使用

2、掌握通信系统的信源子系统的生成

3、掌握通信系统的调制与解调子系统的生成4、掌握通信信道子系统的生成二、实验原理

(1)通信信道动态方程为。显然,此信道为一线性连续信道,信道传递函数描述如下:

Y(s)1 92U(s)10s103s1

(2)信道噪音:信道受到服从高斯正态分布的随机加性噪音的干扰,噪音均值为0,方差为0.01。

(3)信道延迟:信道经过缓冲区为1024的延迟。

·数字滤波器

数字滤波器的差分方程为 y(n)1.6y(n1)0.7y(n2)0.04u(n)0.08u(n1)0.04u(n2)

此数字滤波器为线性离散系统,使用滤波器形式对其进行描述如下:

Y(z)0.040.08z10.04z2

U(z)11.6z10.7z2

三、实验步骤

1.建立通信系统模型

按照通信系统的物理与数学模型建立系统模型。在建立系统模型之前,首先给出建立系统模型所需要的系统模块,如下所述:

(1)Sources模块库中的Sine Wave模块:作为高频载波信号与解调信号。(2)Sources模块库中的Signal Generator模块:产生低频锯齿波信号。(3)Math模块库中的Product模块:用于信号进行调制与解调。(4)Continuous模块库中的Transfer Fcn模块:描述通信信道。(5)Sources模块库中的Random Number模块:产生信道噪音。(6)Continuous模块库中的Transport Delay模块:产生信道延迟。(7)Discrete模块库中的Discrete Filter模块:描述数字滤波器。(8)Subsystems模块库中的Subsystem模块:封装系统中不同部分。(9)Sinks模块库的Scope模块:显示输出。

然后建立系统模型,并将信号幅值调制、通信信道、幅值解调封装到单独的子系统之中,2.系统模块参数设置与仿真参数设置

在建立系统模型之后,接下来按照系统的要求设置系统模块参数与仿真参数。想必用户对模块参数设置与仿真参数设置已经比较熟悉了,故在此仅给出各模块的参数与相应的仿真参数(所有没有给出的模块参数或仿真参数均使用系统的默认值);用户可仿照前面的例子对参数进行正确的设置。信号调制子系统参数

(1)正弦载波Sine Wave模块:频率Frequency为100Hz,幅值为1。

(2)锯齿信号Signal Generator模块:波形Wave form为sawtooth(锯齿波)。·通信信道子系统参数

(1)随机信号Random Number模块:均值mean为0、方差Variance为0.01。(2)信道延迟Transfer Delay模块:初始缓冲区Initial buffer size为1024。(3)信道传递函数Transfer Fcn模块:

分子Numerator为[1],分母Denominator为[1e-9 1e-3 1]。·信号解调子系统参数

正弦解调信号Sine Wave1模块:频率Frequency为100Hz,幅值为1,采样时间Sample time为0.005s。·数字滤波器参数

数字滤波器Discrete Filter模块参数:分子Numerator为[0.04 0.08 0.04]、分母Denominator为[1-1.6 0.7]、采样时间Sample time为0.005s ·系统仿真参数

(1)系统仿真时间:从0至10s。

(2)仿真求解器:变步长连续求解器。(3)绝对误差:1e-6。(4)最大仿真步长:0.01。

四、实验结果

图1 通信系统

2、信源调制子系统

3、噪声信道子系统

4、信宿解调子系统

5、原始信号

6、接收到的信号

五、实验结果分析

在对系统模块参数与系统仿真参数设置之后,接下来对系统进行仿真分析。为了对通信系统的整体性能有一个直观的认识,这里将系统仿真结果(即通信系统的输出信号)与原始的锯齿波信号(通信系统所要传递的信号)进行比较,如图所示。从图中可以看出,由于通信信道的延迟以及加性随机噪音的干扰,使得通信系统的输出信号比原始锯齿波信号的起始时间慢1s,而且存在一定的失真;但只要失真小于一定的阈值,不会对锯齿波信号的使用造成太大的影响。

第四篇:《MATLAB语言及其应用》教案

MATLAB语言及其应用

任课教师:罗靖宇

任课班级:09通信(1)(2)

教材:MATLAB程序设计与应用(第二版)

作 者:刘卫国主编 出版社:高等教育出版社

内容:

书籍简介:本书以MATLAB 7.0版为蓝本介绍MATLAB功能与应用强调理论和实践相结合贴近读者需要注重讲清有关数学方法和算法原理前提下介绍MATLAB功能;注重和有关学科领域结合,突出应用书中有许多应用实例些实例既是对MATLAB重点和难点诠释又可以更好地帮助读者应用MATLAB来解决实际问题具有很强代表性。

全书分为基础篇应用篇和实验篇基础篇包括MATLAB系统环境MATLAB数据及其运算MATLAB矩阵分析与处理 MATLAB程序设计MATLAB图MATLAB数值计算MATIAB符号计算应用篇包括MATLAB图形用户界面设计MATLAB Notebook使用MATLAB Simulink 仿真软件MATLAB外部程序接口技术MATLAB应用实验篇和教学内容相配合包括15实验以帮助读者更好地上机操作。本书可作为高等学校理工科各专业大学生或研究生学习教材也可供广大科技工作者参考。

第1章 MATLAB系统环境

1.1 MATLAB概貌

1.1.1 MATLAB 发展

1.1.2 MATLAB 主要功能

1.1.3 MATLAB功能演示

1.2 MATLAB环境 准备

1.2.1 MATLAB 安装

1.2.2 MATLAB 启动与退出

1.3 MATLAB操作界面

1.3.1 主窗口

1.3.2 命令窗口

1.3.3 工作空间窗口

1.3.4 当前目录窗口和搜索路径

1.3.5 命令历史记录窗口

1.3.6 Stalt菜单

1.4 MATLAB帮助系统

1.4.1 帮助命令

1.4.2 帮助窗口

1.4.3 演示系统

第2章 MATLAB数据及其运算

2.1 MATLAB数据 特点

2.2 变量及其操作

2.2.1 变量与赋值

2.2.2 变量 管理

2.2.3 数据 输出格式

2.3 MATLAB矩阵 表示

2.3.1 矩阵 建立

2.3.2 冒号表达式

2.3.3 矩阵 拆分

2.4 MATLAB数据 运算

2.4.1 算术运算

2.4.2 关系运算

2.4.3 逻辑运算

2.5 字符串

2.6 结构数据和单元数据

2.6.1 结构数据

2.6.2 单元数据

第3章 MATLAB矩阵分析与处理

3.1 特殊矩阵

3.1.1 通用 特殊矩阵

3.1.2 用 专门学科 特殊矩阵

3.2 矩阵结构变换

3.2.1 对角阵与三角阵

3.2.2 矩阵 转置与旋转

3.3 矩阵求逆与线性方程组求解

3.3.1 矩阵 逆与伪逆

3.3.2 用矩阵求逆方法求解线性方程组

3.4 矩阵求值

3.4.1 方阵 行列式值

3.4.2 矩阵 秩与迹

3.4.3 向量和矩阵 范数

3.4.4 矩阵 条件数

3.5 矩阵 特征值与特征向量

3.6 矩阵 超越函数 第4章 MATLAB程序设计

4.1 M文件

4.1.1 M文件 分类

4.1.2 M文件 建立与打开

4.2 程序控制结构

顺序结构、选择结构、循环结构 4.3 函数文件 4.4 程序调试

第5章 MATLAB绘图

5.1 二维图形

I

5.2 三维图形

5.3 三维图形的精细处理

5.4 隐函数绘图

5.5 底层绘图操作

5.6 光照与材质

5.7 图像显示与动画

第6章 MATLAB数值计算

6.1 数据处理与多项式计算

6.2 数值微积分

6.3 离散傅里叶变换

6.4 线性方程组求解

6.5 非线性方程与最优化问题求解

6.6 常微分方程的数值求解

6.7 稀疏矩阵

第7章 MATLAB符号计算

7.1 符号计算基础

7.2 符号函数及其应用

7.3 符号积分

7.4 级数

7.5 符号方程求解 应用篇

第8章 MATLAB图形用户界面设计

8.1 菜单设计

8.2 对话框设计

8.3 可视化图形用户界面设计

第9章 MATLABNotebook 使用

9.1 NOTEBook的安装于启动

9.2 单元的定义与执行

9.3 输出格式控制

第10章 MATLABSimlllink仿真软件

10.1 Simlllink操作基础

10.2 系统仿真模型

10.3 系统的仿真

10.4 使用命令操作对系统进行仿真

10.5 子系统及其封装技术

10.6 S函数的设计与应用

第11章 MATLAB外部程序接口技术

11.1 MATLAB的数据接口

11.2 MATLAB编译器

11.3 MATLAB计算引擎

11.4 MEX动态链接函数接口

第12章 MATLAB 应用

12.1 MATLAB在电路分析中的应用

12.2 MATLAB在控制系统分析中的应用

12.3 MATLAB在数学建模中的应用

12.4 MATLAB在力学及工程结构分析中的应用

12.5 MATLAB在优化设计中的应用 实验篇

实验要求

实验

MATLAB运算基础

实验二 MATLAB矩阵分析与处理

实验三 选择结构程序设计

实验四 循环结构程序设计

实验五 函数文件

实验六 高层绘图操作

实验七 低层绘图操作

实验八 数据处理与多项式计算

实验九 数值微积分与方程数值求解

实验十 符号计算基础与符号微积分

实验十

级数与方程符号求解

实验十二 菜单与对话框设计

实验十三 Simulink 应用

实验十四 外部程序接口

实验十五 综合实验

II

第1章

MATLAB系统环境

本章重点:发展、功能、操作界面、帮助 课时安排:2课时 内容安排:

1、概述:MATLAB 发展、MATLAB 主要功能(1)发展

MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。那是20世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。到九十年代初期,在国际上30几个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头,而Mathematica和Maple则分居符号计算软件的前两名。Mathcad因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。MathWorks公司于1993年推出MATLAB4.0版本,从此告别DOS版。4.x版在继承和发展其原有的数值计算和图形可视能力的同时,出现了以下几个重要变化:(1)推出了SIMULINK。这是一个交互式操作的动态系统建模、仿真、分析集成环境。它的出现使人们有可能考虑许多以前不得不做简化假设的非线性因素、随机因素,从而大大提高了人们对非线性、随机动态系统的认知能力。(2)开发了与外部进行直接数据交换的组件,打通了MATLAB进行实时数据分析、处理和硬件开发的道路。(3)推出了符号计算工具包。1993年MathWorks公司从加拿大滑铁卢大学购得Maple的使用权,以Maple为“引擎”开发了Symbolic Math Toolbox 1.0。MathWorks公司此举加快结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。(4)构作了Notebook。MathWorks公司瞄准应用范围最广的Word,运用DDE和OLE,实现了MATLAB与Word的无缝连接,从而为专业科技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。1997年仲春,MATLAB5.0版问世,紧接着是5.1、5.2,以及和1999年春的5.3版。与 4.x相比,现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。(关于MATLAB5.x的特点下节将作更详细的介绍。)诚然,到1999年底,Mathematica也已经升到4.0版,它特别加强了以前欠缺的大规模数据处理能力。Mathcad 也赶在2000年到来之前推出了Mathcad 2000,它购买了Maple内核和库的部分使用权,打通了与MATLAB的接口,从而把其数学计算能力提高到专业层次。但是,就影响而言,至今仍然没有一个别的计算软件可与MATLAB匹敌。在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。

在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。(2)主要功能:计算、图形、程序、工具

2、MATLAB环境:准备、MATLAB 安装、MATLAB 启动与退出 虚拟光驱

3种启动方式:菜单方式、到安装路劲下双击MATLAB.exe运行方式、桌面快捷方式、3种退出方式:菜单、关闭窗口、命令quit或exit

3、MATLAB操作界面:主窗口、命令窗口、工作空间窗口、当前目录窗口和搜索路径、命令历史记录窗口、Start菜单

4、MATLAB帮助系统:帮助命令help、lookfor命令、帮助窗口、演示系统

5、MATLAB功能演示

例1-1 绘制正弦曲线和余弦曲线。x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x));例1-2 求方程 3x4+7x3 +9x2-23=0的全部根。

p=[3,7,9,0,-23];

%建立多项式系数向量 x=roots(p)

%求根 例1-3 求积分

例1-4 1[xln(1x)]dx0

quad('x.*log(1+x)',0,1)求解线性方程组。

2x13x2x348x13x22x32即:aXb 45xx9x17231a=[2,-3,1;8,3,2;45,1,-9];b=[4;2;17];x=inv(a)*b 第2章 MATLAB数据及其运算

本章重点:变量、格式、矩阵、运算、字符串 课时安排:4课时 内容安排:

1、MATLAB数据的特点

(1)矩阵是MATLAB最基本、最重要的数据对象。

例如: 1357

2345(2)向量可以看成是仅有一行或一列的矩阵。

例如:[1 2 3],[28 3 9](3)单个数据(标量)可以看成是矩阵的特例。单个数据看着也看着矩阵。例如:10=[10](4)数据类型

MATLAB定义了15种数据类型:

Char,float,double,int8,int16,int32,int64,uint8,uint16,uint32,uint64,cell,structure,java类,函数句柄,用户定义类型

一般情况下,矩阵的每个元素必须具有相同的数据类型,在实际应用中,有时需要将不同类型的数据构成矩阵的元素,也就是结构体(Structure)和元胞(Cell)数据类型。

'LIYANG'22'M''LIYANG'22'M''WANG'31'W','WANG'31'W'

'TANG'18'M''TANG18'M'

2、变量及其操作 2.1变量命名:

以字母开头(不是数字、汉字开头)后接字母、数字、下划线的最多63个字符,区分大小写。

2.2 变量赋值操作(1)变量=表达式 例如:a=123;b=‟ok‟

(2)表达式;%把表达式值赋值给预定义变量ans 例如:123456 7sin(30)例如:将写成MATLAB表达式

log(5)e0.3ln(5cos(3))将写成MATLAB表达式 312tg(20)(3)预定义变量:ans,eps,pi,i,j,inf,Inf,NaN,nan,nargin,nargout,realmax,realmin,lasterr,lastwarn

例如:2+6i,3+pi(4)变量管理:内存变量的显示与删除,who,whos,clear.(5)工作空间浏览器

(6)变量编辑器:(7)内存变量文件:

save 文件名

[变量名表] [-append][-ascii]

load 文件名

[变量名表] [-ascii] 2.3 数据输出格式:

采用十进制数表示一个常数,可用日常记数法和科学记数法,format format short format long format short e format long e format rat format hex format compact format loose

3、MATLAB矩阵表示

矩阵:n×m的数据存储空间

向量:单行或单列的矩阵 标量:1×1的矩阵

数组:矩阵是数组的特例,矩阵是二维数组,向量是一维数组。

空矩阵:[]表示无任何元素 3.1矩阵建立 1.直接输入法

矩阵元素应用方括号([])括住

每行内的元素间用逗号(,)或空格隔开 行与行之间用分号(;)或回车键隔开; 元素可以是数值或表达式。例如:a=[2,3;5,6;8,9] cB=[4,2+3i;5i,6i] xp=[2 3;4 5] 复数矩阵

2.利用M文件建立矩阵

(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵.(2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。

(3)load 文件名,就会自动建立一个名为MYMAT的矩阵,可供以后使用。3.建立大矩阵

大矩阵可由方括号中的小矩阵建立起来。例如

A=[1 2 3;4 5 6;7 8 9];

C=[A,eye(size(A));ones(size(A)),A]

4.冒号表达式:

(1)使用冒号表达式生成向量 冒号表达式的一般格式:

e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。冒号表达式可产生一个由e1开始到e3 4 结束,以步长e2自增的行向量。

在冒号表达式中如果省略e2不写,则步长为1。当e2省略或e2>0,e1>e3;e2<0, e1

linspace(a,b,n)%生成线性等分向量

logspace(a,b,n)%生成对数等分向量 说明:

a、b、n三个参数分别表示开始值、结束值和元素个数; linspace函数生成从a到b之间线性分布的n个元素的行向量,n如果省略则默认值为100; linspace(a,b,n)与a:(b-a)/(n-1):b等价。

logspace函数生成从10a到10b之间按对数等分的n个元素的行向量,n如果省略则默认值为50。

3.2矩阵的拆分: 1.矩阵元素访问

MATLAB允许用户对一个矩阵的单个元素进行赋值和操作。而不影响其它元素的值。例如

A=ones(4);A(3,2)=200 只改变该元素的值,而不影响其他元素的值。如果给出的行下标或列下标大于原来矩阵的行数和列数,则MATLAB将自动扩展原来的矩阵,并将扩展后未赋值得矩阵元素置为0 A(4,6)=10 也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素按列编号,先第一列,再第二列,依次类推。A(6)显然,下标(subscrip)与序号(index)是一一对应的。以m×n矩阵A为例,矩阵元素A(i,j)的序号为

(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得 sub2ind(size(A),2,3)[c,d]=ind2sub(size(A),6)2.利用冒号获得子矩阵

①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列中的所有元素。

A=[1,2,3,4,5;11,12,13,14,15;21,22,23,24,25;31,32,33,34,35];A(2:3,4:5)A(2:3,1:2:5)此外,还可利用一般向量和end运算符等来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。

A=[1,2,3,4,5;11,12,13,14,15;21,22,23,24,25;31,32,33,34,35];A(end,:)%取A最后一行元素

A([1,4],3:end)%取A第1、4行中第3列到最后一列元素

3.利用空矩阵删除矩阵元素

在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。

注意:X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间,只是维数为0。

将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。

A=[1,2,3,4,5;11,12,13,14,15;21,22,23,24,25;31,32,33,34,35];A(:,[2,4])=[]%删除A的第2列和第4列元素 4 矩阵合并

矩阵的合并就是把两个以上的矩阵连接起来得到一个新矩阵,“[]”符号可以作为矩阵合并操作符,命令格式如下: c=[a b]

%将矩阵a和b水平方向合并为c c=[a;b] %将矩阵a和b垂直方向合并为c

5、MATLAB数据运算: 算术运算:+,-,*,/,^ 点运算:.*,./,.,MATLAB常用函数:sin,asin,cos,acos,tan,atan,sqrt,log,abs,rem,exp,mod,round,gcd,fix 关系运算(返回真1或假0):<,<=,>,>=,==,!= 逻辑运算((返回真1或假0)):&,|,~ 位运算:bitand,bitor,bitxor,bitshift 关系与逻辑运算函数:all,any,exit,find,isempty,issparse,xor

6、字符串:

创建:s=‟please‟

字符串函数:setstr,mat2str,int2str,num2str,str2num,strcat,strcmp

7、结构数据和单元数据:

结构数据:建立、引用、修改、结构函数 单元(cell)数据:建立、引用、函数第3章 MATLAB矩阵分析与处理

本章重点:特殊矩阵、矩阵变换、矩阵求值 课时安排:4课时 内容安排:

1.特殊矩阵的建立

1.1通用特殊矩阵:zeros,ones,eye,rand,randn 几个产生特殊矩阵的函数:

zeros 产生全0矩阵(零矩阵)

ones 产生全1矩阵(么矩阵)eye

产生单位矩阵

rand 产生0~1间均匀分布的随机矩阵 randn 产生0~1间正态分布的随机矩阵

这几个函数的调用格式相似,下面以产生零矩阵的zeros函数为例进行说明。其调用格式是:

zeros(m)

产生m×m零矩阵

zeros(m,n)

产生m×n零矩阵。

zeros(size(A))

产生与矩阵A同样大小的零矩阵 相关的函数有:

size(A)

返回包含2个元素的向量,分别是A的行数、列数

length(A)给出行数和列数中的较大者,即

length(A)=max(size(A));

ndims(A)给出A的维数。

reshape(A,m,n)它在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。

例2.3 分别建立3×3、3×2和与矩阵A同样大小的零矩阵。(1)建立一个3×3零矩阵:zeros(3)(2)建立一个3×2零矩阵:zeros(3,2)(3)建立与矩阵A同样大小零矩阵:zeros(size(A))(4)将矩阵xv重新排成2×5、5×2矩阵 xv=[23,34,65,67,54,38,78,76,32,56];

ym=reshape(xv,2,5)

newym=reshape(xv,5,2)

1.2专门学科特殊矩阵:magic,vander,hilb,toeplitz,compan,pascal magic矩阵的每行、每列、及两条对角线的元素之和都相等。用法:magic(n)vander矩阵的最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘。用法:vander(n)Hilb矩阵的每个元素是hij1,用法:hilb(n)

ij1toeplitz矩阵除第一行和第一列外,其他每个元素都与其相邻左上角的元素相同。用法:toeplitz(x,y)或者(x),这里x和y都为向量,生成以x为第一列,y为第一行的toeplitz矩阵 伴随矩阵compan:设多项式p(x)anxan1xnn1a1xa0,则多项式的伴随矩阵 7 an1an1为:A000an2an0100an3an100000a0an0000 00010a1an

Pascal矩阵就是杨辉三角形矩阵,第1行和第1列都为1,其余元素为其相邻的右面和上面元素之和。

2、矩阵结构变换: 2.1 矩阵转置:B=A‟ 2.2 方阵行列式

det(x):计算方阵行列式 2.3 矩阵秩

rank(x):求矩阵的秩 2.4 矩阵的逆矩阵

inv(x)求矩阵的逆矩阵 2.5 矩阵的特征值与特征向量

[v,d]=eig(x):求矩阵的特征向量v和特征值d 2.6 产生对角阵

diag(x):产生矩阵x的对角阵 2.7 矩阵的正交阵表示

[q,r]=qr(x)2.8 产生上三角矩阵与下三角矩阵

triu(x)和tril(x):分别产生x的上、下三角矩阵,其

余元素补0 3.数组翻转

常用数组翻转函数 :flipud(x)、fliplr(x)、flipdim(x,dim)、rot90(x,k)

4、矩阵求逆与线性方程组求解:

(1)矩阵逆inv(A):用于矩阵A的秩为满秩的方阵A。

伪逆pinv(A):对于不为满秩的矩阵A,不存在逆矩阵,但可以一个与A的转置矩阵A‟同型的矩阵B,使得:

A.B.A=A和B.A.B=B 此时称矩阵B为矩阵A的伪逆,也称广义逆矩阵:B=pinv(A)(2)用矩阵求逆方法求解线性方程组:

5、迹:trace(A)矩阵对角线元素之和,也等于矩阵的特征值之和。

6、矩阵范数:norm

用以度量矩阵或向量在某种意义下的长度。设向量V(v1,v2,,vn),则范数:(1)1-范数:||V||1n|vi|

i

1norm(V,1)(2)2-范数:||V||2nv2i

i1norm(V,2)或norm(V)(3)∞-范数:||V||max1in{|vi|} norm(V,inf)

7、矩阵条件数:cond(A)

8、矩阵超越函数

Sqrtm,logm,expm,funm

第4章 MATLAB程序设计

本章重点:M文件、选择程序设计、循环程序设计、M函数设计 课时安排:4课时 内容安排: 4.1 M文件

1. M文件分类

M程序文件(命令文件):无输入参数、无返回参数 M函数文件:有输入参数,有返回值 2. M文件 建立与打开(1)在matlab编辑器中(2)在其他编辑器:记事本 3.M文件的运行 4.注解:% 4.2 程序控制结构 1.顺序结构

(1)数据输入:

A=input(„提示信息‟,选项)(2)输入输出:

disp(输出项)(3)程序暂停: pause(延迟秒数)(4)程序强行中止:Ctrl+C键

例题:输入系数,求并显示一元二次方程ax2bxc0的根 2.选择程序设计(1)if语言

if语句与end组成一个复合命令 条件满足则执行语句,格式: if 条件

语句组 end 例如:if(fix(x)==x)

disp(x);

end(2)双分支语句if else if 条件

语句组1 else

语句组2 end 例如:输入x计算函数y值:

ycos(x1)/(x10),x10xxlnx,x10

(3)多分支if语句 格式: if 条件1

语句组1 elseif 条件2

语句组2

elseif 条件m

语句组m else

语句组n end 例如:从键盘输入,判断输入的是否为大写字母、小写字母、数字还是其他字符。(4)switch语句

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

case 表达式1 语句组1 case 表达式2 语句组2 …

case 表达式m 语句组m otherwise

case 表达式n 语句组n end 当表达式的值等于表达式1时,则执行语句组1;当表达式的值等于表达式2时,则执行语句组2;…,当表达式的值等于表达式m时,则执行语句组m;当表达式的值不等于case所列的所有表达式时,则执行语句组n。

例如:输入百分数,根据成绩判断优、良、中、及格、不及格等次

(6)try语句

用于判断执行语句是否存在逻辑错误(非语法错误,如除法的除数为零),格式: try

语句组1 catch

语句组2 end 先试探执行语句1,若存在错误,则执行语句2;若不存在错误则只执行语句1而不执行语句2.错误信息赋给保留的lasterr变量 循环程序设计(1)for语句 格式1:

for 循环变量=表达式1:步长:表达式3 循环体语句 end 2例题:根据611221321n2,求的值,n分别取100,1000,10000.格式2:

for 循环变量=矩阵

循环体语句 end 将矩阵的每列赋给循环变量。(3)while语句 格式: while 条件

循环体 end 例题:

(4)break和continue语句 例题

(5)循环嵌套 例题

4.3 M函数 1.M函数格式

function 输出参数=函数名(输入参数1,输入参数2,…)注释部分 函数体语句 例题

2.return语句 3.函数调用 一般函数调用 递归函数调用

4、函数参数的可调性

5、全局变量 global 变量名 4.4 程序调试

第5章 MATLAB绘图

本章重点:掌握绘制二维和三维图形的常用函数,掌握绘制图形的辅助操作 课时安排:4课时 内容安排: 5.1 二维绘图

1.绘制单根二维曲线

plot函数的基本调用格式为:plot(x,y)

其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。2.绘制多根二维曲线

plot函数的输入参数是矩阵形式

含多个输入参数的plot函数,调用格式为:plot(x1,y1,x2,y2,…,xn,yn)具有两个纵坐标标度的图形,调用格式为: plotyy(x1,y1,x2,y2)图形保持:hold on/off 3.设置曲线样式

要设置曲线样式可以在plot函数中加绘图选项,其调用格式为:

plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)4.图形标注与坐标控制。

有关图形标注函数的调用格式为: title(图形名称)xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)legend(图例1,图例2,…)

axis函数坐标标注函数调用格式为: axis([xmin xmax ymin ymax zmin zmax])axis函数功能丰富,常用的格式还有: axis equal:纵、横坐标轴采用等长刻度。

axis square:产生正方形坐标系(缺省为矩形)。axis auto:使用缺省设置。axis off:取消坐标轴。axis on:显示坐标轴。5.其它二维图形

polar函数用来绘制极坐标图,其调用格式为: polar(theta,rho,选项)二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是: bar(x,y,选项)stairs(x,y,选项)stem(x,y,选项)fill(x1,y1,选项1,x2,y2,选项2,…)5.2 三维绘图 1.三维曲线

调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)2.三维曲面

surf函数和mesh函数的调用格式为: mesh(x,y,z,c)surf(x,y,z,c)3.其它三维图形

[x,y,z]=sphere(n)

%球体

[x,y,z]= cylinder(R,n)%圆柱体 bar3函数绘制三维条形图

stem3函数绘制离散序列数据的三维杆图 pie3函数绘制三维饼图 5.3 三维绘图的精细处理 1.视点处理

函数view,其调用格式为: view(az,el)2.色彩处理

向量元素在[0,1]范围取值,3个元素分别表示红、绿、蓝3种颜色的相对亮度,称为RGB三元组。色图是m×3 的数值矩阵,它的每一行是RGB三元组。三维表面图形的着色,surf函数用缺省的着色方式对网格片着色。除此之外,还可以用shading命令来改变着色方式。3.图形裁剪处理

例5-25 绘制三维曲面图,并进行插值着色处理,裁掉图中x和y都小于0部分。程序如下:

[x,y]=meshgrid(-5:0.1:5);z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4);surf(x,y,z);shading interp;pause

%程序暂停 i=find(x<=0&y<=0);z1=z;z1(i)=NaN;surf(x,y,z1);shading interp;为了展示裁剪效果,第一个曲面绘制完成后暂停,然后显示裁剪后的曲面。5.4 隐函数绘图

ezplot函数绘制隐函数图形 5.5 低层绘图 5.6 图像和动画

第6章 MATLAB数值计算 本章重点:

课时安排:4课时 内容安排:

第7章 MATLAB符号计算 本章重点:

课时安排:2课时 内容安排:

第8章MATLAB图形用户界面本章重点:

课时安排:2课时 内容安排:

第10章Simulink

本章重点:

课时安排:6课时 内容安排:

第五篇:MATLAB实验教案

实验一离散系统的时域分析和复频域分析

1.实验目的

(1)掌握在时域求系统响应的方法。(2)掌握时域离散系统的时域特性。(3)通过实验判断系统稳定性

(4)掌握利用Z变换对系统进行复频域分析。(5)掌握系统零、极点的绘制方法。

(6)通过复频域分析系统稳定性、频率特性。(7)熟悉Z变换的应用

2.实验设备

 计算机

 MATLAB R2012a仿真软件

3.实验原理

(1)离散系统的时域分析

在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,利用filter函数或conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。

系统的时域特性是指系统的线性移不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。

系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应,或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。

实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号、输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。系统的稳态输出是指当n→∞时系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随着n的加大,幅度趋于稳定,达到稳态输出。

注意在以下实验中均假设系统的初始状态为零。

(2)离散系统的复频域分析

离散系统的时域方程为 dk0Nky(nk)x(nk)pkK0M其变换域分析如下

y(n)x(n)*h(n)频域系统频率响应为

mx(m)h(nm)Y(e)X(e)H(e)

jjjH(e)Z域 jY(e)X(e)jj

y(n)x(n)*h(n)系统的转移函数为

mx(m)h(nm)Y(z)Y(z)X(Z)i X(z)H(z)H(z)0分解因式H(z)iNpkzdkzi0M=Ki(1(1i1i1NMiz1)),其中,和

izi1i称为零、极点。

在MATLAB中,可以用函数[z,p,K]=tf2zp(num,den)求得有理分式形式的系统转移函数的零、极点,用函数zplane(z,p)绘出零、极点分布图;也可以用函数zplane(num,den)直接绘出有理分式形式的系统转移函数的零、极点分布图。另外,在MATLAB中,可以用函数 [r,p,k]=residuez(num,den)完成部分分式展开计算;可以用函数sos=zp2sos(z,p,K)完成将高阶系统分解为2阶系统的串联。判断Z域因果LTI稳定性:当且仅当系统函数的全部极点位于单位圆内时,因果LTI系统是稳定的。

4.实验内容及步骤

h(n)(0.9)u(n)x(n)u(n)u(n10)(1)给定矩形脉冲是脉冲响应为

(n)filter函数对差分方程进行数值求解,画出输入的LTI系统的输入,求输出。y利用序列和脉冲响应。(2)已知差分方程:y(n)y(n1)0.9y(n2)x(n)n20,...,①画出在的脉冲响应。100n20,...,100②画出在的单位阶跃响应。h(n)③判断由表征的这个系统的稳定性。

(3)一个线性时不变系统由差分方程描述如下:

y(n)0.5y(n1)0.25y(n2)x(n)2x(n1)x(n3)n

0n100①画出内的系统的脉冲响应,并确定稳定性。

0②如果这个系统输入为,求在范围内的响应。0.6n)]y()x(n)n[5n3200cos(0.2n)4sin(u(n)(4)求下列序列的Z变换并用“zplane”画出零、极点分布图。,该序列的变换为: }x(n)Z{1,2,1,332 z2zz3123X(z)12zz3z3z

(5)求下列直接型系统函数的零、极点,并将它转换成二阶节形式

10.1z10.3z20.3z30.2z4H(z) 10.1z10.2z20.2z30.5z4y(n(6)给定因果系统要求:)0.9y(n1)x(n)①求系统函数H(z)并画出零、极点示意图。②画出系统的幅频特性和相频特性。()|H(ej)| ③求脉冲响应并画出序列图。h(n)

5.程序清单如下

(1)内容1:调用filter解差分方程 b=[1];a=[1,-0.9];n=-5:50;x=stepseq(0,-5,50)-stepseq(10,-5,50);h=0.9.^n;h(1:5)=0;y=filter(b,a,x);subplot(3,1,1);stem(n,x);ylabel('x(n)');axis([-5 50 min(x)max(x)]);subplot(3,1,2);stem(n,h);ylabel('h(n)');axis([-5 50 min(h)max(h)]);subplot(3,1,3);stem(n,y);xlabel('n');ylabel('y(n)');axis([-5,50,-0.5,8]);(2)涉及的功能函数stepseq function[x,n]=stepseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)>=0];(3)内容2:稳定性分析 b=[1];a=[1,-1,0.9];x=impseq(0,-20,120);n=[-20:120];h=filter(b,a,x);subplot(2,1,1);stem(n,h);title('脉冲响应');xlabel('n');ylabel('h(n)')x=stepseq(0,-20,120);s=filter(b,a,x);subplot(2,1,2);stem(n,s);title('阶跃响应');xlabel('n');ylabel('u(n)')(4)涉及的功能函数impseq function[x,n]=impseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)==0];(5)内容3:稳定性分析 b=[1,2,1];a=[1,-0.5,0.25];x=impseq(0,0,100);n=[0:100];h=filter(b,a,x);subplot(2,1,1);stem(n,h);title('脉冲响应');xlabel('n');ylabel('h(n)')x1=5+3*cos(0.2*pi*n)+4*sin(0.6*pi*n);y=filter(b,a,x1);subplot(2,1,2);stem(n,y);title('在sin和cos作用下的响应');xlabel('n');ylabel('y(n)')(6)内容4参考程序

b=[1, 2, 1, 3];%H(z)分子系数 a=[1, 0, 0, 0];%H(z)分母系数 zplane(b,a);%画零、极点分布图(7)内容5参考程序

num=[1,-0.1,-0.3,-0.3,-0.2];den=[1, 0.1, 0.2 ,0.2 ,0.5];[z,p,k]=tf2zp(num,den);m=abs(p);disp('零点');disp(z);disp('极点');disp(p);disp('增益系数');disp(k);sos=zp2sos(z,p,k);disp('二阶节');disp(real(sos));zplane(num,den)(8)内容6参考程序

b=[1,0];a=[1,-0.9];figure zplane(b,a);[H,w]=freqz(b,a,200,'whole');magH=abs(H(1:101));phaH=angle(H(1:101));hw=w(1:101);figure subplot(2,1,1);plot(hw/pi,magH);xlabel('频率单位:π');ylabel('|H(jw)|');title('幅频响应');subplot(2,1,2);plot(hw/pi,phaH/pi);xlabel('频率单位:π');ylabel('相位单位:π');title('相频响应');%脉冲响应

[h,T]=impz(b,a,50);figure stem(T,h);xlabel('n');ylabel('h(n)');

6.结果分析

(1)调用filter解差分方程的仿真结果如图1.1所示,稳定性分析方面的仿真结

果如图1.2所示

10.50x(n)01h(n)10203040500.508642001020n***50y(n)

图1.1

脉冲响应10.5h(n)0-0.5-1-***20n阶跃响应32u(n)10-2002040n6080100120图1.2

h(n)由图1.2所示的脉冲响应图像可以看出,当n>120时,h(n)的值就为零了,这就意味着系统是稳定的。另一种方法是利用MATLAB的roots函数,如:

z=roots(a);

magz=abs(z);

magz=

0.9487

0,9487 因为每个根的幅度都小于1,在z平面的单位圆内,所以系统是稳定的,稳定性分析仿真结果如图1.3

脉冲响应32h(n)10-10102030506070n在sin和cos作用下的响应4080901006040y(n)20001020304050n60708090100图1.3 由如图1.3所示h(n)脉冲响应图像可以看出当n>10时h(n)的值就为零了,这以为着系统是稳定的,第二个图反映了输入为sin和cos函数的加权叠加的响应y(n)

(2)内容4结果分析如图1.4所示

10.5Imaginary Part03-0.5-1-2-1.5-1-0.5Real Part00.51图1.4复频域分析的零、极点图

(3)内容5中,输入“num”和“den”的分别为分子和分母多项式的系数,计算求得零,极点增益系数和二阶节的系数,在MATLAB的Command Windows中观察。

>>零点

0.9615

-0.5730

-0.1443 + 0.5850i

-0.14430.6997i

-0.5776 + 0.5635i

-0.5776-0.5635i

增益系数

二阶节

1.0000

-0.3885

-0.5509

1.0000

1.1552

0.6511

1.0000

0.2885

0.3630

1.0000

-1.0552

0.7679

系统函数的二阶节形式为

1-0.3885z10.5509z211.1552z10.6511z210.2885z10.3630z2.11.0552z10.7679z2

内容5直接型系统函数的零、极点图如1.5所示

10.80.60.4rtaP0.2 yran0igam-0.2I-0.4-0.6-0.8-1-1-0.500.51Real Part1.5 图

内容5系统函数零极点图

内容6因果系统的系统函数零,极点图如图1.6所示。

10.80.60.4Imaginary Part0.20-0.2-0.4-0.6-0.8-1-1-0.50Real Part0.51图1.6 内容6系统函数零、极点图

内容6系统的幅频特性和相频特性如1.7所示

幅频响应151050

|H(jw)|00.10.20.30.40.50.6频率单位:π相频响应0.70.80.910相位单位:π-0.1-0.2-0.3-0.400.10.20.30.40.50.6频率单位:π0.70.80.91图1.7 内容6系统的频率特性图

内容6脉冲响应序列图如图1.8所示。10.90.80.70.6h(n)0.50.40.30.20.100510152025n3035404550图1.8 内容6脉冲响应序列图

6.实验报告要求

(1)报告中要求给出实验的MATLAB程序,并对每条语句给出注释,说明语句作用。

(2)粘贴实验结果图

实验二 FIR数字滤波器的设计

1.实验目的

(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。(2)了解各种不同窗函数对滤波器性能的影响。(3)掌握FIR滤波器的快速卷积实现原理。

(4)学会调用MATLAB函数设计与实现FIR滤波器。

2.实验设备

 计算机

 MATLAB R2012a仿真软件

3.实验原理 目前FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和频率取样法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。它是从时域出发,用一个窗函数截取理想的得到,h(n)hd(n)以有限长序列近

hd(n)似理想的;如果从频域出发,用理想的在单位圆上等间隔取样得到,h(n)Hd根据得到将(ej)逼近理想的HdH(k)H(k)(z),这就是频率取样法。

H(z)几种常见的窗函数如下。

(1)矩形窗(Rectangle Windows)

调用格式:w=boxcar(n),根据长度n产生一个矩形窗。(2)三角窗(Triangular Windows)

调用格式:w=triang(n),根据长度n产生一个三角窗。(3)汉宁窗(Hanning Windows)

调用格式:w=hanning(n),根据长度n产生一个汉宁窗。(4)海明窗(Hamming Windows)

调用格式:w=hamming(n),根据长度n产生一个海明窗。(5)布拉克曼窗(Blackman Windows)

调用格式:w=blackman(n),根据长度n产生一个矩形窗。(6)恺撒窗(KaiserWindows)

调用格式:w=kaiser(n),根据长度n和影响窗函数旁瓣的参数产生一个恺撒窗。

4.实验内容及步骤

(1)分别用矩形窗、三角窗、汉宁窗、海明窗设计低通数字滤波器。信号采样频率为1000Hz,数字滤波器的截止频率为100Hz,滤波器的阶数为80。(2)用海明窗设计一个FIR低通滤波器,截止频率画出加窗前后冲激响应及滤波器幅频特性。

c=0.45,窗的长度取M=121,5.实验程序清单

(1)内容1 参考程序

clear all;close all;passrad=0.2*pi;w1=boxcar(81);w2=triang(81);w3=hanning(81);w4=hamming(81);n=1:1:81;hd=sin(passrad*(n-41))./(pi*(n-41));hd(41)=passrad/pi;h1=hd.*rot90(w1);h2=hd.*rot90(w2);h3=hd.*rot90(w3);h4=hd.*rot90(w4);[MAG1,RAD]=freqz(h1);[MAG2,RAD]=freqz(h2);[MAG3,RAD]=freqz(h3);[MAG4,RAD]=freqz(h4);subplot(2,2,1);plot(RAD,20*log10(abs(MAG1)));title('矩形窗');grid on;subplot(2,2,2);plot(RAD,20*log10(abs(MAG2)));title('三角窗');grid on;subplot(2,2,3);plot(RAD,20*log10(abs(MAG3)));title('汉宁窗');grid on;subplot(2,2,4);plot(RAD,20*log10(abs(MAG4)));title('海明窗');grid on;(2)内容2 参考程序 M=121;n=[0:1:M-1];wc=0.45*pi;hd=ideal_lp(wc,M);w_rec=(boxcar(M))';w_ham=(hamming(M))';h_rec=hd.*w_rec;h_ham=hd.*w_ham;[db1,mag1,pha1,grd1,w1]=freqz_m(h_rec,[1]);[db2,mag2,pha2,grd2,w2]=freqz_m(h_ham,[1]);subplot(2,2,1);stem(n,hd,'k');grid title('加窗前脉冲响应')axis([0,M-1,-0.2,0.5]);ylabel('hd(n)');subplot(2,2,2);stem(n,hd,'k');grid title('加窗后脉冲响应')axis([0,M-1,-0.2,0.5]);ylabel('h(n)');subplot(2,2,3);plot(w1/pi,db1,'k');grid title('加海明窗前幅频特性')axis([0,1,-100,10]);ylabel('幅度');subplot(2,2,4);plot(w2/pi,db2,'k');grid title('加海明窗后幅频特性')axis([0,1,-100,10]);ylabel('幅度');(3)内容2设计功能函数 freqz_m function[db,mag,pha,grd,w]=freqz_m(b,a);[H,w]=freqz(b,a,1000,'whole');H=(H(1:1:501))';w=(w(1:1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);grd=grpdelay(b,a,w);(4)内容2设计功能函数 ideal_lp function hd=ideal_lp(wc,M)alpha=(M-1)/2;n=[0:1:(M-1)];m=n-alpha+eps;hd=sin(wc*m)./(pi*m);

6.实验程序运行结果

内容1和内容2的程序运行结果如图4.1和4.2所示

矩形窗500-50-100-150012汉宁窗1000500-50-100-10001234-1500123434-400-20三角窗-60012海明窗34-200

图4.1 多种窗函数设计低通滤波器

加窗前脉冲响应0.40.40.20-0.2加窗后脉冲响应hd(n)0-0.2050100h(n)0.2050100加海明窗前幅频特性00加海明窗后幅频特性幅度-50幅度00.51-50-100-10000.51图4.2 加窗前后冲激响应及幅频特性

7.实验报告要求(1)附程序清单、打印实验内容,要求绘图显示的曲线图。(2)分析总结实验结果。

实验三 IIR数字滤波器的设计

1.实验目的

(1)掌握双线性变换法及冲激响应不变法设计方法及其原理。(2)熟悉用双线性变换法及冲激响应不变法设计IIR数字滤波器的MATLAB编程。(3)观察双线性变换及冲激响应不变法设计的滤波器的频域特性。

(4)熟悉Butterworth滤波器、Chebyshev滤波器和椭圆滤波器的频率特性。

2.实验设备

 计算机

 MATLAB R2012a仿真软件

3.实验原理

设计IIR数字滤波器一般采用间接法(冲激响应不变法和双线性变换法),应用最广泛的是双线性变换法。(1)数字滤波器设计方法如下。

①给定技术指标转换为模拟滤波器设计性能指标。

②求出满足性能指标的模拟相应滤波器性能阶数和截止频率。

利用MATLAB中buttord、cheb1ord、cheb2ord、ellipord等函数。③设计模拟滤波器。

MATLAB信号处理工具箱提供了模拟滤波器设计的完全工具函数:butter,cheby1,cheby2,elip,besself.用户只需一次调用就可完成低通,高通,带通,带阻滤波器设计。调用格式如:[b,a]=butter(N,c,’ftypc’,’s’),其中,’ftype’为滤波器类型

本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对指定的输入信号x(t)进行滤波,得到滤波后的输出信号y(n)。

(2)冲激响应不变法设计IIR数字滤波器的步骤如下。

①假设模拟滤波器的传递函数具有一阶极点,且分母的阶数高于分子的阶数,将展开成部分分式并对求拉氏反变换。

②使用冲激响应不变法求数字滤波器的冲击响应h(n)。③求h(n)的Z变换。

(3)冲激响应不变法主要用于设计某些要求在时域上能模仿滤波器功能的数字滤波器。主要特点如下。①频率变换坐标是线性的。②具有频谱的周期延拓效应,只能用于限带的频率响应特性,即低通和带通数字滤波器。

(4)双线性变换法是基于对微分方程的积分,利用对积分的数值逼近得到的。所谓双线性是指变换公式中s与z的关系无论是分子部分还是分母部分都是线性的。主要特点如下。

①消除了冲激响应不变法所固定的频率混叠现象。

②缺点是模拟频率和数字频率之间的非线性关系。

4.实验内容及步骤

(1)采用冲激响应不变法设计一个低通切比雪夫Ⅰ型数字滤波器,设取样频率为1kHz,在通带上限临界频率是400Hz处衰减不大于0.3dB,在阻带临界频率500Hz处衰减不小于60dB。要求:绘制幅频响应图。

(2)采用双线性变换法设计一个高通切比雪夫Ⅱ型数字滤波器,其通带上限临界频率为1500Hz,阻带临界频率为1000 Hz,抽样频率为2000Hz,在通带内最大衰减为0.3dB,阻带内的最小衰减为20dB。(此练习涉及的切比雪夫Ⅱ型数字滤波器为提高部分)要求:绘制幅频响应图。

(3)首先设计一个模拟巴特沃斯低通滤波器,取样频率为10kHz,在通带截止频率1kHz处衰减不大于1dB,在阻带截止频率1.5kHz处衰减不小于15dB。采用双线性变换法设计一个同参数数字巴特沃斯低通滤波器,通带幅度归一化,使其在w=0处幅度为1。

要求:绘制模拟滤波器及数字滤波器的幅频特性曲线进行对比。

5.参考程序

(1)内容1参考程序

%数字滤波器频率特征转换成模拟滤波器的频率特征 Wp=2*pi*400;Ws=2*pi*600;Rp=0.3;Rs=60;Fs=1000;%选择滤波器的最小阶数

[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s');%创建低通切比雪夫滤波器 [Z,P,K]=cheb1ap(N,Rp);[A,B,C,D]=zp2ss(Z,P,K);[At,Bt,Ct,Dt]=lp2lp(A,B,C,D,Wn);[num1,den1]=ss2tf(At,Bt,Ct,Dt);%冲激响应不变法把模拟滤波器转换为数字滤波器 [num2,den2]=impinvar(num1,den1,Fs);%绘制幅频响应图

[H,W]=freqz(num2,den2);plot(W*Fs/2/pi,abs(H));grid;xlabel('Hz');ylabel('幅值');(2)内容2参考程序

%数字滤波器的频率特征转换为模拟滤波器的频率特征 Wp=2*pi*1400;Wp1=2*pi*Wp;Ws=2*pi*1000;Ws1=2*pi*Ws;Rp=0.3;Rs=15;fs=20000;%选择滤波器的最小阶数

[N,Wn]=cheb2ord(Wp1,Ws1,Rp,Rs,'s');%创建低通巴特沃斯滤波器 [Z,P,K]=cheb2ap(N,Rs);[A,B,C,D]=zp2ss(Z,P,K);%低通到高通的转变

[At1,Bt1,Ct1,Dt1]=lp2hp(A,B,C,D,Wn);%冲激响应不变法把模拟滤波器转换为数字滤波器 [At2,Bt2,Ct2,Dt2]=bilinear(At1,Bt1,Ct1,Dt1,fs);%绘制幅频响应图

[num,den]=ss2tf(At2,Bt2,Ct2,Dt2);[H,W]=freqz(num,den);plot(W*fs/2/pi,abs(H));grid;xlabel('Hz');ylabel('幅值');(3)内容3参考程序 %数字滤波器指标

wp=0.2*pi;ws=0.3*pi;Rp=1;As=15;%转换成模拟域指标 T=1;Fs=1/T;omegap=(2/T)*tan(wp/2);omegas=(2/T)*tan(ws/2);ep=sqrt(10^(Rp/10)-1);Ripple=sqrt(1/(1+ep*ep));Attn=1/(10^(As/20));n=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(omegap/omegas)));omegac=omegap/((10^(Rp/10)-1)^(1/(2*n)));[B,A]=butter(n,omegac,'s');W=(0:500)*pi/500;[H]=freqs(B,A,W);mag=abs(H);pha=angle(H);db=20*log10((mag+eps)/max(mag));%双线性变换法数字滤波器

[b,a]=bilinear(B,A,T);[h,w]=freqz(b,a,1000,'whole');h=(h(1:501))';w=(w(1:501))';m=abs(h);p=angle(h);db=20*log10((m+eps)/max(m));%绘制频率特性曲线

subplot(2,2,1);plot(w/pi,mag);xlabel('/pi');ylabel('幅度');title('模拟滤波器幅度响应');grid;axis([0 0.8 0 1]);subplot(2,2,2);plot(w/pi,pha);xlabel('/pi');ylabel('相位');title('模拟滤波器相位响应');grid;axis([0 0.8-4 4]);subplot(2,2,3);plot(w/pi,m);xlabel('/pi');ylabel('幅度');title('数字滤波器幅度响应');grid;axis([0 0.8 0 1]);subplot(2,2,4);plot(w/pi,p);xlabel('/pi');ylabel('相位');title('数字滤波器相位响应');grid;axis([0 0.8-4 4]);

6.运行结果

内容

1、内容2和内容3的运行结果如图3.1、3.2和图3.3所示

1.41.210.8幅值0.60.40.***50Hz***图4.1 冲激响应不变法设计低通切比雪夫数字滤波器 10.90.80.70.6幅值0.50.40.30.20.***40005000Hz***010000图4.2 双线性变换法设计高通切比雪夫数字滤波器

模拟滤波器幅度响应142模拟滤波器相位响应幅度0.5相位00.40.6/pi数字滤波器幅度响应0.20.80-20-400.40.6/pi数字滤波器相位响应0.20.8142幅度0.5相位00.20.4/pi0.60.80-20-400.20.4/pi0.60.8图4.3 对比模拟滤波器和数字滤波器的幅频特性

7.实验报告要求(1)简述实验原理。(2)打印程序清单。

(3)绘制相应幅频响应图。

实验四DFT/FFT频谱分析及应用

1.实验目的

(1)加深对DFT/FFT的理解,熟悉MATLAB中的有关函数。

(2)学习用FFT对连续信号和时域离散信号进行谱分析的方法。(3)了解FFT在系统分析中的应用。

2.实验设备

 计算机

 MATLAB R2012a仿真软件

3.实验原理

在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅里叶变换(DFT)进行分析。DFT不但可以很好地反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列傅里叶变换的等距采样,因此可以用于序列的谱分析。

所谓谱分析就是计算信号的频谱,包括振幅谱。相位谱和功率谱。在利用FFT对模拟信号进行谱分析时,应将模拟信号离散化以得到离散时间信号,同时考虑谱分析中参数的选择。对信号进行谱分析的重要问题是频谱分析率和分析误差。在保持分辨率不变的情况下,若希望增加所分析的信号的最高频率,或在保持信号最高频率不变的情况下,提高分辨率,唯一的方法是增加在记录长度内的取样点数N,那么N必须满足条件:

N其中,2f0F

f0是连续信号最高频率,F是频率分辨率。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT做频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择得大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度做FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。

MATLAB信号处理工具箱中提供了4个FFT内部函数用于计算DFT和IDFT,它们分别是:

fft(x),fft(x,L),ifft(X),ifft(X,L)

4.实验内容及步骤

x(t)2sin(4πt)5cos(8πt)DFT采样率和采样点(1)对模拟信号进行采样,用DFT进行谱分析,如何确定数?

x(t)f1=120Hzcos(2f1t)cos(2πf(2)已知一连续信号为其中,πf2=140Hz,用FFT进行分析时,选取取2t)样频率及能够分辨两个谱峰所需要的点数,绘制频谱。(3)对模拟周期信号进行谱分析

x(t)cos8πtcos16πtcos20πt

选择采样频率fs=64Hz,变换区间N=16,32,64,在三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。

5.参考程序

(1)内容1参考程序 N=8;fs=16;n=0:N-1;w=fs*n/N;x=2*sin(4*pi*n/fs)+5*cos(8*pi*n/fs);X=fft(x,N);figure(1)stem(w(1:N/2),abs(X(1:N/2)),'k','filled');grid;xlabel('Hz');ylabel('|X(f)|');title('N=8');% N取6或32时进行对比讨论

(2)内容2参考程序 N=21;L=256;f1=120;f2=140;fs=400;T=1/fs;ws=2*pi*fs;n=0:N-1;x=cos(2*pi*f1*n*T)+cos(2*pi*f2*n*T);X=fftshift(fft(x,L));w=(-ws/2+(0:L-1)*ws/L)/(2*pi);figure(2)subplot(2,1,1);plot(w,abs(X));xlabel('Hz');ylabel('幅度谱');axis([-200,200,0,15]);title('N=21');N=11;n=0:N-1;x=cos(2*pi*f1*n*T)+cos(2*pi*f2*n*T);X=fftshift(fft(x,L));subplot(2,1,2);plot(w,abs(X));xlabel('Hz');ylabel('幅度谱');axis([-200,200,0,15]);title('N=11');(3)内容3参考程序 figure(3)fs=64;T=1/fs;N=16;n=0:N-1;

%FFT的变换区间N=16 xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);

%对x(t)16点采样 Xk16=fft(xnT);

%计算xnT的16点DFT Xk16=fftshift(Xk16);

%将零频率移到频谱中心 Tp=N*T;F=1/Tp;

%频率分辨率F k=-N/2:N/2-1;fk=k*F;

%产生16点DFT对应的采样点频率(以零频率为中心)

subplot(3,1,1);stem(fk,abs(Xk16),'.');box on %绘制8点DFT的幅频特性图 title('16点|DFT[x(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(Xk16))])N=32;n=0:N-1;

%FFT的变换区间N=16 xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);

%对x(t)32点采样 Xk32=fft(xnT);

%计算xnT的32点DFT Xk32=fftshift(Xk32);

%将零频率移到频谱中心 Tp=N*T;F=1/Tp;

%频率分辨率F k=-N/2:N/2-1;fk=k*F;

%产生16点DFT对应的采样点频率(以零频率为中心)

subplot(3,1,2);stem(fk,abs(Xk32),'.');box on %绘制8点DFT的幅频特性图 title('32点|DFT[x(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(Xk32))])N=64;n=0:N-1;

%FFT的变换区间N=16 xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);

%对x(t)64点采样 Xk64=fft(xnT);

%计算xnT的64点DFT Xk64=fftshift(Xk64);

%将零频率移到频谱中心 Tp=N*T;F=1/Tp;

%频率分辨率F k=-N/2:N/2-1;fk=k*F;

%产生16点DFT对应的采样点频率(以零频率为中心)

subplot(3,1,3);stem(fk,abs(Xk64),'.');box on%绘制8点DFT的幅频特性图 title(' 64点|DFT[x(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(Xk64))])

6.实验程序运行结果

内容

1、内容2以及内容3的实验程序的运行结果分别如图2.1、图2.2和图2.3,图2.4及图2.5所示

N=82018161412|X(f)|10864200123Hz456

2.1 实验内容1采样点数N=8时的频谱

N=612108|X(f)|64200123Hz456图

2.2 实验内容1采样点数N=6时的频谱

N=3280706050|X(f)|40302010001234Hz5678图

2.3 实验内容1采样点数N=32时的频谱

N=21151050-200

幅度谱-150-100-500HzN=1***0151050-200幅度谱-150-100-500Hz50100150200图2.4 实验内容2频谱图

7.分析讨论

(1)实验内容1,根据给定模拟f1=2Hz,f=4Hz,所以满足采样定理

2fs2fh,采取样频率fs=16Hz,F=4-2=2Hz,根据N`2

f0/F,所以N8,当N=6时,不满足采样点数,所以频谱在时域混叠,而当N=32时,满足采样点数,频谱中能够看到有两个频率成分,在f1=2Hz,f2=4Hz处有谱线,如图2.1,2.2,2.3所示。

(2)实验内容2,f1=120Hz,f2=140Hz,取采样频率

fs=400Hz,F=140-120=20Hz,所以N=20,显然,当N=21时,能把f1和f2两个谱峰分辨出来,如图2.4中第一个图所示,当N=11时,两个谱峰分辨不出来,如图2.4第二幅图所示。

16点|DFT[x(nT)]|10幅度50-30-20-100f(Hz)32点|DFT[x(nT)]|102030幅度100-30-20-100f(Hz)64点|DFT[x(nT)]|102030幅度200-30-20-100f(Hz)102030图2.5 实验内容3频谱图

(3)实验内容3,对莫逆周期信号进行谱分析

x(t)cos8tcos16tcos20t x(t)有3个频率成分,f1样频率

=4Hz,f2=8Hz,f3=10Hz,所以x(t)的周期为0.5s,采fs=64Hz。变换区间N=16时,观察时间Tp=16T=0.25s,不是x(t)的整数倍周期,所以所得频谱不正确,如图2.5的第一幅图所示,变换区间N=32,64时,观察时间Tp=0.5s,1s,是x(t)的整数周期,所以所得频谱正确,如图2.5的后两幅图所示,图中3根谱线正好位于4Hz,8Hz,10Hz处。变换区间N=64时,频谱幅度是变换区间N=32时的2倍,这种结果正好验证了用DFT对中期序列谱分析的理论。

8.实验报告要求

(1)完成各个实验任务和要求,附上程序清单和有关曲线。(2)简要回答思考问题

下载MATLAB教案(精选五篇)word格式文档
下载MATLAB教案(精选五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    Matlab基本语法教案[5篇材料]

    第二章 基本语法 2.1 MATLAB的矩阵、变量与表达式 在MATLAB系统中,只管理着一种对象---矩阵(包括复数矩阵),任何数量在MATLAB中是作为1x1的矩阵来处理的。一、矩阵的创建: 1. 在......

    matlab作业题

    第一章 MATLAB环境 1、MATLAB通用操作界面窗口包括哪些?命令窗口、历史命令窗口、当前目录窗口、工作空间窗口各有哪些功能? 答:MATLAB通用操作界面窗口包括:命令窗口、历史命令......

    Matlab心得体会

    Matlab心得体会 10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。......

    Matlab心得体会

    Matlab心得体会 10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。......

    matlab学习心得[最终定稿]

    学习MATLAB 感想 学习了 MATLAB 这门课程,我了解该软件的基本功能,也知道 了该软件在我们生活中的重要地位。随着社会的不断发展,科技 的不断进步,计算机的普及,它也被应用在越......

    MATLAB论文

    MATLAB与在信号与系统中的应用 姓名:江肥 班级:*** 学号:*** 摘要:论文通过MATLAB在信号与系统中的应用实例,探讨了MATLAB在信号与系统中的应用方法和技巧,对运用计算机软件完成......

    matlab实验报告

    求解:1.模拟比赛车道曲线和选手速度曲线; 2.估计车道长度和所围区域面积; 3.分析车道上相关路段的路面状况(用不同颜色或不同线型标记出来); 4.对参加比赛选手提出合理建议。 四.合......

    MATLAB作业

    第一章 MATLAB R2010a简介 主要内容总结如下: 本章主要介绍了MATLAB的功能和它的用户界面以及MATLAB R2010a的路径搜索。MATLAB的功能是多种多样的,有数学计算功能、图形化显......