卷积动画演示

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

说明:由于此次实验是动画的,所以不能形象的给出卷积的动态过程,只能截取几张图进行展示。具体的过程老师将程序运行一遍即可。

实验过程:

相关文档
最新文档