信号与系统实验二 信号运算的MATLAB 实验

2022-07-20 14:03:43 浏览数 (1)

目录

【实验目的】

【实验原理】

【实验设备】

【实验内容】

1.实验教程p15 练习二,1

 2. 用diff 和int 各画出一个函数x(t)(自定),和x(t)的导数与积分图。

【实验感悟】


【实验目的】

  1. 学会运用MATLAB进行信号时移、反折和尺度变换。
  2. 学会运用MATLAB进行连续信号微分、积分运算。
  3. 学会运用MATLAB进行连续信号相加、相乘运算。
  4. 学会运用MATLAB进行连续信号的奇偶分解。

【实验原理】

1.连续时间信号的微分运算

对于连续时间信号,其微分运算如果用符号表达式来表示,则用diff命令函数可完成求导运算,其语句格式为diff( function,' var ',n),其中, function表示需要进行求导运算的函数﹐或者被赋值的符号表达式;var为求导运算的独立变量;n为求导阶数﹐默认值为求一阶导数。

2.连续时间信号的积分运算

对于连续时间信号,其积分运算如果用符号表达式来表示,则用int命令函数可完成积分运算,其语句格式为int( function,’ var ’,a ,b),其中, function表示需要进行积分运算的函数﹐或者被赋值的符号表达式; var为积分变量;a为积分下限,b为积分上限;α和b默认时则求不定积分。

【实验设备】

  1. 计算机
  2. MATLAB软件

【实验内容】

1.实验教程p15 练习二,1

试用MATLAB命令画出下列信号的波形图。

代码语言:javascript复制
 t = -10:0.01:10;%设置自变量范围及精度

y =3*t.^2 t 5;%函数表达式

plot(t,y),grid on;%绘制图像并设置网格线

axis([-10,10,-50,350]);%设置坐标轴范围

xlabel('-10.0 leq t leq 10.0');%设置横轴标签

ylabel('y');%设置纵轴标签

title(' y = 3t^2 t 5')%设置图像名称
代码语言:javascript复制
t = -10:0.01:10;%设置自变量范围及精度

y =t.*sin(5*pi*t).*heaviside(t);%函数表达式

plot(t,y),grid on;%绘制图像并设置网格线

axis([-10,10,-20,20]);%设置坐标轴范围

xlabel('-10.0 leq t leq 10.0');%设置横轴标签

ylabel('y');%设置纵轴标签

title(' y = tsin5πt·u(t)')%设置图像名称
代码语言:javascript复制
t = -5:0.01:5;%设置自变量范围及精度

f =exp(-t).*sin(10*pi*t) exp(-t/2).*sin(9*pi*t);%函数表达式

plot(t,f),grid on;%绘制图像并设置网格线

axis([-5,5,-80,80]);%设置坐标轴范围

xlabel('-5.0 leq t leq 5.0');%设置横轴标签

ylabel('f');%设置纵轴标签

title(' f=e^(-t)  sin( 10πt) e^(-t/2)  sin( 9πt)')%设置图像名称

 2. 用diff 和int 各画出一个函数x(t)(自定),和x(t)的导数与积分图。

解:假设自定函数为y=cost

可以画出其函数图像:

代码语言:javascript复制
syms  x y;%定义变量x,y

y=cos(x);%定义函数

subplot(3,1,1),ezplot(y),grid on%绘制图像

%其导函数可求:

dy=diff(y,1);%对函数求一阶导

subplot(3,1,2),ezplot(dy),grid on %绘制图像

%对该函数进行积分:

p=int(y);%以x为自变量对函数积分

subplot(3,1,3),ezplot(p),grid on%绘图命令

【实验感悟】

通过这次实验,我学会了一些复杂表达式的写法,在最初看到复杂表达式时,我总是会没有思路,通过这次的实验,我很好地克服了这个心理,通过对于函数表达式的分块再一部分一部分写表达式,可以保证逻辑上的清晰,树立了很大的信心。除此以外,我还学会了调用matlab中的一些函数,例如阶跃函数的命令heaviside等等。通过第二个实验题目我也学会了matlab中有关于微分和积分的命令diff和int,熟悉了他们的用法,也通过自定义函数y=cost验证了其正确性。

此外,函数表达式中也有老师强调过的关于“*”和“.*”的知识点,在我提前预习实验时,表达式中有些用“*”总是语法错误,我当时百思不得其解,通过结合网上查找资料和老师讲授的方式,我明白了二者的不同用法,在进行矩阵之间的运算时“.*”和“*”的意义就有所不同。假设a,b表示两个矩阵,a*b表示矩阵a与矩阵b进行矩阵相乘,a.*b表示矩阵a中的元素与矩阵b中的元素按位置依次相乘,得到的结果将作为新矩阵中相同位置的元素。通过资料查找,我还找到不只是乘这种运算,其他的矩阵之间的运算也有相似的性质,例如“./”等等。总而言之,这次实验我收获颇丰,在逐渐熟练matlab操作的同时也对于信号有了进一步的理解。

0 人点赞