MATLAB实验报告(1-4)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ezplot(yt,[0,2]);grid on
2.MATLAB数值计算法求连续时间信号的卷积。
1).可调用MATLAB中的conv()函数近似地数值求解连续信号的卷积积分。
2).例4-3:
dt=0.01;t=-1:dt:2.5;
f1=uCT(t)-uCT(t-2);
f2=exp(-3*t).*uCT(t);
5).矩形脉冲信号:y=square(t,DUTY)(width默认为1)
6).三角波脉冲信号:y=tripuls(t,width,skew)
(skew的取值在-1~+1之间,若skew取值为0则对称)
周期三角波信号或锯齿波:Y=sawtooth(t,width)
5.单位阶跃信号的MATLAB表示
6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折
三、实验内容
1.连续时间系统零输入响应和零状态响应的符号求解。
利用dsolve函数可以求解系统微分方程的零输入响应与零状态响应。可实现常系数微分方程的符号求解,格式:
Dsolve(‘eq1,eq2,…’,’cond1,cond2,…’);
微分或导数的输入是用Dy,D2y,D3y…来表示一阶导数、二阶导数…
矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。
举例:计算一个函数并绘制出在对应区间上对应的值。
xlabel('time(sec)'),ylabel('timeg(t)');title('阶跃响应')
4.利用卷积积分法求系统的零状态响应
四、实验小结
本次实验,学会使用软件求微分方程的求解方程,引入了两个新函数impulse求冲激响应和step求阶跃响应,同时注意cond函数的使用。一般在程序的后面会有simplify(f),f即为输出的函数,如果yt=yzi+yzs,若想要输出yt,则也可以表示为yt=simplify(yzi+yzs).
参数cond1,cond2表示各初始条件或起始条件。
2.连续时间系统零状态响应的数值求解。
提供了对LTI系统的零状态响应进行数值仿真的函数lsim,该函数可以求解零初始条件下微分方程的数值解,其语句为:
Y=lsim(sys,f,t);
t:计算系统响应的时间抽样向量
f:系统的输入信号向量
sys:LTI系统模型,用来表示微分方程、差分方程或者状态方程
2.学会运用MATLAB数值求解连续系统的零状态响应。
3.学会运用MATLAB求解连续系统的冲激响应和阶跃响应。
4.学会运用MATLAB卷积积分求解系统的零状态响应。
二、实验任务
能够熟练地利用MATLAB软件输入一个微分方程随即输出其零输入状态、零响应状态、冲激响应、阶跃响应。分别利用符号求解法、数值求解法、卷积积分法。
3.学会运用MATLAB数值计算法求连续时间信号的卷积。
二、实验任务
能够独立的编辑出卷积函数的matlab代码,并且能够输出对应卷积的图形。学会使用符号运算法和数值计算法计算卷积。
三、实验内容
1.MATLAB符号运算法求连续时间信号的卷积。
例4-2:
syms tao;
t=sym('t','positive');
sys=tf([1,16],[1,2,32]);
h=impulse(sys,t);
g=step(sys,t);
subplot(211);plot(t,h),grid on
xlabel('time(sec)'),ylabel('time(h(t)');title('冲激响应');
subplot(212);plot(t,g),grid on
Function:被积函数variable:积分变量 a:积分下限 b:积分上限 (a&b默认是不定积分)
8.信号的相加与相乘运算
9.信号的奇偶分解
四、小结
这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。
五、作业
2-3-(1):
3).例4-4:
dt=0.01;t1=-0.5:dt:2.5;
f1=uCT(t1)-uCT(t1-1);
t2=t1;
f2=uCT(t2)-uCT(t2-1);
[t,f]=ctsconv(f1,f2,t1,t2,dt);
四、实验小结
这一章节的实验着重练习卷积函数的编程,对于卷积函数的输出值以及输出图形这两类。
3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])
4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)
5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)
6).输出:grid on
举例1:
举例2:
3.matlab程序流程控制
f=conv(f1,f2)*dt;n=length(f);tt=(0:n-1)*dt-2;
subplot(221);plot(t,f1);
axis([-1,2.5,-1,2]);title('f1(t)');xlabel('t');grid on;
subplot(222);plot(t,f2);
axis([-1,3,-1,2]);title('f2(t)');xlabel('t');grid on;
sys的格式:sys=tf(b,a)
例题:
ts=0;te=5;dt=0.01;
sys=tf([6],[1,5,6]);
t=ts:dt:te;
f=10*sin(2*pi*t).*uCT(t);
y=lsim(sys,f,t);
plot(t,y);grid on
xlabel('time(sec)'),ylabel('y(t)');
subplot(313);ezplot(yt,[0,8]);title('完全响应');grid on
第四次MATLAB实验报告
一、实验目的
1.学会运用MATLAB分析傅里叶级数展开,深入理解傅里叶级数的物理含义。
2.学会运用MATLAB分析周期信号的频谱特性。
3.学会运用MATLAB求连续时间信号的傅里叶变换。
3.利用MATLAB命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号。
3.3-1.(1)
3.试用MATLAB命令出3-7所示的偶分量和奇分量。
信号与系统MATLAB第二次实验报告
一、实验目的
1.学会运用MATLAB实现连续时间信号的卷积。
2.学会运用MATLAB符号运算法求连续时间信号的卷积。
五、实验作业
作业:
dt=0.01;t1=0:dt:3;
f1=uCT(t1)+2*uCT(t1-1)-2*uCT(t1-2)-uCT(t1-3);
t2=t1;
f2=uCT(t2)-uCT(t2-2);
[t,f]=ctsconv(f1,f2,t1,t2,dt);
第三次实验报告
一、实验目的
1.学会运用MATLAB符号求解连续系统的零输入响应和零状态响应。
五、实验作业
T1.(1):
ts=0;te=5;dt=0.01;
sys=tf([1],[1,4,3]);
t=ts:dt:te;
f=1*uCT(t);
y=lsim(sys,f,t);
plot(t,y),grid on
xlabel('time(sec)'),ylabel('y(t)')
title('零状态响应')
yzs=dsolve(eq1,eq2,cond);yzs=simplify(yzs.y)
yt=simplify(yzi+yzs)
subplot(311);ezplot(yzi,[0,8]);title('零输入响应');grid on
subplot(312);ezplot(yzs,[0,8]);title('零状态响应');grid on
6.学会运用MATLAB进行连续信号相加、相乘运算。
7.学会运用MATLAB进行连续信号的奇偶分解。
二、实验任务
将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。
三、实验内容
1.MATLAB软件基本运算入门。
1).MATLAB软件的数值计算:
算数运算
向量运算:1.向量元素要用”[]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn为结束值。
subplot(212);plot(tt,f);
title('f(t)=f1(t)*f2(t)');xlabel('t');grid on; //稍复杂
可以利用ctsconv函数求,简单许多。
//以下程序和上面程序出来的图一样
//简化了大部分编程内容
dt=0.01;t1=-1:dt:2.5;//-1是赋值下限,2.5是赋值上限
title('零状态响应')
3.连续时间系统冲激响应和阶跃响应的求解
对于连续LTI系统的冲激响应和阶跃响应的数值解,可分别用函数impulse和step来求解。语句分别是:
Y=impulse(sys,t)
Y=step(sys,t)
t:表示计算系统响应的时间抽样点向量,sys表示LTI系统
例题:
t=0:0.0001:4;
xt1=sym('Heaviside(t)-Heaviside(t-1)');
xt2=sym('Heaviside(t)-Heaviside(t-1)');
xt_tao=subs(xt1,t,tao)*subs(xt2,t,t-tao);
yt=int(xt_tao,tao,0,t);
yt=simplify(yt);
T2.(1):
eq='D2y+3*Dy+2*y=0';
cond='y(0)=1,Dy(0)=2';
yzi=dsolve(eq,cond);yzi=simplify(yzi)
eq1='D2y+3*Dy+2*y=Dx+3*x';
eq2='x=exp(-3*t)*Heaviside(t)';
cond='y(-0.01)=0,Dy(-0.01)=0';
4).switch分支结构
Switch表达式
Case常量1
程序模块1
Case 常量2
程序模块2
……
Otherwise 程序模块n
End
4.典型信号的MATLAB表示
1).实指数信号: y=k*exp(a*t)
举例:
2).正弦信号:y=k*sin(w*t+phi)
3).复指数信号:
举例:
4).抽样信号
2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”
2.MATLAB软件简单二维图形绘制
1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)
2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)
f1=uCT(t1)-uCT(t1-2);//f1函数的输入uCT是u(t)函数
t来自百度文库=t1;
f2=exp(-3*t2).*uCT(t2);
[t,f]=ctsconv(f1,f2,t1,t2,dt);//直接调用cstconv函数进行卷积的运算
//ctsconv()函数括号里面要放进两个参与卷积的函数、自变量以及dt。
7.连续时间信号的微分和积分运算
1).连续时间信号的微分运算:
语句格式:diff(function,’variable’,n)
Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数
2).连续时间信号的积分运算:
语句格式:int(function,’variable’,a,b)
信号与系统MATLAB第一次实验报告
一、实验目的
1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。
2.学会运用MATLAB表示常用连续时间信号的方法
3.观察并熟悉一些信号的波形和特性。
4.学会运用MATLAB进行连续信号时移、反折和尺度变换。
5.学会运用MATLAB进行连续时间微分、积分运算。
1).for循环:for循环变量=初值:增量:终值
循环体
End
2).while循环结构:while逻辑表达式
循环体
End
3).If分支:
(单分支表达式)
if 逻辑表达式
程序模块
End
(多分支结构的语法格式)
if 逻辑表达式1
程序模块1
Else if 逻辑表达式2
程序模块2
…
else 程序模块n
End
2.MATLAB数值计算法求连续时间信号的卷积。
1).可调用MATLAB中的conv()函数近似地数值求解连续信号的卷积积分。
2).例4-3:
dt=0.01;t=-1:dt:2.5;
f1=uCT(t)-uCT(t-2);
f2=exp(-3*t).*uCT(t);
5).矩形脉冲信号:y=square(t,DUTY)(width默认为1)
6).三角波脉冲信号:y=tripuls(t,width,skew)
(skew的取值在-1~+1之间,若skew取值为0则对称)
周期三角波信号或锯齿波:Y=sawtooth(t,width)
5.单位阶跃信号的MATLAB表示
6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折
三、实验内容
1.连续时间系统零输入响应和零状态响应的符号求解。
利用dsolve函数可以求解系统微分方程的零输入响应与零状态响应。可实现常系数微分方程的符号求解,格式:
Dsolve(‘eq1,eq2,…’,’cond1,cond2,…’);
微分或导数的输入是用Dy,D2y,D3y…来表示一阶导数、二阶导数…
矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。
举例:计算一个函数并绘制出在对应区间上对应的值。
xlabel('time(sec)'),ylabel('timeg(t)');title('阶跃响应')
4.利用卷积积分法求系统的零状态响应
四、实验小结
本次实验,学会使用软件求微分方程的求解方程,引入了两个新函数impulse求冲激响应和step求阶跃响应,同时注意cond函数的使用。一般在程序的后面会有simplify(f),f即为输出的函数,如果yt=yzi+yzs,若想要输出yt,则也可以表示为yt=simplify(yzi+yzs).
参数cond1,cond2表示各初始条件或起始条件。
2.连续时间系统零状态响应的数值求解。
提供了对LTI系统的零状态响应进行数值仿真的函数lsim,该函数可以求解零初始条件下微分方程的数值解,其语句为:
Y=lsim(sys,f,t);
t:计算系统响应的时间抽样向量
f:系统的输入信号向量
sys:LTI系统模型,用来表示微分方程、差分方程或者状态方程
2.学会运用MATLAB数值求解连续系统的零状态响应。
3.学会运用MATLAB求解连续系统的冲激响应和阶跃响应。
4.学会运用MATLAB卷积积分求解系统的零状态响应。
二、实验任务
能够熟练地利用MATLAB软件输入一个微分方程随即输出其零输入状态、零响应状态、冲激响应、阶跃响应。分别利用符号求解法、数值求解法、卷积积分法。
3.学会运用MATLAB数值计算法求连续时间信号的卷积。
二、实验任务
能够独立的编辑出卷积函数的matlab代码,并且能够输出对应卷积的图形。学会使用符号运算法和数值计算法计算卷积。
三、实验内容
1.MATLAB符号运算法求连续时间信号的卷积。
例4-2:
syms tao;
t=sym('t','positive');
sys=tf([1,16],[1,2,32]);
h=impulse(sys,t);
g=step(sys,t);
subplot(211);plot(t,h),grid on
xlabel('time(sec)'),ylabel('time(h(t)');title('冲激响应');
subplot(212);plot(t,g),grid on
Function:被积函数variable:积分变量 a:积分下限 b:积分上限 (a&b默认是不定积分)
8.信号的相加与相乘运算
9.信号的奇偶分解
四、小结
这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。
五、作业
2-3-(1):
3).例4-4:
dt=0.01;t1=-0.5:dt:2.5;
f1=uCT(t1)-uCT(t1-1);
t2=t1;
f2=uCT(t2)-uCT(t2-1);
[t,f]=ctsconv(f1,f2,t1,t2,dt);
四、实验小结
这一章节的实验着重练习卷积函数的编程,对于卷积函数的输出值以及输出图形这两类。
3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])
4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)
5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)
6).输出:grid on
举例1:
举例2:
3.matlab程序流程控制
f=conv(f1,f2)*dt;n=length(f);tt=(0:n-1)*dt-2;
subplot(221);plot(t,f1);
axis([-1,2.5,-1,2]);title('f1(t)');xlabel('t');grid on;
subplot(222);plot(t,f2);
axis([-1,3,-1,2]);title('f2(t)');xlabel('t');grid on;
sys的格式:sys=tf(b,a)
例题:
ts=0;te=5;dt=0.01;
sys=tf([6],[1,5,6]);
t=ts:dt:te;
f=10*sin(2*pi*t).*uCT(t);
y=lsim(sys,f,t);
plot(t,y);grid on
xlabel('time(sec)'),ylabel('y(t)');
subplot(313);ezplot(yt,[0,8]);title('完全响应');grid on
第四次MATLAB实验报告
一、实验目的
1.学会运用MATLAB分析傅里叶级数展开,深入理解傅里叶级数的物理含义。
2.学会运用MATLAB分析周期信号的频谱特性。
3.学会运用MATLAB求连续时间信号的傅里叶变换。
3.利用MATLAB命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号。
3.3-1.(1)
3.试用MATLAB命令出3-7所示的偶分量和奇分量。
信号与系统MATLAB第二次实验报告
一、实验目的
1.学会运用MATLAB实现连续时间信号的卷积。
2.学会运用MATLAB符号运算法求连续时间信号的卷积。
五、实验作业
作业:
dt=0.01;t1=0:dt:3;
f1=uCT(t1)+2*uCT(t1-1)-2*uCT(t1-2)-uCT(t1-3);
t2=t1;
f2=uCT(t2)-uCT(t2-2);
[t,f]=ctsconv(f1,f2,t1,t2,dt);
第三次实验报告
一、实验目的
1.学会运用MATLAB符号求解连续系统的零输入响应和零状态响应。
五、实验作业
T1.(1):
ts=0;te=5;dt=0.01;
sys=tf([1],[1,4,3]);
t=ts:dt:te;
f=1*uCT(t);
y=lsim(sys,f,t);
plot(t,y),grid on
xlabel('time(sec)'),ylabel('y(t)')
title('零状态响应')
yzs=dsolve(eq1,eq2,cond);yzs=simplify(yzs.y)
yt=simplify(yzi+yzs)
subplot(311);ezplot(yzi,[0,8]);title('零输入响应');grid on
subplot(312);ezplot(yzs,[0,8]);title('零状态响应');grid on
6.学会运用MATLAB进行连续信号相加、相乘运算。
7.学会运用MATLAB进行连续信号的奇偶分解。
二、实验任务
将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。
三、实验内容
1.MATLAB软件基本运算入门。
1).MATLAB软件的数值计算:
算数运算
向量运算:1.向量元素要用”[]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn为结束值。
subplot(212);plot(tt,f);
title('f(t)=f1(t)*f2(t)');xlabel('t');grid on; //稍复杂
可以利用ctsconv函数求,简单许多。
//以下程序和上面程序出来的图一样
//简化了大部分编程内容
dt=0.01;t1=-1:dt:2.5;//-1是赋值下限,2.5是赋值上限
title('零状态响应')
3.连续时间系统冲激响应和阶跃响应的求解
对于连续LTI系统的冲激响应和阶跃响应的数值解,可分别用函数impulse和step来求解。语句分别是:
Y=impulse(sys,t)
Y=step(sys,t)
t:表示计算系统响应的时间抽样点向量,sys表示LTI系统
例题:
t=0:0.0001:4;
xt1=sym('Heaviside(t)-Heaviside(t-1)');
xt2=sym('Heaviside(t)-Heaviside(t-1)');
xt_tao=subs(xt1,t,tao)*subs(xt2,t,t-tao);
yt=int(xt_tao,tao,0,t);
yt=simplify(yt);
T2.(1):
eq='D2y+3*Dy+2*y=0';
cond='y(0)=1,Dy(0)=2';
yzi=dsolve(eq,cond);yzi=simplify(yzi)
eq1='D2y+3*Dy+2*y=Dx+3*x';
eq2='x=exp(-3*t)*Heaviside(t)';
cond='y(-0.01)=0,Dy(-0.01)=0';
4).switch分支结构
Switch表达式
Case常量1
程序模块1
Case 常量2
程序模块2
……
Otherwise 程序模块n
End
4.典型信号的MATLAB表示
1).实指数信号: y=k*exp(a*t)
举例:
2).正弦信号:y=k*sin(w*t+phi)
3).复指数信号:
举例:
4).抽样信号
2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”
2.MATLAB软件简单二维图形绘制
1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)
2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)
f1=uCT(t1)-uCT(t1-2);//f1函数的输入uCT是u(t)函数
t来自百度文库=t1;
f2=exp(-3*t2).*uCT(t2);
[t,f]=ctsconv(f1,f2,t1,t2,dt);//直接调用cstconv函数进行卷积的运算
//ctsconv()函数括号里面要放进两个参与卷积的函数、自变量以及dt。
7.连续时间信号的微分和积分运算
1).连续时间信号的微分运算:
语句格式:diff(function,’variable’,n)
Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数
2).连续时间信号的积分运算:
语句格式:int(function,’variable’,a,b)
信号与系统MATLAB第一次实验报告
一、实验目的
1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。
2.学会运用MATLAB表示常用连续时间信号的方法
3.观察并熟悉一些信号的波形和特性。
4.学会运用MATLAB进行连续信号时移、反折和尺度变换。
5.学会运用MATLAB进行连续时间微分、积分运算。
1).for循环:for循环变量=初值:增量:终值
循环体
End
2).while循环结构:while逻辑表达式
循环体
End
3).If分支:
(单分支表达式)
if 逻辑表达式
程序模块
End
(多分支结构的语法格式)
if 逻辑表达式1
程序模块1
Else if 逻辑表达式2
程序模块2
…
else 程序模块n
End