卷积动画演示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
卷积的动画演示
实现思想:
首先给出两个序列,求出他们的长度。如果两个序列的长度分别为N和M,那么经过线性卷积后结果的长度为N+M—1.所以在接下来的运算中,将一个序列固定不动,另一个序列从左到有一步步的进行卷积,其中将序列从左到右的过程用一个for循环实现,每移动一次将序列输出一次,直到全部的移动结束。在序列移动的过程中同时进行卷积的操作,也用for循环实现,每卷积一次将把卷积的结果输出一次,直到所有的卷积过程全部进行完。在这个过程中序列的移动和卷积同时进行,这样就实现了卷积的动画。
本程序是在MATLAB 7.6.0(R2008a)环境下运行。
实验代码:
clear
clc
X=[1,2,1,3,2,1];
Y=[3,4,1,1,2];
sizea=length(X); %求两个序列的长度;
sizeb=length(Y);
n=sizea+sizeb-1;
a= 0 : sizeb-1;
%y2(a+1)=x2(q-a);
nn=1:sizea; %输出第一个序列:
subplot(3,1,1)
stem(nn,X)
title('X(n)');axis([-16,16,0,10])
for n=1 : sizea+sizeb-1
k=-sizeb+n:1:-1+n;
subplot(3,1,2) %第二个序列移动的过程;
stem(k,Y)
title('Y(n-m)');axis([-16,16,0,10])
y=conv(X,Y); %求卷积运算;
t=1:1:n;
h(t)=y(t); %依次输出卷积的过程
subplot(3,1,3)
t=0:n-1;
stem(t,h); title('线性卷积y(n)')
axis([-16,16,0,24]);
pause(1)
end
说明:由于此次实验是动画的,所以不能形象的给出卷积的动态过程,只能截取几张图进行展示。具体的过程老师将程序运行一遍即可。
实验过程: