MATLAB仿真技术实验教案.docx
《MATLAB仿真技术实验教案.docx》由会员分享,可在线阅读,更多相关《MATLAB仿真技术实验教案.docx(38页珍藏版)》请在冰豆网上搜索。
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)、计算
,当x=2和x=4时的值。
>>x=[24];
y=x.^3+(x-0.98).^2./(x+1.35).^3-5*(x+1./x);
y
y=
-4.472342.8096
2)、计算
。
>>y=cos(pi/3)-(9-sqrt
(2))^(1/3)
y=
-1.4649
2、矩阵及变量的赋值
1)、已知a=3,A=4,b=a2,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=
10
2)、创建3×4矩阵魔方阵和相应的随机矩阵,将两个矩阵并接起来,然后提取任意两个列向量。
>>A=magic(4);A(4,:
)=[];
B=rand(3,4);C=[AB];
D=C(:
3);E=C(:
4);
D,E
D=
3
10
6
E=
13
8
12
3)、创建一个5×5随机阵并求其逆。
>>A=rand(5,5);
B=inv(A)
B=
-0.3113-0.5610-0.43340.81770.8277
0.9176-1.04642.3486-2.99340.3191
-1.34830.5234-0.0487-0.17481.3919
0.67960.43660.48310.8076-1.7734
0.95051.2291-1.89181.7705-1.1269
4)利用上题的矩阵,计算矩阵的5次方。
>>A=rand(5,5);
C=A^5
C=
2.01621.97631.04971.32852.9673
2.40182.34231.25651.58113.5262
4.49934.19262.42902.93696.4685
3.00872.81751.61711.96804.3373
2.42882.34301.27921.59513.5506
3、三类运算符及其功能
1)创建一个4×4随机矩阵,提取对角线以上部分。
>>A=rand(5,5);
D=triu(A,1)
D=
00.31420.03810.16030.6649
000.45860.87290.8704
0000.23790.0099
00000.1370
00000
2)创建一个4×5随机矩阵,提取第一行和第二行中大于0.3的元素组成矩阵。
>>A=rand(4,5);
B=A([12],:
)>0.3;
C=B.*A([12],:
)
C=
0.39720.37160.716500.7036
0.41360.42530.51130.70060.4850
3)设
,
,求C=A*B,D=A.*B。
>>A=[14813;-36-5-9;2-7-12-8];B=[543-2;6-23-8;-13-97];
C=A*B'
D=A.*B
C=
19-8230
12273
-385429
D=
51624-26
-18-12-1572
-2-21108-56
三、实验仪器
PC机MATLAB软件
四、实验结果
五、结论
实验三
实验名称:
一维二维数组创建与寻访
一、实验目的
1、掌握数组的创建和寻访
2、掌握数组的生成函数和操作运算
3、掌握数组操作运算与矩阵操作运算
二、实验步骤
1、直接输入法创建数组
创建一个数组并赋值给变量a
使a=
2、使用MATLAB函数创建数组
创建一个数组并赋值给变量b,使b中元素服从均值为0,方差为1的正态分布(b为4×4阶)
3、利用外部数据文件(MAT)保存和装载数组
保存并调用变量a,b
4、比较数组运算与矩阵运算操作的区别
⑴分别对变量a,b进行矩阵乘和数组乘
⑵分别对变量a,b进行矩阵除和数组除
三、实验结果
1、直接输入法创建数组
创建一个数组并赋值给变量a
使a=
MATAB源程序:
>>a=[1234;5678;9101112;13141516]
a=
1234
5678
9101112
13141516
2、使用MATLAB函数创建数组
创建一个数组并赋值给变量b,使b中元素服从均值为0,方差为1的正态分布(b为4×4阶)
MATAB源程序:
>>b=randn(4,4)
b=
-0.4326-1.14650.3273-0.5883
-1.66561.19090.17462.1832
0.12531.1892-0.1867-0.1364
0.2877-0.03760.72580.1139
3、利用外部数据文件(MAT)保存和装载数组
保存并调用变量a,b
MATAB源程序:
>>saveD:
\55ab
>>clear
>>loadD:
\55ab
4、比较数组运算与矩阵运算操作的区别
⑴分别对变量a,b进行矩阵乘和数组乘
MATAB源程序:
>>a*b
ans=
-2.23704.65233.01963.8246
-8.97769.43627.183710.1142
-15.718214.220111.347716.4038
-22.458719.004015.511822.6934
>>a.*b
ans=
-0.4326-2.29290.9819-2.3533
-8.32797.14551.222517.4655
1.128011.8916-2.0538-1.6368
3.7398-0.526910.88691.8229
⑵分别对变量a,b进行矩阵除和数组除
MATAB源程序:
>>a/b
ans=
-2.61660.7871-1.47894.7435
-7.50050.8441-2.646712.1430
-12.38440.9011-3.814519.5425
-17.26830.9581-4.982226.9420
>>a\b
Warning:
Matrixisclosetosingularorbadlyscaled.
Resultsmaybeinaccurate.RCOND=1.387779e-018.
ans=
1.0e+016*
0.6415-1.33560.3480-1.1382
-0.63721.4254-0.39191.1373
-0.65031.1558-0.26021.1400
0.6459-1.24570.3041-1.1391
>>a./b
ans=
-2.3118-1.74459.1661-6.7991
-3.00195.038140.08273.6644
71.80918.4093-58.9153-87.9792
45.1897-372.011220.6671140.4355
>>a.\b
ans=
-0.4326-0.57320.1091-0.1471
-0.33310.19850.02490.2729
0.01390.1189-0.0170-0.0114
0.0221-0.00270.04840.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.77990.77590.99990.99590.62310.98900.82410.69810.89540.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.36540.14000.56680.82300.67390.99940.96160.05890.36030.5485
B=
0.26180.59730.04930.57110.70090.96230.75050.74000.43190.6343
a=
000.56680.82300.67390.99940.9616000.5485
b=
0.261800.0493000000.43190
ans=
0110000100
3、多项式的表示方法及运算
令m(x)=x6+6x5+20x4+50x3+75x2+84x+64;n(x)=x4-12x3+25x+16
求m(x)与n(x)的卷积。
MATAB源程序:
>>m=[162050758464];
n=[1-1202516];
w=conv(m,n)
w=
Columns1through10
1-6-52-165-359-220626190733002944
Column11
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、三维曲线的绘制
分别绘制其网线图及曲面图
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')
gridon
subplot(2,2,2)
stairs(x,y,'b')
gridon
subplot(2,2,3)
bar(x,y,'y')
axis([0,6,-.2,.6])
gridon
subplot(2,2,4)
fill(x,y,'g')
gridon
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、三维曲线的绘制
分别绘制其网线图及曲面图
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源程序:
shadingfaceted
shadinginterp
shadingflat察
view(30,-37.5)
view(180,0)
实验六
实验名称:
M文件和函数句柄
一、实验目的
1、掌握利用控制语句实现复杂问题的方法
2、掌握M文件的创建及调用方法
3、掌握利用函数句柄来求取函数值的方法
4、学习利用内联函数来求取函数值的方法
二、实验步骤
1、已知函数
要求利用控制语句来实现y的绘图。
2、已知
1)若X用矩阵代入,得f(x)为同阶矩阵
2)利用M文件求x∈[-1,0]的函数值
3)利用函数句柄求x∈[0,1]的函数值
4)利用内联函数求x∈[1,2]的函数值
3、设
,
,若N=2,α=0,π/3,π/2,π,在4个子图中分别画出其曲线。
(要求只有一个subplot命令)
三、实验结果
1、已知函数
要求利用控制语句来实现y的绘图。
M文件如下:
functiony=hs(x)
n=length(x);
fork=1:
n
ifx(k)<=-1
y(k)=x(k).*sin(3*x(k));
elseifx(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);
2、已知
1)利用M文件求x∈[-1,0]的函数值
2)利用函数句柄求x∈[0,1]的函数值
3)利用内联函数求x∈[1,2]的函数值
4)若X用矩阵代入,得f(x)为同阶矩阵
M文件如下:
functiony=hs1(x)
y=1./((x-2).^2+.1)+1./((x-3).^3+.01);
plot(x,y)
2)调用如下:
>>a=rand(4);
>>b=hs1(a)
b=
0.71560.64560.57480.6805
0.26260.52330.33700.5045
0.41700.34200.42200.2475
0.35500.21060.54830.3212
2)调用如下:
>>a=-1:
0.1:
0;
>>b=hs1(a);
3)调用如下:
>>c=0:
.1:
1;
>>d=@hs1;
>>e=d(c);
4)调用如下:
y=inline('1./((x-2).^2+.1)+1./((x-3).^3+.01)');
p=1:
.1:
2;
q=y(p);
plot(p,q)
3、设
,
,若N=2,α=0,π/3,π/2,π,在4个子图中分别画出其曲线。
(要求只有一个subplot命令)
M文件如下:
functiony=hs1(t)
N=2;
alpha=[0pi/3pi/2pi];
fori=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);
实验七
实验名称:
Simulink交互式仿真
一、实验目的
1、了解Simulink仿真的基本操作
2、熟练掌握系统中子系统的操作
3、掌握Simulink常用工具箱的基本运用
4、掌握连续时间系统的建模与仿真
二、实验步骤
1、信号平方运算
系统的功能是对输入信号进行平方运算,现要求建立系统的Simulink模型并进行简单的仿真分析。
⑴系统输入信号源幅值为1的正弦波
⑵使用示波器显示同时原始信号和结果信号
⑶生成系统运算部分的子系统
2、使用代数环计算下式的值
3、根据上题,计算下式的值
2x2+7x-30=0
4、构建一连续时间系统,使时间t<5秒内输出5sin(x)2,时间t>5秒输出3sin(x)。
三、实验结果
1、信号平方运算
系统的功能是对输入信号进行平方运算,现要求建立系统的Simulink模型并进行简单的仿真分析。
⑴系统输入信号源幅值为1的正弦波
⑵使用示波器显示同时原始信号和结果信号
⑶生成系统运算部分的子系统
2、使用代数环计算下式的值
3、根据上题,计算下式的值
2x2+7x-30=0
4、构建一连续时间系统,使时间t<5秒内输出5sin(x)2,时间t>5秒输出3sin(x)。
三、实验仪器
PC机MATLAB软件
四、实验结果
五、结论
实验八
实验名称:
Simulink交互式仿真
(二)
一、实验目的
1、掌握低通数字滤波器的使用
2、掌握通信系统的信源子系统的生成
3、掌握通信系统的调制与解调子系统的生成
4、掌握通信信道子系统的生成
二、实验原理
(1)通信信道动态方程为。
显然,此信道为一线性连续信道,信道传递函数描述如下:
(2)信道噪音:
信道受到服从高斯正态分布的随机加性噪音的干扰,噪音均值为0,方差为0.01。
(3)信道延迟:
信道经过缓冲区为1024的延迟。
·数字滤波器
数字滤波器的差分方程为
此数字滤波器为线性离散系统,使用滤波器形式对其进行描述如下:
三、实验步骤
1.建立通信系统模型
按照通信系统的物理与数学模型建立系统模型。
在建立系统模型之前,首先给出建立系统模型所需要的系统模块,如下所述:
(1)Sources模块库中的SineWave模块:
作为高频载波信号与解调信号。
(2)Sources模块库中的SignalGenerator模块:
产生低频锯齿波信号。
(3)Math模块库中的Product模块:
用于信号进行调制与解调。
(4)Continuous模块库中的TransferFcn模块:
描述通信信道。
(5)Sources模块库中的RandomNumber模块:
产生信道噪音。
(6)Continuous模块库中的TransportDelay模块:
产生信道延迟。
(7)Discrete模块库中的DiscreteFilter模块:
描述数字滤波器。
(8)Subsystems模块库中的Subsystem模块:
封装系统中不同部分。
(9)Sinks模块库的Scope模块:
显示输出。
然后建立系统模型,并将信号幅值调制、通信信道、幅值解调封装到单独的子系统之中,
2.系统模块参数设置与仿真参数设置
在建立系统模型之后,接下来按照系统的要求设置系统模块参数与仿真参数。
想必用户对模块参数设置与仿真参数设置已经比较熟悉了,故在此仅给出各模块的参数与相应的仿真参数(所有没有给出的模块参数或仿真参数均使用系统的默认值);用户可仿照前面的例子对参数进行正确的设置。
信号调制子系统参数
(1)正弦载波SineWave模块:
频率Frequency为100Hz,幅值为1。
(2)锯齿信号SignalGenerator模块:
波形Waveform为sawtooth(锯齿波)。
·通信信道子系统参数
(1)随机信号RandomNumber模块:
均值mean为0、方差Variance为0.01。
(2)信道延迟TransferDelay模块:
初始缓冲区Initialbuffersize为1024。
(3)信道传递函数TransferFcn模块:
分子Numerator为[1]