卷积定理验证实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息与通信工程学院实验报告

课程名称:数字信号处理

实验题目:卷积定理 指导教师: 班级: 学号: 学生姓名:

一、实验目的和任务

通过本实验,验证卷积定理,掌握利用DFT 和FFT 计算线性卷积的方法。

二、实验原理

时域圆周卷积在频域上相当于两序列DFT 的相乘,因而可以采用FFT 的算法来计算圆周卷积,当满足121-+≥N N L 时,线性卷积等于圆周卷积,因此可利用FFT 计算线性卷积。

三、实验内容及步骤

1. 给定离散信号)(n x 和)(n h ,用图解法求出两者的线性卷积和圆周卷积;

2. 编写程序计算线性卷积和圆周卷积;

3. 比较不同列长时的圆周卷积与线性卷积的结果,分析原因。

三、实验数据及程序代码

给定两个序列[][]1,6,0,5,0,3,4,2,4,3,1,6,0,5,0,3,4,2X Y ==,

点数N=18,分别用conv()函数和FFT 与IFFT 计算卷积。代码如下:

clc;clear;

x = [1 6 0 5 0 3 4 2 4 3]; %原始序列

y = [1 6 0 5 0 3 4 2];

N = length(x) + length(y); %两序列的长度和

z=conv(x,y); %直接计算线性卷积

%利用 FFT 计算

% %手动补零

% x1 = [x zeros(1,N-length(x))]; %利用对序列 x 补零点

% y1 = [y zeros(1,N-length(y))]; %利用对序列 x 补零点

X = fft(x , N); %对两序列分别求 FFT

Y = fft(y, N);

Z = X.*Y; %对两序列的 FFT 相乘并求 IFFT

z1=ifft(Z);

figure('numbertitle','off','name','1605034243刘桢');

subplot(221),stem(x);axis([1 N -inf inf]);title('序列 x');

subplot(222),stem(y);axis([1 N -inf inf]);title('序列 y');

subplot(223),stem(z);axis([1 N -inf inf]);title('直接卷积');

subplot(224),stem(z1);axis([1 N -inf inf]);title('N=18 点的圆周卷积');

四、实验数据分析及处理

笔算与机算结果如表1所示,卷积结果序列如图1所示。

表1 笔算与机算比较

图1 卷积结果

当圆周卷积长度不满足121-+≥N N L 条件时,圆周卷积不能代替线性卷积,会产生混叠使得结果不正确。

五、实验报告要求

1.整理好经过运行并证明是正确的程序,并且加上详细的注释。

2.给出笔算和机算结果对照表,比较不同列长时的圆周卷积与线性卷积的结果对照,做出原因分析报告。

3.借用DFT计算线性卷积的方法。

六、实验结论与感悟(或讨论)

1.由于圆周卷积可以适用FFT算法,故用圆周卷积代替线性卷积可以提高机算速度。

2.只有当圆周卷积长度满足条件时才能代替线性卷积。

相关文档
最新文档