连续时间信号卷积运算的MATLAB实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
连续时间信号卷积运算的MATLAB 实现
一、实验目的
(1)理解掌握卷积的概念及物理意义。
(2)理解单位冲激响应的概念及物理意义。
二、实验原理
根据前述知识,连续信号卷积元素按定义为
()()()()()121
2f t f t f t f f t d τττ
∞
-∞
=*=
-⎰
卷积计算可以通过信号分段求和来实现,即
()()()()()()()121
2
1
2
lim k f t f t f t f f t d f k f t k τττ∞
∞
∆→=-∞
-∞
=*=
-=∆⋅-∆⋅∆
∑⎰
如果只求当t n =∆(n 为整数)时()f t 的值()f n ∆,则由上式可得
()()()()()1
2
1
2
k k f n f k f n k f k f n k ∞∞
=-∞
=-∞
∆=
∆⋅∆-∆=∆⋅∆⋅-⋅∆⎡⎤⎣⎦
∑∑
式中的()()
1
2
k f k f n k ∞
=-∞
∆⋅∆-∆∑实际上就是连续信号
()
1f t 和
()
2f t 经等时间间隔∆均匀抽样的离散序列
()1f k ∆和
()
2f k ∆的卷积和。当∆足够小时,
()
f n ∆就是卷积积分的结
果——连续时间信号()
f t 的较好的数值近似。
三、实验内容
1、实验参考程序
以下是MA TLAB 实现连续信号卷积的通用函数sconv()。 function [f,k]=sconv(f1,f2,k1,k2,p) f=conv(f1,f2); f=f*p;
k0=k1(1)+k2(1);
k3=length(f1)+length(f2)-2; k=0:p:k3*p; subplot(2,2,1) plot(k1,f1) title('f1(t)') xlabel('t')
ylabel('f1(t)') subplot(2,2,2) plot(k2,f2) title('f2(t)') xlabel('t')
ylabel('f2(t)') subplot(2,2,3) plot(k,f);
h=get(gca,'position') h(3)=2.5*h(3);
set(gca,'position',h)
title('f(t)=f1(t)*f2(t)') xlabel('t') ylabel('f(t)') end
已知两连续时间信号如图所示,使用MATLAB 求
()()()
12f t f t f t =*,并绘出
()
f t 的
时域波形图。
实现上述过程的MA TLAB 命令如下: p=0.5; k1=0:p:2; f1=0.5*k1; k2=k1; f2=f1;
[f,k]=sconv(f1,f2,k1,k2,p)
运行得出结果。上述命令绘制的波形图在图中示出:
图1.1
以上给出了时间间隔为p=0.5时的处理效果。而图1.2给出了抽样时间间隔p=0.05时的处理结果。可见,当抽样时间p 足够小时,函数sconv()的计算结果就是连续时间卷积
()()()
12f t f t f t =*的较好数值近似。
图1.2 2、习题练习(P34-1.11(a),(b))
已知两连续时间信号如图所示,使用MATLAB求
()()()
12
f t f t f t
=*
,并绘出
()
f t
的
时域波形图。
(a)输入以下MATLAB命令:p=0.001;
k1=0:p:2;
f1=heaviside(k1)-heaviside(k1-1);
k2=0:p:2;
f2=0.5*k2;
[f,k]=sconv(f1,f2,k1,k2,p
运行得出结果:
(b)输入以下MA TLAB命令:
p=0.001;
k1=-1:p:1;
f1=-abs(k1)+1;
k2=0:p:2;
f2=heaviside(k1)-heaviside(k1-1);
[f,k]=sconv(f1,f2,k1,k2,p)
运行得出结果:
四、实验心得
通过本次实验我学会使用MA TLAB软件,并用软件实现了的连续时间信号的卷积运算,且进一步理解了卷积的概念和物理意义,对我以后学习卷积知识有了很大的帮助。