实验五 使用matlab实现卷积的运算
一 实验目的
1、 2、
二 实验内容
学习MATLAB语言的编程方法及熟悉MATLAB指令; 深刻理解卷积运算,利用离散卷积实现连续卷积运算;
1、 完成f1(t)与f2(t)两函数的卷积运算 其中:f1(t)?e?2tu(t),f2(t)?u(t)?u(t?4)在一个图形窗口中,画出f1(t)、
f2(t)以及卷积结果。要求每个坐标系有标题、坐标轴名称。 >> p=0.1; t=0:p:10;
f1=exp(-2*t).*u(t); f2=u(t)-u(t-4); f=conv(f1,f2); subplot(1,3,1); plot(t,f1,'r');
title('f1(t)=e^-2*t*u(t)'); xlabel('t(sec)'); ylabel('f1(t)'); subplot(1,3,2); plot(t,f2,'g');
title('f2(t)=u(t)-u(t-4)'); xlabel('t(sec)'); ylabel('f2(t)'); subplot(1,3,3); plot(f);
title('f(t)=f1(t)*f2(t)'); xlabel('t(sec)'); ylabel('f(t)');
f1(t)=e2*t*u(t)0.90.80.70.610.90.80.70.60.5-f2(t)=u(t)-u(t-4)54.543.53f(t)=f1(t)*f2(t)f1(t)f2(t)0.50.4f(t)05t(sec)102.521.510.500.40.30.20.100.30.20.1005t(sec)100200t(sec)400
2、 若系统模型为:
y(t)?4y(t)?4y(t)?f(t)?3f(t) 其中 f(t)?eu(t) 求零状态响应,画出波形(函数本身画出一幅图,自己再画出一幅输入波形图)。
''''?ta=[1 4 4]; b=[1 3]; sys=tf(b,a); td=0.01; t=0:td:10;
f=exp(-t).*u(t); y=lsim(sys,f,t); plot(t,y);
xlabel('t(sec)'); ylabel('y(t)');
0.350.30.250.2y(t)0.150.10.050012345t(sec)678910
a= [1 4 4]; b= [1 3]; sys = tf(b, a); td = 0.01; t = 0 : td : 10; f = exp(-t).*u(t); plot(t,f);
xlabel('t(sec)'); ylabel('f(t)');
1 0.9 0.8 0.7 0.6 f(t) 0.5 0.4 0.3 0.2 0.1 0 0
1
2
3
4
5 t(sec)
6
7
8
9
10
三 实验原理: 1、 离散卷积和: 调用函数:conv()
S?conv(f1,f2)?i????f1(i)f(k?i)为离散卷积和,
?其中,f1(k), f2 (k) 为离散序列,K=…-2, -1, 0 , 1, 2, …。但是,conv函数只给出纵轴的序列值的大小,而不能给出卷积的X轴序号。为得到该值,进行以下分析:
对任意输入:设f1(k)非零区间n1~n2,长度L1=n2-n1+1;f2(k)非零区间m1~m2,长度L2=m2-m1+1。则:s(k)?f1(k)*f2(k)非零区间从n1+m1开始,长度为L=L1+L2-1,所以S(K)的非零区间为:n1+m1~ n1+m1+L-1。 2、 连续卷积和离散卷积的关系:
计算机本身不能直接处理连续信号,只能由离散信号进行近似: 设一系统(LTI)输入为
P?(t),输出为h(t),如图所示。
?P?(t) P?(t) h?(t) 1 ? LTI t ?
P?(t)?h?(t)
?(t)?limP?(t)?limh?(t)?h(t)
??0??0若输入为f(t):
f(t)?f?(t)?得输出:
k????f(?k)P(t?k?)?
??y?(t)?k????f(?k)h??(t?k?)?
??当??0时:f(t)?limf?(t)?lim??0??0k????f(?k)P(t?k?)???f(?)?(t??)d?
????
y(t)?limy?(t)?lim?f(?k)h?(t?k?)????0??0k???????f(?)h(t??)d?
所以:
s(t)?f1(t)*f2(t)??f1(?)f2(t??)d??lim??0?f
1(k?)f2(t?k?)?如果只求离散点上的f 值f(?n)
f(n?)?k?????f?1(k?)f2(n??k?)?
???f1(k?)f2[(n?k)?]k???所以,可以用离散卷积和CONV()求连续卷积,只需?足够小以及在卷积和的基础上乘以?。
3、 连续卷积坐标的确定:
设f1(t)非零值坐标范围:t1~t2,间隔P f2(t)非零值坐标范围:tt1~tt2,间隔P
s(t)?f1(t)*f2(t)非零值坐标:t1+tt1~t2+tt2