好文档 - 专业文书写作范文服务资料分享网站

利用MATLAB实现循环卷积.doc

天下 分享 时间: 加入收藏 我要投稿 点赞

一、实验目的

1.利用MATLAB实现循环卷积。 2.比较循环卷积与线性卷积的区别。

二、实验条件

PC机,MATLAB7.0

三、实验内容

1)循环卷积的定义:两个序列的N点循环卷积定义为: [h(n)?x(n)]N??h(m)x(n?m)N(0?n?N)

k?0N?1利用MATLAB实现两个序列的循环卷积可以分三个步骤完成: (1)初始化:确定循环点数N,测量输入2个序列的长度。

(2)循环右移函数:将序列x(n)循环右移,一共移N次(N为循环卷积的循环次数),最后将每次循环成的新序列组成一个矩阵V。

(3)相乘:将x(n)移位后组成的矩阵V与第二个序列h(n)对应相乘,即得循环卷积结果。程序如下: 程序一:

clear;close all; N=10;

x1=[6 15 -6 3 5 7 0 1]; x2=[7 1 2 9 4 3 20 6]; xn1=length(x1); xxn1=0:xn1-1; xn2=length(x2); xxn2=0:xn2-1; subplot(3,1,1); stem(xxn1,x1); subplot(3,1,2); stem(xxn2,x2);

x11=fft(x1,N);

x12=fft(x2,N); y11=x11.*x12; y1=ifft(y11,N); subplot(3,1,3); n=0:length(y1)-1; stem(n,y1,'.');

title('循环卷积的结果');

xlabel('n');ylabel('y1(n)');

运行后所得图形如下:

观察所得的循环卷积结果发现并没有呈现周期性的序列,因此将程序做下列改变。程序二:

clear;close all; N=40;

x1=[6 15 -6 3 5 7 0 1]; x2=[7 1 2 9 4 3 20 6]; x2=[x2,x2,x2,x2]; xn1=length(x1); xxn1=0:xn1-1; xn2=length(x2); xxn2=0:xn2-1; subplot(3,1,1);

stem(xxn1,x1); subplot(3,1,2); stem(xxn2,x2);

x11=fft(x1,N); x12=fft(x2,N); y11=x11.*x12; y1=ifft(y11,N); subplot(3,1,3); n=0:length(y1)-1; stem(n,y1,'.');

title('循环卷积的结果');

xlabel('n');ylabel('y1(n)');

从图中可以看出循环卷积的结果已经呈循环序列。将程序进一步改进——在x2序列之间加一些零矩阵;程序如下:

clear;close all; N=50;

x1=[6 15 -6 3 5 7 0 1]; x2=[7 1 2 9 4 3 20 6];

x2=[x2,zeros(1,7),x2,zeros(1,7),x2,zeros(1,7),x2]; xn1=length(x1); xxn1=0:xn1-1;

利用MATLAB实现循环卷积.doc

一、实验目的1.利用MATLAB实现循环卷积。2.比较循环卷积与线性卷积的区别。二、实验条件PC机,MATLAB7.0三、实验内容1)循环卷积的定义:两个序列的N点循环卷积定义为:[h(n)?x(n)]N??h(m)x(n?m)N(0?n?N)k?0
推荐度:
点击下载文档文档为doc格式
0f31s77ds24g4gh0kzl91od1e2lmz900xy1
领取福利

微信扫码领取福利

微信扫码分享