卷积定理验证实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.只有当圆周卷积长度满足条件时才能代替线性卷积。