电卓matlab实验指导书.docx
- 文档编号:7694238
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:21
- 大小:149.72KB
电卓matlab实验指导书.docx
《电卓matlab实验指导书.docx》由会员分享,可在线阅读,更多相关《电卓matlab实验指导书.docx(21页珍藏版)》请在冰点文库上搜索。
电卓matlab实验指导书
实验1MATLAB集成环境使用与基本操作命令练习
一、实验目的
熟悉MATLAB语言编程环境;熟悉MATLAB语言命令.
二、实验原理
MATLAB是以复杂矩阵作为基本编程单元的一种程序设计语言。
它提供了各种矩阵的运算与操作,并有较强的绘图功能。
1.1基本规则
1.1.1一般MATLAB命令格式为
[输出参数1,输出参数2,……]=(命令名)(输入参数1,输入参数2,……)
输出参数用方括号,输入参数用圆括号如果输出参数只有一个可不使用
括号。
1.1.2%后面的任意内容都将被忽略,而不作为命令执行,一般用于为代码加注释。
1.1.3可用↑、↓键来重现已输入的数据或命令。
用←、→键来移动光标进行修改。
1.1.4所有MATLAB命令都用小写字母。
大写字母和小写字母分别表示不同的变量。
1.1.5常用预定义变量,如pi、Inf、NaN、ans
1.1.6矩阵的输入要一行一行的进行,每行各元素用空格或“,”分开,每行用“;”分开。
如
MATLAB书写格式为A=[123;456;789]
在MATLABZ中运行如下程序可得到A矩阵
a=[123;456;789]
a=
123
456
789
1.1.7需要显示命令的计算结果时,则语句后面不加“;”号,否则要加“;”号。
运行下面两种格式可以看出它们的区别:
a=[123;456;789]a=[123;456;789];
a=
123不显示结果
456
789
1.1.8当输入语句过长需要换行时,应加上“…”后再回车,则可续行输入。
1.2文件管理常用命令
1.2.1帮助(HELP)命令
MATLAB有很多命令,因此很不容易记忆。
使用HELP命令可以得到有关命令的屏幕帮助信息。
如在MATLAB环境下直接运行HELP命令就会在屏幕上给出MATLAB的基本命令以及相关的工具箱软件命令(请自行验证)。
而下面的格式可以得到指定命令的帮助信息,和详细说明。
help命令名
1.2.2save命令
该命令存储定义的变量或演算结果,也可以用来存储指定的变量。
命令格式为
save文件名[变量名表][-append][-ascii]
1.2.3what命令
该命令可以在当目录下显示MATLAB文件和MAT数据文件
1.2.4dir命令
显示当前目录下的所有文件.
1.2.5clear命令
如果输入calearabc,则表示清除工作空间中指定变量a,b,c;如果仅仅输入calear命令,则清除整个工作空间。
1.3矩阵运算
MATLAB具有强大的矩阵运算功能,这里我们只作简单介绍.
1.3.1在MATLAB中表示一个矢量要用方括号,而列矢量的输入只需在行矢量输入格式基础上加转置符“’”即可。
如x=[123;456]
x=
123
456
而x=[123;456]'(加转置符)
x=
14
25
36
1.3.2下面三条命令可以产生一个行矢量
1a=linspace(x,y,n)
2a=logspace(x,y,n)
3a=[x:
n:
y]
第一条命令可以在线性空间产生一个值在x至y之间间隔点数为n的行矢量(一组数据)。
其行矢量的起始值是x,终值为y,点数为n。
第二条命令可以在对数空间产生一个值在10x至10y之间等间隔的行矢量(一组数据)。
第三条命令产生x至y步长为n的行矢量。
但是,三个命令之间存在差别,下面的例子可以说明这一点。
例1x=logspace(0,5,6)
x=
110100100010000100000
例2x=linspace(0,10,11)
x=
012345678910
例3x=[0:
1:
10]
x=
012345678910
通过上面三个例子可以看出例一,例二中n代表选取的点数。
而在例三中n则表示步长.注意它们的区别。
1.3.3矩阵的加,减,乘,除等,和其它语言书写一样。
但要注意的是在运算符前面加有“.”则表示是数组运算,为对应元素的相应操作。
例4请注意下面的不同情况.
a=[12;34];
b=[22;22];
c=a*bc=a.*b
c=c=
6624
141468
c=a/bc=a./b
c=c=
1.0e+015*0.50001.0000
-2.25182.25181.50002.0000
-2.25182.2518
1.4常见数学函数
函数名
数学计算功能
函数名
数学计算功能
abs(x)
实数的绝对值或复数的幅值
floor(x)
对x朝-∞方向取整
acos(x)
反余弦arcsin
gcd(m,n)
求正整数m和n的最大公约数
acosh(x)
反双曲余弦arccosh
imag(x)
求复数x的虚部
angle(x)
在四象限内求复数x的相角
lcm(m,n)
求正整数m和n的最小公倍数
asin(x)
反正弦arcsin
log(x)
自然对数(以
为底数)
asinh(x)
反双曲正弦arcsinh
log10(x)
常用对数(以10为底数)
atan(x)
反正切arctan
real(x)
求复数x的实部
atan2(x,y)
在四象限内求反正切
rem(m,n)
求正整数m和n的m/n之余数
atanh(x)
反双曲正切arctanh
round(x)
对x四舍五入到最接近的整数
ceil(x)
对x朝+∞方向取整
sign(x)
符号函数:
求出x的符号
conj(x)
求复数x的共轭复数
sin(x)
正弦sin
cos(x)
余弦cos
sinh(x)
反双曲正弦sinh
cosh(x)
双曲余弦cosh
sqrt(x)
求实数x的平方根:
exp(x)
指数函数
tan(x)
正切tan
fix(x)
对x朝原点方向取整
tanh(x)
双曲正切tanh
例5:
输入x=[-4.85-2.3-0.21.34.566.75],则:
ceil(x)=-4-20257
fix(x)=-4-20146
floor(x)=-5-3-1146
round(x)=-5-20157
1.5关系及逻辑运算
1.5.1关系运算允许常量(或矩阵中的元素与元素)之间的比较.如果比较结果为真,则答案为1,否则为0.常用的关系运算符如下:
<小于,>大于,==等于
<=小于等于,>=大于等于,~=不等于
对于复数”==”和”~=”既比较实部也比较虚部,而其它运算仅比较实部。
例6比较a=[5:
1:
15]与b=[12887101211131415]中的对应元素是否相同,则运行下面程序
a=[5:
1:
15];
b=[12887101211131415];
y=a==b
y=
00010100111
1.5.2MATLAB有三个逻辑运算符.
&逻辑与|逻辑或~逻辑非
在矩阵运算中,以上命令是将两个矩阵中的对应元素进行运算,得到的结果是具有同样元素的矩阵。
例7分别对下面两个矩阵进行逻辑运算.
X=[01;10];Y=[00;10];
X&Y
ans=
00
10
X|Y
ans=
01
10
~X
ans=
10
01
MATLAB在进行混合运算时,其顺序为:
算术运算→关系比较→逻辑运算
例8计算x&y+x>y时,程序首先执行x+y运算,然后将相加结果与y比较,最后将比较结果和x作与运算,运行结果如下。
x=[01;10];
y=[00;10];
x&y+x>y
ans=
01
10
三、实验内容
熟悉MATLAB语言编程环境。
在这一环境中,系统提供了许多编写,调试和执行MATLAB程序的便利工具。
熟悉变量、MATLAB基本数学函数使用,矩阵操作练习,主要包括矩阵的建立,算数运算,逻辑运算和关系运算。
(一)熟悉Matlab的运行环境以及HELP命令,运行demo命令,观看matlab所具有的功能。
(二)验证例题中所有操作。
(三)完成以下各题,将步骤命令写入实验报告,并在机器上运行结果验证。
1.输入A=[715;256;315],B=[111;222;333],在命令窗口中执行下列表达式,掌握其含义:
A(2,3)A(:
2)A(3,:
)A(:
1:
2:
3)A(:
3).*B(:
2)A(:
3)*B(2,:
)A*BA.*BA^2A.^2B/AB./A
2.输入C=1:
2:
20,则C(i)表示什么?
其中i=1,2,3,…,10;
3.查找已创建变量的信息,删除无用的变量;
4.输入以下程序,察看结果,如果出错给出处理方法并验证。
(1)a=magic(3);b=243;
(2)a=magic(3);b=243;
savemyvarab;savemyvarab–ascii;
clear;pause;clear;
loadmyvar;loadmyvar–ascii;
who
a,b
5.求下列表达式的值。
(1)
(2)
,其中a=3.5,b=5,c=-9.8。
四、实验要求
1.预习实验原理.
2.对实验内容编程,上机运行,记录运行结果(图或曲线或数据).
3.写出实验报告.
实验2符号运算
一、实验目的
掌握符号运算的应用.
二、实验原理
(1)符号变量与符号表达式
创建符号变量、符号表达式(函数)的方法:
1)用sym或syms命令创建符号变量.
2)用符号变量创建符号表达式,或用单引号‘’括起来创建符号表达式,或用sym(‘‘)创建符号表达式.
(2)微分运算:
diff(f,x,n)%对函数f求x的n阶导数;
(3)积分运算:
1)不定积分
s=int(f,x);%对函数f求x的不定积分
2)定积分
s=int(f,x,a,b):
%对函数f求x的定积分;积分下限为a,积分上限为b.
(4)求解方程和方程组
用solve求解代数方程和方程组,用dsolve求解微分方程和方程组.
例:
s=solve('a*x^2+b*x+c=0',’x’);%解一元二次方程a*x^2+b*x+c=0.
s=dsolve(‘D2y+3*Dy=1+y^2’,‘x’)%求二阶常微分方程通解.
s=dsolve(‘D2y+3*Dy=1+y^2’,’Dy(0)=0’,‘y(0)=1’,‘x’)%求二阶常微分方程特解.
三、实验内容
1.已知
(1)求
;
(2)求
.
2.解方程:
3.已知方程:
(1)求通解;
(2)求满足
的特解.
四、实验要求
1.预习实验原理.
2.对实验内容编程,上机运行,记录运行结果(图或曲线或数据).
3.写出实验报告
实验3绘图与可视化
一、实验目的
1.掌握普通二维和三维图形绘制及修饰控制方法;
2.掌握饼图、条形图、三维网格曲面等特殊图形绘制.
二、实验原理
1.普通二维和三维图形绘制及修饰控制方法
二维图形绘命令:
plot(x1,y1,’参数1’,x2,y2,’参数2’,…)
在同一坐标系中画多幅图形,x1、y1为第一条曲线x、y轴的坐标值,参数1为第一条曲线的选项参数。
x2、y2为第二条曲线x、y轴的坐标值,参数2为第二条曲线的选项参数。
三维图形绘命令
plot3(x1,y1,z1,参数1,x2,y2,z2,参数2,…)
修饰与控制方法:
(1)颜色控制字符:
r(红)、g(绿)、b(蓝)、k(黑)、y(黄)等。
(2)线型控制字符:
-实线(默认)、-.点划线、:
点连线、--虚线
(3)数据点标记符:
.点、+十字号、o圆圈、*星号、d菱形、s正方形
(4)坐标轴的比例控制
axis([xminxmaxyminymax])
将图形的x轴范围限制在[xmin,xmax]之间,y轴范围限制在[ymin,ymax]之间。
(5)坐标刻度标示
Set(gca,’xtick’,标示向量)
Set(gca,’ytick’,标示向量)
按标示向量设置x、y轴的刻度标示
(6)文字标示
title(‘字符串’)---图形标题;xlabel(‘字符串’)---x轴标注;ylabel(‘字符串’)---y轴标注;
text(x,y,‘字符串’)---在坐标(x,y)处标注说明文字
(7)网格控制
gridon---在所画的图形中添加网格线;
gridoff---在所画的图形中去掉网格线.
(8)图例注解
区分同一个坐标系上的多幅图形.
Legend(字符串1,字符串2,…,参数)
(9)图形的保持
holdon---当前图形及坐标轴的所有特性.
holdoff---解除holdon命令.
2.特殊二维图形绘制
1).二维饼图绘制
pie(x,explode)
x一般为向量,绘制x的每一元素占全部向量元素总和值的百分比的饼图.
参数explode表示某元素对应的扇形图是否从饼图中分离出来,若非零,则分离出来.
2).二维条形图
(1).垂直方向的条形图
bar(x,’参数’)
X一般为向量,以其各元素的序号为各个数据点的横坐标,以X的各个元素为纵坐标,绘出一个垂直方向的条形图.参数为group(或缺省),stack.
(2).水平方向的条形图
barh(x,’参数’)
3.特殊三维图形绘制
绘制三维网格曲面:
mesh(x,y,z)
三、实验内容
1.在同一窗口绘制sin2t和3cos3t曲线,t范围:
0-5.要求前者用红色实线,后者用蓝色虚线.
2.某学校有30位教师,其中教授5人,副教授8人,讲师12人,助教5人.试画出职称比例结构饼图及条形图.
3.设计一个幅值为2,频率在20-100Hz之间逐渐变化的正弦曲线.
四、实验要求
1.预习实验原理.
2.对实验内容编程,上机运行,记录运行结果(图或曲线或数据).
3.写出实验报告.
实验4M文件和函数句柄
一、实验目的
1、掌握脚本M文件和函数M文件的编写;
2、掌握MATLAB中四种控制结构;
3、掌握MATLAB中主函数、子函数和匿名函数。
二、实验原理
三、实验内容
1:
请分别写出用for和while循环语句计算
的程序。
此外,还请写出避免循环的数值、符号计算程序。
2:
编写一个函数M文件,它的功能:
没有输入量时,画出单位圆(见图p6-1);输入量是大于2的自然数N时,绘制正N边形,图名应反映显示多边形的真实边数(见图p6-2);输入量是“非自然数”时,给出“出错提示”。
此外,函数M文件应有H1行、帮助说明和程序编写人姓名。
3:
用泛函指令fminbnd求
在x=0附近的极小值。
fminbnd的第一个输入量要求使用匿名函数表达。
4:
在matlab的\toolbox\matlab\elmat\private文件夹上有一个“烟圈矩阵”发生函数smoke.m。
运行指令smoke(3,0,'double'),将生成一个3阶伪特征根矩阵如下
A=
现在的问题是:
在MATLAB当前目录为\work情况下,如何利用函数句柄调用smoke.m函数,产生3阶伪特征根矩阵。
请写出相应的程序或操作步骤。
实验六连续时间系统响应的MATLAB分析
一、实验目的
1、熟悉常用的连续信号和连续系统的分析方法
2、掌握常用连续信号的MATLAB描述方法
3、掌握连续时间系统响应的MATLAB编程求解方法
二、实验原理
1、连续信号的MATLAB描述
(1)单位冲激函数
(2)单位阶跃函数:
(3)复指数函数
2、LTI系统的零输入响应
n阶线性时不变连续系统的微分方程
已知y及其各阶导数的初始值为y(0),y
(1)(0),…,y(n-1)(0),求系统的零输入响应。
方程的解为
p1,p2…,pn是方程a1n+a2n-1+…+an+an+1=0的根,C1,…,Cn由y及其各阶导数的初始值来确定。
•C1+C2+…+Cn=y0y0=y(0)
•
p1C1+p2C2+…+pnCn=Dy0
•即V·C=Y0
•
其解为C=V\Y0
式中
•V为范德蒙矩阵,在MATLAB的特殊矩阵库中有vander。
调用方法:
V=vander(p)
3、n阶LTI系统的冲激响应
•n阶微分方程,写成系统函数为:
•
冲击响应就是H(s)的拉普拉斯反变换,可以把H(s)展开为极点留数式。
•其反变换为
4、卷积的计算
•根据卷积公式:
•因此编程的过程为:
•
(1)写出h(t)的MATLAB表达式;
•
(2)写出u(t)的MATLAB表达式;
•(3)利用MATLAB的卷积语句y=conv(u,h)求解
•(4)画曲线plot(t,y)。
5、LTI系统的零状态响应
•设二阶连续系统
求其冲激响应。
若输入为u=3t+cos(0.1t),求其零状态响应y(t)。
解:
特征方程2+2+8=0
•求出其特征根为p1,p2及相应的留数r1,r2,则冲击响应为:
•输出y(t)可用输入u(t)与冲击响应h(t)的卷积求得。
三、实验内容
1、已知描述系统的微分方程和初始状态如下,求其零输入响应。
2、已知描述系统的微分方程和输入如下,求其零状态响应。
3、已知某连续系统的微分方程为
若系统的初始条件y(0-)=y′(0-)=1,输入f(t)=e-tε(t),求系统的完全响应y(t)。
四、实验要求
1、简述实验目的、实验原理、实验内容和实验过程
2、总结实验中的主要结论、实践技能和心得体会
3、附上实验过程中所用的程序
实验七离散信号和系统的MATLAB分析
一、实验目的
(1)掌握MATLAB语言的基本操作,学习基本的编程功能。
(2)掌握MATLAB产生常用离散事件信号的编程方法。
(3)利用卷积方法观察分析系统的时域特性。
(4)熟悉连续信号经过采样前后的频谱变化,加深对采样定理的理解。
二、实验原理
1、离散信号的产生及时域处理
(1)单位采样序列δ(n)
1,n=0
0,n≠0(1.2.3)
单位采样序列也可以称为单位脉冲序列,特点是仅在n=0时取值为1,其它均为零。
它类似于模拟信号和系统中的单位冲激函数δ(t),但不同的是δ(t)在t=0时,取值无穷大,t≠0时取值为零,对时间t的积分为1。
(2)单位阶跃序列u(n)
1,n≥0
0,n<0(1.2.4)
它类似于模拟信号中的单位阶跃函数u(t)。
δ(n)与u(n)之间的关系如下式所示:
δ(n)=u(n)-u(n-1)
(3)矩形序列RN(n)
1,0≤n≤N-1
0,其它n(1.2.8)
上式中N称为矩形序列的长度。
矩形序列可用单位阶跃序列表示,如下式:
RN(n)=u(n)-u(n-N)
(4)实指数序列
x(n)=anu(n),a为实数
如果|a|<1,x(n)的幅度随n的增大而减小,称x(n)为收敛序列;如|a|>1,则称为发散序列。
(5)正弦序列
x(n)=sin(ωn)
式中ω称为正弦序列的数字域频率,单位是弧度,它表示序列变化的速率,或者说表示相邻两个序列值之间变化的弧度数。
如果正弦序列是由模拟信号xa(t)采样得到的,那么
xa(t)=sin(Ωt)
xa(t)|t=nT=sin(ΩnT)
x(n)=sin(ωn)
因为在数值上,序列值与采样信号值相等,因此得到数字频率ω与模拟角频率Ω之间的关系为
ω=ΩT
上式具有普遍意义,它表示凡是由模拟信号采样得到的序列,模拟角频率Ω与序列的数字域频率ω成线性关系。
由于采样频率fs与采样周期T互为倒数,也可以表示成下式:
(6)复指数序列
x(n)=e(σ+jω0)n
式中ω0为数字域频率,设σ=0,用极坐标和实部虚部表示如下式:
x(n)=ejω0n
x(n)=cos(ω0n)+jsin(ω0n)
由于n取整数,下面等式成立:
ej(ω0+2πM)n=ejω0n,M=0,±1,±2…
2、序列的运算
在数字信号处理中,序列有下面几种运算,它们是乘法、加法、移位、翻转及尺度变换。
(1).乘法和加法
序列之间的乘法和加法,是指它的同序号的序列值逐项对应相乘和相加,
(2)移位、翻转及尺度变换
设序列x(n),其移位序列x(n-n0);当n0>0时称为x(n)的延时序列;当n0<0时,称为x(n)的超前序列。
x(-n)则是x(n)的翻转序列。
x(mn)是x(n)序列每隔m点取一点形成的,相当于时间轴n压缩了m倍。
3、离散系统对信号的响应
如果已知系统函数H(z)=B(z)/A(z),则filter函数可求出系统对输入信号x(n)的响应y(n)。
y=filter(B,A,x)
由差分方程可得到H(z)的分子和分母多项式系数向量A和B,再给出输入向量x即可。
三、实验内容
1、编写MATLAB程序来产生下列基本典型脉冲序列:
单位脉冲序列:
起点n0,终点nf,在ns处有一单位脉冲
单位阶跃序列:
起点n0,终点nf,在ns前为0,在ns处及以后均为1
实指数序列:
复指数序列:
2、离散时间信号的卷积
若:
X=[340-2235];nx=[-3:
3];H=[145601];nh=[-1,4],试计算X和H的卷积。
(在MATLAB中,利用函数conv(x,h)可以实现两个有限长度序列的卷积,要注意conv函数假定两个序列都是从n=0开始的。
)
四、实验要求
1、简述实验目的、实验原理、实验内容和实验过程
2、总结实验中的主要结论、实践技能和心得体会
3、附上实验过程中所用的程序
实验八:
线性时不变系统的时域响应
一、实验目的
1.掌握线性时不变系统的三种描述形式——传递函数描述法、零极点增益描述法、
状态空间描述法。
2.掌握三种描述形式之间的转换。
3.掌握连续和离散系统频率响应的求解。
二、实验内容(边做实验,边将生成结果和图形拷贝到Word文档
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 实验 指导书