哈工大数字信号处理实验报告.doc
文本预览下载声明
Harbin Institute of Technology
实验报告
课程名称: 数字信号处理
实验题目:用FFT作谱分析、用窗函数法设计数字滤波器
院 系: 电子与信息工程学院
班 级:
哈尔滨工业大学
一、实验目的
(1) 进一步加深DFT算法原理和基本性质的理解。
(2) 熟悉FFT算法原理和FFT子程序的应用。
(3) 学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二、实验步骤
(1) 复习DFT的定义、性质和用DFT作谱分析的有关内容。
(2) 复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序框图。
(3) 编制信号产生程序,产生以下典型信号供谱分析用:
(4) 按实验内容要求,上机实验,并写出实验报告。
三、实验原理
1、FFT产生背景。
离散傅立叶变换从理论上解决了傅立叶变换应用于实际的可能性,但若直接按DFT公式计算,运算量太大(与N2成比例)。快速傅立叶变换(FFT)是离散傅立叶变换的快速算法,它大大减少了离散傅立叶变换的运算次量,一般可缩短一、二故数量级,且N越大改善越明显,从而使DFT的运算在实际工作中才真正得到广泛应用。
2、FFT原理。
减少离散傅立叶变换运算次数的方法基于的对称性和周期性。
(1)对称性
(2)周期性
由此可得
这样可以将DFT运算中有些项进行合并,利用的对称性和周期性,将长序列的DFT分解为短序列的DFT。
3、FFT运算量。
在采用按时间抽取法的情况下,当N=2M时共有M级蝶形,每级都有N/2个蝶形运算。计算每个蝶形需要一次复数乘法和两次复数加法,因而每级运算需N/2次复数乘法和N次复数加法,这样M级运算总共需要:
复数乘法次数:
mF=N/2.M=N/2.log2N
复数加法次数:
aF=NM=Nlog2N
在一般情况下,复数乘法所需时间比复数加法多,因此以复数乘法为例将DFT运算量与FFT运算量进行对比。直接进行DFT运算复数乘法次数为N2次,利用FFT运算复数乘法为N/2.log2N次。
计算量之比为:
四、实验结果、源程序及误差分析
1、
实验程序:
N1=8;
N2=16;
x1=[1,1,1,1];
y11=fft(x1,8);
y12=fft(x1,16)
subplot(2,2,1);
stem(0:3,x1);
title(函数x1时域图像);box off
subplot(2,2,2);
stem(0:(N1-1),abs(y11));
title(N=8,x1的DFT图像);box off
subplot(2,2,3);
stem(0:(N2-1),abs(y12));
title(N=16,x1的DFT图像);box off
实验误差分析:理论的DFT函数应为抽样函数,由实验结果可以看出,随着FFT点数的增加,FFT图像包络函数越趋近于抽样函数。
2、
实验结果:
实验程序:
N1=8;
N2=16;
xa=1:1:4;
xb=4:-1:1;
x2=[xa,xb];
y21=fft(x2,8);
y22=fft(x2,16);
subplot(2,2,1);
stem(0:7,x2);
title(函数x2时域图像);
subplot(2,2,2);box off
stem(0:(N1-1),abs(y21));
title(N=8,x2的DFT图像);box off
subplot(2,2,4);
stem(0:(N2-1),abs(y22));
title(N=16,x2的DFT图像);box off
实验误差分析:理论的DFT函数应为形如抽样函数的平方的函数,由实验结果可以看出,随着FFT点数的增加,FFT图像包络函数接近抽样函数的平方。
3、
实验结果:
实验程序:
N1=8;
N2=16;
xa=4:-1:1;
xb=1:1:4;
x3=[xa,xb];
y31=fft(x3,8);
y32=fft(x3,16);
subplot(2,2,1);
stem(0:7,x3);
title(函数x3时域图像);
subplot(2,2,2);box off
stem(0:(N1-1),abs(y31));
title(N=8时,x3的DFT图像);box off
subplot(2,2,3);
stem(0:(N2-1),abs(y32));
title(N=16时,x3的DFT图像);box off
实验误差分析:随着N的增加,曲线接近理论值,具体的分析和2中的信号相同
4、
实验结果:
实验程序:
N1=8;
N2=16;
n=0:1:19
x4=cos(0.25*pi*n);
n=0:1:7;
x411=c
显示全部