信号与系统MATLAB第一次实验报告
一、实验目的
1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。
2.学会运用MATLAB表示常用连续时间信号的方法
3.观察并熟悉一些信号的波形和特性。
4.学会运用MATLAB进行连续信号时移、反折和尺度变换。
5.学会运用MATLAB进行连续时间微分、积分运算。
6.学会运用MATLAB进行连续信号相加、相乘运算。
7.学会运用MATLAB进行连续信号的奇偶分解。
二、实验任务
将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。
三、实验内容
1.MATLAB软件基本运算入门。
1). MATLAB软件的数值计算:
算数运算
向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn为结束值。
矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。
举例:计算一个函数并绘制出在对应区间上对应的值。
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)
3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])
4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)
5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)
6).输出:grid on
举例1:
举例2:
3.matlab程序流程控制
1).for循环:for循环变量=初值:增量:终值
循环体
End
2).while循环结构:while 逻辑表达式
循环体
End
3).If分支:
(单分支表达式)
if 逻辑表达式
程序模块
End
(多分支结构的语法格式)
if 逻辑表达式1
程序模块1
Else if 逻辑表达式2
程序模块2
…
else 程序模块n
End
4).switch分支结构
Switch 表达式
Case 常量1
程序模块1
Case 常量2
程序模块2
……
用subplot函数 Otherwise 程序模块n
End
4.典型信号的MATLAB表示
1).实指数信号: y=k*exp(a*t)
举例:
2).正弦信号:y=k*sin(w*t+phi)
3).复指数信号:
举例:
4).抽样信号
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)实现信号的反折
7.连续时间信号的微分和积分运算
1).连续时间信号的微分运算:
语句格式:diff(function,’variable’,n)
Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数
2).连续时间信号的积分运算:
语句格式:int(function,’variable’,a,b)
Function:被积函数 variable:积分变量 a:积分下限 b:积分上限 (a&b默认是不定积分)
8.信号的相加与相乘运算
9.信号的奇偶分解
四、小结
这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。
五、作业
2-3-(1):
3.利用MATLAB命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号。
3.3-1.(1)
3.试用MATLAB命令出3-7所示的偶分量和奇分量。
信号与系统MATLAB第二次实验报告
一、实验目的
1.学会运用MATLAB实现连续时间信号的卷积。
2.学会运用MATLAB符号运算法求连续时间信号的卷积。
3.学会运用MATLAB数值计算法求连续时间信号的卷积。
二、实验任务
能够独立的编辑出卷积函数的matlab代码,并且能够输出对应卷积的图形。学会使用符号运算法和数值计算法计算卷积。
三、实验内容
1.MATLAB符号运算法求连续时间信号的卷积。
例4-2:
syms tao;
t=sym('t','positive');
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);
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);
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;
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是赋值上限
f1=uCT(t1)-uCT(t1-2); //f1函数的输入 uCT是u(t)函数
t2=t1;
f2=exp(-3*t2).*uCT(t2);
[t,f]=ctsconv(f1,f2,t1,t2,dt); //直接调用cstconv函数进行卷积的运算
//ctsconv( )函数括号里面要放进两个参与卷积的函数、自变量以及dt。
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);
四、实验小结
这一章节的实验着重练习卷积函数的编程,对于卷积函数的输出值以及输出图形这两类。
五、实验作业
作业:
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符号求解连续系统的零输入响应和零状态响应。
2.学会运用MATLAB数值求解连续系统的零状态响应。
3.学会运用MATLAB求解连续系统的冲激响应和阶跃响应。
4.学会运用MATLAB卷积积分求解系统的零状态响应。
二、实验任务
能够熟练地利用MATLAB软件输入一个微分方程随即输出其零输入状态、零响应状态、冲激响应、阶跃响应。分别利用符号求解法、数值求解法、卷积积分法。
三、实验内容
1.连续时间系统零输入响应和零状态响应的符号求解。
利用dsolve函数可以求解系统微分方程的零输入响应与零状态响应。可实现常系数微分方程的符号求解,格式:
Dsolve(‘eq1,eq2,…’,’cond1,cond2,…’);
微分或导数的输入是用Dy,D2y,D3y…来表示一阶导数、二阶导数…
参数cond1,cond2表示各初始条件或起始条件。
2.连续时间系统零状态响应的数值求解。
提供了对LTI系统的零状态响应进行数值仿真的函数lsim,该函数可以求解零初始条件下微分方程的数值解,其语句为:
Y=lsim(sys,f,t);
t :计算系统响应的时间抽样向量
f :系统的输入信号向量
sys :LTI系统模型,用来表示微分方程、差分方程或者状态方程
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)');
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论