信息与通信工程学
院实验报告
课程名称:数字信号处理
实验题目:卷积定理 指导教师:
班级: 学号: 学生姓名: 一、实验目的与任务
通过本实验,验证卷积定理,掌握利用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 笔算与机算比较 圆周卷积长度 笔算结果 机算结果
L = N1+N2-1 1,12,36,10,60,6,69,52,58,67,47,44,43,28,29,20,6?????? 1,12,36,10,60,6,69,52,58,67,47,44,43,28,29,20,6??????
L = N1+N2-5 29,41,56,16,60,6,69,52,58,67,47,44,43?????? 29,41,56,16,60,6,69,52,58,67,47,44,43??????
图1 卷积结果
当圆周卷积长度不满足121-+≥N N L 条件时,圆周卷积不能代替线性卷积,会产生混叠使得结果不正确。
五、实验报告要求
1. 整理好经过运行并证明就是正确的程序,并且加上详细的注释。
2. 给出笔算与机算结果对照表,比较不同列长时的圆周卷积与线性卷积的结果对照,做出原因分析报告。
3. 借用DFT 计算线性卷积的方法。
六、实验结论与感悟(或讨论)
1. 由于圆周卷积可以适用FFT 算法,故用圆周卷积代替线性卷积可以提高机算速度。
2.只有当圆周卷积长度满足条件时才能代替线性卷积。