实验项目名称:运用MATLAB 进行连续时间信号卷积运算
( 所属课程:信号与系统 )
院 系: 专业班级: 姓 名:
学 号:
实验日期: 实验地点:
合 作 者:
指导老师:
本实验项目成绩: 教师签字: 日期:
一:实验目的
1,掌握连续时间信号的基本运算的实现方法。
2,熟悉连续LTI 系统在典型激励信号下的响应及其特征。 3、掌握连续LTI 系统单位冲激响应的求解方法。 4、重点掌握用卷积法计算连续时间系统的零状态响应。 5、熟悉MATLAB 相关函数的调用格式及作用。 6、会用MATLAB 对系统进行时域分析。 二、实验原理
1、信号的运算包括:信号的基本运算,包括加、减、乘、除等;信号的时域变换,包括信号的平移、翻转、尺度变换等;两个信号的卷积运算等。 2、连续时间线性时不变系统(LTI )可以用如下的线性常系数差分方程来描述:
a n r (n ) (t ) +a n -1r (n -1) (t ) ++a 1r '(t ) +a 0r (t ) =b m e (m ) (t ) +b n -1e (m -1) (t ) +
(n -1)
+b 1e '(t ) +b 0e (t ) (0-) 。
其
中,n ≥m ,系统的初始条件为r (0-) ,r '(0-) ,r ''(0-) ,…r
系统的响应一般包括两个部分,即由当前输入所产生的响应(零状态响应)和由历史输入(初始状态)所产生的响应(零输入响应)。对于低阶系统,一般可以通过解析的方法得到响应。但对于高阶系统,手工计算就比较困难,这时MATLAB 强大的计算功能就能比较容易地确定系统的各种响应,如冲激响应、阶跃响应、零输入响应、零状态响应、全响应等。
1)直接求解法
在MATLAB 中,要求以系数相量的形式输入系统的微分方程。因此,在使用前必须对系统的微分方程进行变换,得到其传递函数。其分别用相量a 和b 表示分母多项式和分子多项式的系数(按照s 的降幂排列)。涉及到的MATLAB 函数有:impulse(冲激响应) 、step (阶跃响应)、roots (零输入响应)、lism (零状态响应)等。
2)卷积计算法
根据系统的单位冲激响应,利用卷积计算的方法,也可以计算任何输入状态下系统的零状态响应。设一个线性零状态系统,已知系统的单位冲激响应为h (t ) ,当系统的激励信号为e (t ) 时,系统的零状态响应为:
r zs (t ) =⎰-∞e (τ) h (t -τ) d τ=⎰-∞h (τ) e (t -τ) d τ
也可以简单记为r zs (t ) =e (t ) *h (t )
+∞+∞
由于计算机采用的是数值计算,因此系统的零状态响应也可用离散序列卷积和来近似为
∞
r zs (k ) =∑e (n ) *h (k -n ) T =e (k ) *h (k )
n =-∞
和h (t ) 进行采样所得到的离散序列。
三 实验内容与方法
式中r zs (k ) 、e (k ) 、h (k ) 分别对应以T 为时间间隔对连续时间信号r zs (t ) 、e (t )
1,设计一个程序,选择一个信号f (t ) ,完成信号f (t ) 到f (2t +2) 的转化。 syms t;
f=sym('sin(t)/t'); f1=subs(f,t,t+2); f2=subs(f1,t,2*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;
sin(t)/t
sin(t+2)/(t+2)
1
1
0.5
0.5
-5
05-5
0t
t
sin(2 t+2)/(2 t+2)
0.80.6
0.40.20-0.2
-5
05
t
2,计算下述系统在冲激、阶跃、斜变和正弦激励下的零状态响应。
r (4)(t ) +0.6363r (3)(t ) +0.9396r ''(t ) +0.5123r '(t ) +0.0037r (t ) =-0.475e (3)(t ) -0.248e ''(t ) -0.1189e '(t ) -0.0564e (t )
1>斜变激励下的零状态响应
b=[-0.475,-0.248,-0.1189,-0.0564];a=[1,0.6363,0.9396,0.5123,0.0037]; sys=tf(b,a); t=0:0.001:10; x=t;
y=lsim(sys,x,t); plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应');
5
-1
-2
-3
y (t )
-4-5-6-70
1234
5时间(t)
678910
2>正弦激励下的零状态响应
b=[-0.475,-0.248,-0.1189,-0.0564];a=[1,0.6363,0.9396,0.5123,0.0037]; sys=tf(b,a); t=0:0.001:10; x=cos(t); y=lsim(sys,x,t); plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应');
1.5
1
0.5
y (t )
-0.5
-1
-1.5
01234
5时间(t)
678910
3>冲激响应
b=[-0.475,-0.248,-0.1189,-0.0564];a=[1,0.6363,0.9396,0.5123,0.0037]; sys=tf(b,a); t=0:0.001:10; y=impulse(sys,t); plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应')
0.2
0.1
-0.1
y (t )
-0.2-0.3-0.4-0.5
1234
5时间(t)
678910
4>阶跃响应
b=[-0.475,-0.248,-0.1189,-0.0564];a=[1,0.6363,0.9396,0.5123,0.0037]; sys=tf(b,a); t=0:0.001:10; y=step(sys,t); plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应');
-0.2
-0.4
-0.6
y (t )
-0.8-1-1.2-1.4
1234
5时间(t)
678910
3,求两个方波信号的卷积
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,2]);
21
021
021
[1**********]0
[1**********]0
[1**********]0
实验项目名称:运用MATLAB 进行连续时间信号卷积运算
( 所属课程:信号与系统 )
院 系: 专业班级: 姓 名:
学 号:
实验日期: 实验地点:
合 作 者:
指导老师:
本实验项目成绩: 教师签字: 日期:
一:实验目的
1,掌握连续时间信号的基本运算的实现方法。
2,熟悉连续LTI 系统在典型激励信号下的响应及其特征。 3、掌握连续LTI 系统单位冲激响应的求解方法。 4、重点掌握用卷积法计算连续时间系统的零状态响应。 5、熟悉MATLAB 相关函数的调用格式及作用。 6、会用MATLAB 对系统进行时域分析。 二、实验原理
1、信号的运算包括:信号的基本运算,包括加、减、乘、除等;信号的时域变换,包括信号的平移、翻转、尺度变换等;两个信号的卷积运算等。 2、连续时间线性时不变系统(LTI )可以用如下的线性常系数差分方程来描述:
a n r (n ) (t ) +a n -1r (n -1) (t ) ++a 1r '(t ) +a 0r (t ) =b m e (m ) (t ) +b n -1e (m -1) (t ) +
(n -1)
+b 1e '(t ) +b 0e (t ) (0-) 。
其
中,n ≥m ,系统的初始条件为r (0-) ,r '(0-) ,r ''(0-) ,…r
系统的响应一般包括两个部分,即由当前输入所产生的响应(零状态响应)和由历史输入(初始状态)所产生的响应(零输入响应)。对于低阶系统,一般可以通过解析的方法得到响应。但对于高阶系统,手工计算就比较困难,这时MATLAB 强大的计算功能就能比较容易地确定系统的各种响应,如冲激响应、阶跃响应、零输入响应、零状态响应、全响应等。
1)直接求解法
在MATLAB 中,要求以系数相量的形式输入系统的微分方程。因此,在使用前必须对系统的微分方程进行变换,得到其传递函数。其分别用相量a 和b 表示分母多项式和分子多项式的系数(按照s 的降幂排列)。涉及到的MATLAB 函数有:impulse(冲激响应) 、step (阶跃响应)、roots (零输入响应)、lism (零状态响应)等。
2)卷积计算法
根据系统的单位冲激响应,利用卷积计算的方法,也可以计算任何输入状态下系统的零状态响应。设一个线性零状态系统,已知系统的单位冲激响应为h (t ) ,当系统的激励信号为e (t ) 时,系统的零状态响应为:
r zs (t ) =⎰-∞e (τ) h (t -τ) d τ=⎰-∞h (τ) e (t -τ) d τ
也可以简单记为r zs (t ) =e (t ) *h (t )
+∞+∞
由于计算机采用的是数值计算,因此系统的零状态响应也可用离散序列卷积和来近似为
∞
r zs (k ) =∑e (n ) *h (k -n ) T =e (k ) *h (k )
n =-∞
和h (t ) 进行采样所得到的离散序列。
三 实验内容与方法
式中r zs (k ) 、e (k ) 、h (k ) 分别对应以T 为时间间隔对连续时间信号r zs (t ) 、e (t )
1,设计一个程序,选择一个信号f (t ) ,完成信号f (t ) 到f (2t +2) 的转化。 syms t;
f=sym('sin(t)/t'); f1=subs(f,t,t+2); f2=subs(f1,t,2*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;
sin(t)/t
sin(t+2)/(t+2)
1
1
0.5
0.5
-5
05-5
0t
t
sin(2 t+2)/(2 t+2)
0.80.6
0.40.20-0.2
-5
05
t
2,计算下述系统在冲激、阶跃、斜变和正弦激励下的零状态响应。
r (4)(t ) +0.6363r (3)(t ) +0.9396r ''(t ) +0.5123r '(t ) +0.0037r (t ) =-0.475e (3)(t ) -0.248e ''(t ) -0.1189e '(t ) -0.0564e (t )
1>斜变激励下的零状态响应
b=[-0.475,-0.248,-0.1189,-0.0564];a=[1,0.6363,0.9396,0.5123,0.0037]; sys=tf(b,a); t=0:0.001:10; x=t;
y=lsim(sys,x,t); plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应');
5
-1
-2
-3
y (t )
-4-5-6-70
1234
5时间(t)
678910
2>正弦激励下的零状态响应
b=[-0.475,-0.248,-0.1189,-0.0564];a=[1,0.6363,0.9396,0.5123,0.0037]; sys=tf(b,a); t=0:0.001:10; x=cos(t); y=lsim(sys,x,t); plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应');
1.5
1
0.5
y (t )
-0.5
-1
-1.5
01234
5时间(t)
678910
3>冲激响应
b=[-0.475,-0.248,-0.1189,-0.0564];a=[1,0.6363,0.9396,0.5123,0.0037]; sys=tf(b,a); t=0:0.001:10; y=impulse(sys,t); plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应')
0.2
0.1
-0.1
y (t )
-0.2-0.3-0.4-0.5
1234
5时间(t)
678910
4>阶跃响应
b=[-0.475,-0.248,-0.1189,-0.0564];a=[1,0.6363,0.9396,0.5123,0.0037]; sys=tf(b,a); t=0:0.001:10; y=step(sys,t); plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应');
-0.2
-0.4
-0.6
y (t )
-0.8-1-1.2-1.4
1234
5时间(t)
678910
3,求两个方波信号的卷积
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,2]);
21
021
021
[1**********]0
[1**********]0
[1**********]0