中科大信号与系统 实验报告5
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号与系统实验报告5
学号:
姓名:
信息科学技术学院
电子科学与技术系
一、实验目的
1. 熟悉拉普拉斯变换的原理及性质
2. 熟悉常见信号的拉氏变换
3. 了解正/反拉氏变换的MATLAB 实现方法和利用MATLAB 绘制三维曲面图的方法
4. 了解信号的零极点分布对信号拉氏变换曲面图的影响及续信号的拉氏变换与傅氏变换的关系
二、实验原理
拉普拉斯变换是分析连续时间信号的重要手段。
对于当t ∞时信号的幅值
不衰减的时间信号,即在f(t)不满足绝对可积的条件时,其傅里叶变换可能不存在,但此时可以用拉氏变换法来分析它们。
连续时间信号f(t)的单边拉普拉斯变换F(s)的定义为:
0()()st F s f t e dt ∞
-=⎰
拉氏反变换的定义为:
1
()()2j st j f t F s e ds j σω
σωπ+-=
⎰
显然,上式中F(s)是复变量s 的复变函数,为了便于理解和分析F(s)随s 的变化规律,我们将F(s)写成模及相位的形式:()()()j s F s F s e ϕ=。
其中,|F(s)|为复信号F(s)的模,而()s ϕ为F(s)的相位。
由于复变量s=σ+jω,如果以σ为横坐标(实轴),jω为纵坐标(虚轴),这样,复变量s 就成为一个复平面,我们称之为s 平面。
从三维几何空间的角度来看,|()|F s 和()s ϕ分别对应着复平面上的两个曲面,如果绘出它们的三维曲面图,就可以直观地分析连续信号的拉氏变换F(s)随复变量s 的变化情况,在MATLAB 语言中有专门对信号进行正反拉氏变换的函数,并且利用 MATLAB 的三维绘图功能很容易画出漂亮的三维曲面图。
MATLAB 中实现拉氏变换的函数
F=laplace( f ) 对f(t)进行拉氏变换,其结果为F(s)
F=laplace (f,v) 对f(t)进行拉氏变换,其结果为F(v)
F=laplace ( f,u,v) 对f(u)进行拉氏变换,其结果为F(v)
拉氏反变换
f=ilaplace ( F ) 对F(s)进行拉氏反变换,其结果为f(t)
f=ilaplace(F,u) 对F(w)进行拉氏反变换,其结果为f(u)
f=ilaplace(F,v,u ) 对F(v)进行拉氏反变换,其结果为f(u)
注意事项
在调用函数laplace( )及ilaplace( )之前,要用syms 命令对所有需要用到的变量(如t,u,v,w )等进行说明,即要将这些变量说明成符号变量。
对laplace( )中的f 及ilaplace( )中的F 也要用符号定义符sym 将其说明为符号表达式。
具体方法参见第一部分第四章第三节。
例①:求出连续时间信号 ()sin()()f t t t ε=的拉氏变换式,并画出图形 求函数拉氏变换程序如下:
syms t s %定义符号变量
ft=sym('sin(t)*Heaviside(t)'); %定义时间函数f(t)的表达式 Fs=laplace(ft) %求f(t)的拉氏变换式F(s)
运行结果:Fs =
1/(s^2+1)
绘制拉氏变换三维曲面图的方法有2种: 方法一:syms x y s
s=x+i*y; %产生复变量s
FFs=1/(s^2+1); %将F(s)表示成复变函数形式 FFss=abs(FFs); %求出F(s)的模
ezmesh(FFss); %画出拉氏变换的网格曲面图 ezsurf(FFss); %画出带阴影效果的三维曲面图 colormap(hsv); %设置图形中多条曲线的颜色顺序
方法二:figure(2) %打开另一个图形窗口
x1=-5: 0.1:5; %设置s 平面的横坐标范围 y1=-5: 0.1: 5; %设置s 平面的纵坐标范围 [x,y]=meshgrid(x1,y1); %产生矩阵
s=x+i*y; %产生矩阵s 来表示所绘制曲面图的复平面区域, %其中矩阵s 包含了复平面-6<σ<6,-6<j ω<6范围内%以间隔0.01取样的所有样点
fs=1./(s.*s+1); %计算拉氏变换在复平面上的样点值 ffs=abs(fs); %求幅值
mesh(x,y,ffs); %绘制拉氏变换的三维网格曲面图 surf(x,y,ffs); %绘制带阴影效果的三维曲面图 axis([-5,5,-5,5,0,8]); %设置坐标显示范围
colormap(hsv); %设置图形中多条曲线的颜色顺序
说明:从拉普拉斯变换的三维曲面图中可以看出,曲面图上有象山峰一样突出的尖峰,这些峰值点在s 平面的对应点就是信号拉氏变换的极点位置。
而曲面图上的谷点则对应着拉氏变换的零点位置。
因此,信号拉氏变换的零极点位置决定了其曲面图上峰点和谷点位置。
例②:求出函数2
1
()1
F s s =+的拉氏反变换式 MATLAB 程序如下:
syms t s %定义符号变量
Fs =sym('1/(1+s^2)'); %定义F(s)的表达式 ft=ilaplace(Fs) %求F(s)的拉氏反变换式f(t)
运行结果:
ft= sin(t)
注意事项
在MATLAB 中,求拉氏反变换的函数ilaplace(),在默认情况下是指拉氏右变换,其运行结果是单边函数。
如例②中的运行结果为ft= sin(t),实际上是指ft= sin(t)。
三、实验内容
1. 求出下列函数的拉氏变换式,并用MATLAB 绘制拉氏变换在s 平面的三维曲面图
【实验步骤】: 1. 通过符号函数构造ft
2. 利用库函数laplace 进行拉普拉斯变换
3. 使用fmesh 绘制三维图像 【实验原理】:
1. 利用fmesh(Fs)可以画出拉氏变换的网格曲面图
2. 利用fsurf(Fss)可以画出带阴影效果的三维曲面图
3. 利用colormap(hsv)可以设置图形中多条曲线的颜色顺序
③
3()sin()()t
f t e t t ε-=
【理论值计算】:Fs=
=1/((s + 3)^2 + 1)
【程序如下】: clear; syms t s x y;
s=x+1i*y; %产生复变量s
ft=exp(-3*t)*sin(t)*heaviside(t); Fs=laplace(ft,t,s);
Fss=abs(Fs); %求出F(s)的模
fmesh(Fss); %画出拉氏变换的网格曲面图 fsurf(Fss); %画出带阴影效果的三维曲面图 colormap(hsv); %设置图形中多条曲线的颜色顺序
【绘图如下】:
④ []()sin()()(2)f t t t t πεε=--
【理论值计算】:Fs=
-(pi - pi*exp(2*s))/(pi^2*exp(2*s) + s^2*exp(2*s))
【程序如下】: clear; syms t s x y;
s=x+1i*y; %产生复变量s
ft=sin(pi*t)*(heaviside(t)-heaviside(t-2)); Fs=laplace(ft,t,s)
Fss=abs(Fs); %求出F(s)的模
fmesh(Fss); %画出拉氏变换的网格曲面图 fsurf(Fss); %画出带阴影效果的三维曲面图 colormap(hsv); %设置图形中多条曲线的颜色顺序 【绘图如下】:
2. 已知信号的拉氏变换如下,请用MATLAB 画出其三维曲面图,观察其图形特点,说出函数零极点位置与其对应曲面图的关系,并且求出它们所对应的原时间函数f (t),
①22(3)(3)
()(5)(16)s s F s s s -+=-+
【理论值计算】:ft=(50*cos(4*t))/41 + (32*exp(5*t))/41 + (125*sin(4*t))/82
【零极点分析】:零点是:3、-3,极点是:5、4i 、-4i ,零点处对应曲线最低点,极点处对应曲线的极高峰。
【程序如下】:
clear; syms t s x y;
s=x+1i*y; %产生复变量s
Fs=2*(s+3)*(s-3)/((s-5)*(s*s+16)); Fss=abs(Fs); %求出F(s)的模
fmesh(Fss); %画出拉氏变换的网格曲面图
fsurf(Fss); %画出带阴影效果的三维曲面图colormap(hsv); %设置图形中多条曲线的颜色顺序Fs=2*(s+3)*(s-3)/((s-5)*(s*s+16));
ft=ilaplace(Fs,s,t);%求ft
【画图如下】:
②
(1)(3) ()
(2)(5)
s s
F s
s s s
++
=
++
【理论值计算】:ft=exp(-2*t)/6 + (8*exp(-5*t))/15 + 3/10
【零极点计算】:-3、-1,极点是:0、-2、-5,零点处对应曲线最低点,极点处对应曲线的极高峰。
【程序如下】:
clear;
syms t s x y;
Fs=(s+3)*(s+1)/((s+5)*(s+2)*s);
ft=ilaplace(Fs,s,t); %生成ft
s=x+1i*y; %产生复变量s
Fs=(s+3)*(s+1)/((s+5)*(s+2)*s);
Fss=abs(Fs); %求出F(s)的模
fmesh(Fss); %画出拉氏变换的网格曲面图 fsurf(Fss); %画出带阴影效果的三维曲面图 colormap(hsv); %设置图形中多条曲线的颜色顺序
【绘图如下】:
3. 已知连续时间信号
[]()s(2)()(4)f t co t t t πεε=--,请分别求出该信号的拉氏变换()F s 及其
傅里叶变换()F j ω,并用MATLAB 绘出()
F s 的曲面图及振幅频谱
()
F j ω的波形,观察
()
F s 的曲
面图在虚轴上的剖面图,并将它与信号的振幅频谱曲线进行比较,分析两者的对应关系。
【理论值计算】:Fs=-(s - s*exp(4*s))/(4*pi^2*exp(4*s) + s^2*exp(4*s)) F(jw)=-(jw - jw*exp(w*4j))/(4*pi^2*exp(w*4j) - w^2*exp(w*4j))
【实验原理】:
1. axis 函数可以改变绘制图形的坐标轴范围
2. MATLAB 提供了设置视点的函数view 。
az 是azimuth (方位角)的缩写,EL 是elevation (仰角)的缩写。
它们均以度为单位。
系统缺省的视点定义为方位角-37.5°,仰角30°。
当x轴平行观察者身体,y轴垂直于观察者身体时,az=0;以此点为起点,绕着z轴顺时针运动,az为正,逆时针为负。
EL 为观察者眼睛与xy平面形成的角度。
当观察者的眼睛在xy平面上时,el=0; 向上el为正,向下为负。
MATLAB允许用户从各种不同的角度去观察一个已存在的三维图形。
从用户自己定义的视角观察三维图用命令view,这一命令的使用格式为view(az,el)
命令中的两个参数,az 和el 分别表示方位角和俯视角。
方位角相当于球坐标中的经度,俯视角相当于球坐标中的纬度。
【立体图和傅立叶变换图程序如下】:
clear;
syms t s x y w;
s=x+1i*y; %产生复变量s
ft=cos(2*pi*t)*(heaviside(t)-heaviside(t-4));
Fs=laplace(ft,t,s);
Fss=abs(Fs); %求出F(s)的模
figure(1);
fmesh(Fss); %画出拉氏变换的网格曲面图
Fw=fourier(ft,t,w);
Fww=abs(Fw); %求出F(s)的模
figure(2);
fplot(Fww); %画出拉氏变换的网格曲面图
【截面图程序如下】:
clear;
syms s x y;
s=x+1i*y;
Fs=-(s - s*exp(4*s))/(4*pi^2*exp(4*s) + s^2*exp(4*s));
Fss=abs(Fs); %求出F(s)的模
figure(1);
fmesh(Fss); %画出拉氏变换的网格曲面图
fsurf(Fss);%view(90,0);
axis([-0.0001,0.0001,-7,7,0,2]);
view(90,0);【绘图如下】:
1.立体图
2.f(jw)的傅立叶变换图
3.立体图的截面图
【实验结论】:对abs(F(s))的虚轴进行截面分析可知,abs(F(s))的虚轴截面就是abs(F(jw)).
四、实验收获
1. 熟悉拉普拉斯变换的matlab实现
2. 熟悉常见信号的拉氏变换,及其理论计算
3. 了解了正/反拉氏变换的MATLAB实现方法和利用MATLAB绘制三维曲面图的方法
4. 了解l信号的零极点分布对信号拉氏变换曲面图的影响及续信号的拉氏变换与傅氏变换的关系
【matlab中的各种三维图像绘制拓展知识】:
一、三维函数图:
x=cos(t), y=sin(t), z=t %0≤t ≤4*pi
t=0:0.001:4*pi; %t的取值范围
x=cos(t);y=sin(t);z=t;
plot3(x,y,z)
xlabel('x轴'),ylabel('y轴'),zlabel('z轴') %为坐标轴加上标签
grid on %为图像加上网格
三维函数的绘制一般使用plot3()函数,其三个基本参数是三个参数函数,第四个参数可以改变函数的颜色,或者虚实线,如plot3(x, y, z, 'r:'),其绘制的函数图像则为红色虚线的,上述脚本的运行结果如下:
二、三维饼图:
pie3([43689])
直接调用上述脚本既可以绘制出一个饼图,如果这样调用pie3([4 3 6 8 9], [0 0 1 0 0]),则在第二个向量中值为1的部分会在饼图中以突出的方式显示,上述脚本运行结果如下:
三、绘制空间多边形:
y1=rand(3,5);
y2=rand(3,5);
y3=rand(3,5);
fill3(y1,y2,y3,'m');
hold on;
plot3(y1,y2,y3,'yo')
首先rand(3, 5)产生了一个3 * 5 的随机数矩阵,上述脚本中先产生了y1,y2,y3三个3 * 5 的随机矩阵,其中
A =( y1[0][0], y2[0][0],y3[0][0] ),
B = ( y1[1][0], y2[1][0], y3[1][0] ),
C = ( y1[2][0], y2[2][0], y3[2][0] )
分别是第一个三角形的三个顶点,其他以此类推。
所以fill3(y1,y2,y3,'m'); 共产生了5个三角形,并以粉色填充,plot3(y1,y2,y3,'yo')语句是在每个三角形的顶点加上黄色的小圈,而由于之前加上了hold on; 所以前面的粉色三角形不会被覆盖,运行效果如下:
四、三维网格图:
1、mesh()函数生成网格图:
h2=[11;1 -1]
h4=[h2 h2;h2 -h2]
h8=[h4 h4;h4 -h4]
mesh(h8)
上面由迭代生成一个8*8的矩阵,即:
11111111
1 -11 -11 -11 -1
11 -1 -111 -1 -1
1 -1 -111 -1 -11
1111 -1 -1 -1 -1
1 -11 -1 -11 -11
11 -1 -1 -1 -111
1 -1 -11 -111 -1
mesh()函数以矩阵的下标为x,y坐标,生成一个网格图,运行效果如下:
2、meshgrid()函数:
a=[1:2]
b=[3:5]
[A,B]= meshgrid(a,b)
上述生成了A,B两个矩阵:
A =
B =
1233
1244_
1255
命令等效于:A=ones(size(b))*a; B=b'*ones(size(a))
3、利用meshgrid()函数和mesh()函数生成网格图:
x=-5:5; y=x;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2 ;
mesh(X,Y,Z)
上述脚本先使用meshgrid()函数生成11 * 11的矩阵,再使用mesh()生成网格图;
五、三维曲面图:
首先三维曲面图和三维网格图不同,其区别有:
(1)网线图:线条有颜色,内部是无颜色
(2)曲面图:线条是黑色的,内部有颜色(把线条之间的空挡填充颜色,沿z轴
按每一网格变化)
1、使用peak()函数:
为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)
2、surfc()函数:
[X,Y,Z]=peaks(20);
surfc(X,Y,Z)
上述脚本先调用peaks()函数,再使用surfc()函数便可得出下列图形:
3、colormap()函数:
matlab 的颜色数据集合为红、绿、蓝三颜色矩阵[R,G,B],维数m×3,R,G,B 在[0 1]区间连续取值,理论上颜色种类可达无穷多种,然后我们使用colormap()就可以设置图像颜色,如colormap([0.5 0.7 0.8]),当然,matlab也有常用颜色数据,见下表:
•jet ——饱和值色图II hsv ——饱和值色图
•gray ——线性灰度色图hot ——暖色色图
•cool ——冷色色图bone ——兰色调灰色图
•copper ——铜色色图pink ——粉红色图
•prism ——光谱色图flag ——红、白、蓝交替色图
如我们调用colormap gray; 就可得到相应的线性灰度色图。
六、图像修饰方法:
1、shading:
我们可以使用colormap()函数进行颜色的修饰,还可以使用shading来控制表面和块等图形对象颜色的渲染:
[X,Y,Z]=sphere(50);
surfc(X,Y,Z)
colormap cool
shading interp
axis equal
上述脚本中,画了一个球:。