实验 1
MATLAB 基本操作
一、实验目的
1.熟悉 MATLAB 实验环境,练习 MATLAB 命令、m 文件、Simulink 的基
本操作。
2.利用 MATLAB 编写程序进行矩阵运算、图形绘制、数据处理等。
3.利用 Simulink 建立系统的数学模型并仿真求解。
二、实验原理
MATLAB 环境是一种为数值计算、数据分析和图形显示服务的交互式的
环境。MATLAB 有 3 种窗口,即:命令窗口(The Command Window)、m-文
件编辑窗口(The Edit Window)和图形窗口(The Figure Window)。Simulink
是 MATLAB 的一个部件,它为 MATLAB 用户提供了一种有效的对反馈控制系
统进行建模、仿真和分析的方式。而 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 维
的数据图形,也可以是照片等。
4.Simulink 的启动方式:
启动运行 Simulink 有两种方式:(1)在 Command window 中,键入
simulink,回车。(2)单击工具栏上 Simulink 图标。启动 Simulink 后,
2
即打开了 Simulink 库浏览器(Simulink library browser)。在该浏览器
的窗口中单击“Create a new model(创建新模型)”图标,这样就打开一
个尚未命名的模型窗口。把 Simulink 库浏览器中的单元拖拽进入这个模型
窗口,构造自己需要的模型。对各个单元部件的参数进行设定,可以双击
该单元部件的图标,在弹出的对话框中设置参数。
三、实验内容与方法
1.输入命令,计算以下问题:
(1)已知矩阵
a
1
32
654
,
21
i
b
72
i
,利用 MATLAB 进行
矩阵计算:a*b
(2)多项式计算:求[12+2×(7-4)]÷32 的算数计算结果。
a./b a.\b
a.*b
a/b
a\b
a^3
a.^3
2.编写 M 文件绘制函数的图形。
【例 1-1】:绘制下面函数在[0 3]区间的图形。
0
x
3
x
sin
,
x
x
0
,
x
,6
x
)(
xy
3
MATLAB 程序:
x=-6:0.1:6;
leng=length(x);
for m=1:leng
if x(m)<=0
y(m)=sin(x(m));
elseif x(m)<=3
y(m)=x(m);
else
end
y(m)=-x(m)+6;
end
plot(x,y,'*'),grid;
练习:绘制下面的图形:(1)sin(1/t),-1
练习:(1)应用 Simulink 建立系统模型,并对系统的阶跃响应进行仿
真。
)(
sG
1
4
s
8
2
s
(2)建立一个简单的模型,用信号发生器产生一个幅值为 2V,
频率为 0.5Hz 的正弦波,并叠加一个 0.1V 的噪声信号,将叠加后的信号显
示在示波器上。
四、实验报告
1.写出实验步骤 1 的计算结果。
2.编写 M 文件,写出程序清单,并绘出实验步骤 2 的图形曲线。
3.画出建立的模型,输出实验结果。
4
实验 2 连续时间信号的产生与运算
一、实验目的
1.熟悉 MATLAB 软件的使用。
2.掌握连续时间信号表示方法与基本运算的实现。
3.掌握用 MATLAB 常用函数来产生信号并实现信号的可视化方法。
二、实验原理
时域信号是指将信号表示成时间的函数 f(t),信号的时间特性是指信
号的波形出现的先后、持续时间的长短、随时间变化的快慢等。
信号按照特性的不同,分为确定信号、周期信号、能量信号等。
常用的连续信号有直流信号、正弦信号、单位阶跃信号、单位门信号、
单位冲激信号、符号函数、单位斜坡函数、单位衰减指数信号、采样信号、
随机信号等。
信号的运算包括:信号的基本运算,包括加、减、乘、除等;信号的
时域变换,包括信号的平移、翻转、尺度变换等;两个信号的卷积运算等。
三、实验内容与方法
从严格意义上讲,MATLAB 并不能处理连续信号。在 MATLAB 中是用连
续信号在等间隔时间的样值来近似表示连续信号的。当取样时间间隔足够
小时,这些离散的样点就能够很好地近似出连续信号。
MATLAB 提供了许多函数用于常用函数的产生,如阶跃信号、脉冲信号、
指数信号、正弦信号和周期方波等,这些函数都是信号处理的基础。
1.连续信号的生成与可视化
f
(1)正弦交流信号
)2
t
sin(
实现
f
)(
t
)(
t
sin(
)
t
,MATLAB 程序如下:
t=-0:0.001:1;
y=sin(2*pi*t);
plot(t,y,'k');
xlabel('时间(t)');ylabel('幅值(f)');title('正弦交流信号');
(2)单位阶跃信号
f
)(
t
)(
t
5
MATLAB 程序如下:
t=-2:0.01:6;
u=(t>=0);
plot(t,u);
axis([-2,6,0,1.2])
xlabel('时间(t)');ylabel('幅值(f)');title('单位阶跃信号');
(3)复指数信号
f
)(
t
4
jt
e
3
t
MATLAB 程序如下:
t=0:0.01:3;
a=-3;b=4;
z=exp((a+i*b)*t);
subplot(221);
plot(t,imag(z)),title('实部');xlabel('时间');ylabel('幅值');
subplot(222);
plot(t,real(z)),title('虚部');xlabel('时间');ylabel('幅值');
subplot(223);
plot(t,abs(z)),title('模');xlabel('时间');ylabel('幅值');
subplot(224);
plot(t,angle(z)),title('相角');xlabel('时间');ylabel('幅值');
2.连续时间信号的基本运算
(1)加(减)、乘运算
实现两个信号的加法和乘法运算:要求两个信号运算的时间序列长度
相同。
MATLAB 程序如下:
t=0:0.01:2;
f1=exp(-3*t);
f2=0.2*sin(4*pi*t);
f3=f1+f2;
f4=f1.*f2;
subplot(221);plot(t,f1);title('f1(t)');
subplot(222);plot(t,f2);title('f2(t)');
subplot(223);plot(t,f3);title('f1+f2');
subplot(224);plot(t,f4);title('f1*f2');
(2)信号的反褶、移位、尺度变换
6
由 )(t
f 到
f
(
at
)(
ab
)0
步骤:
f
)(
t
移位
f
(
bt
尺度
)
f
a(
bt
反褶
)
f
a(
bt
)
【例 2-1】已知
f
)(
t
sin(
t
/)
t
。试通过反褶、移位、尺度变换由 )(t
f
的波形得到
f
2(
t
)3
的波形。
MATLAB 程序如下
syms t;
f=sym(‘sin(t)/t’);
f1=subs(f,t,t+3);
f2=subs(f1,t,2*t);
f3=sub(f2,t,-t);
subplot(2,2,1);ezplot(f,[-8,8]);grid on;
subplot(2,2,2);ezplot(f1,[-8,8]);grid on;
subplot(2,2,3);ezplot(f2,[-8,8]);grid on;
subplot(2,2,4);ezplot(f3,[-8,8]);grid on;
(3)连续信号的卷积运算
y
),( hx
conv
用于实现 x、h 两个序列的卷积,假定都是从 n=0 开始。
Y 序列的长度为 x、h 序列的长度之和再减 1.
【例 2-2】求两个方波信号的卷积。
MATLAB 程序如下:
y1=[ones(1,20),zeros(1,20)];
y2=[ones(1,10),zeros(1,20)];
y=conv(y1,y2);
n1=1:length(y1);
n2=1:length(y2);
L=length(y);
subplot(3,1,1);plot(n1,y1);axis([1 L 0 2]);
subplot(3,1,2);plot(n2,y2);axis([1 L 0 2]);
n=1:L;
subplot(3,1,3);plot(n,y),axis([1 L 0 20]);
【例 2-3】求两个指数信号的卷积。
7
MATLAB 程序如下:
t=0:0.01:1;
y1=exp(-6*t);
y2=exp(-3*t);
y=conv(y1,y2);
L1=length(y1);
L2=length(y2);
L=length(y);
subplot(3,1,1);plot(t,y1);
subplot(3,1,2);plot(t,y2);
t1=0:0.01:2;
subplot(3,1,3);plot(t1,y);
四、程序设计实验
1.编制程序,生成如下连续信号:
(
t
),3
cos
3
t
2sin
t
。
2.设计一个程序,选择一个信号 f(t),完成信号 f(t)到 f(2t+2)的转
化。
3.若
积满足:
f
f
)(
t
1
[*)(
t
1
sin(
f
2
t
),
)(
t
f
2
f
)(
t
(
t
)]
3
),
(
t
f
1
3
f
)(
t
)(
t
*
f
)(
t
)(
t
2
(
t
f
1
)(
t
)4
*
,证明卷
f
)(
t
3
五、实验预习要求
1.预习实验原理。
2.熟悉实验程序。
3.思考程序设计实验部分程序的编写。
六、实验报告要求
1.在 MATLAB 中输入程序,验证试验结果,并将实验结果存入指定存储
区域。
2.对于程序设计实验,要求通过对验证性实验的练习,自行编制完整
的实验程序,实现对信号的模拟,并得出实验结果。
3.在实验报告中写出完整的自编程序,并给出实验结果。
8