实验报告
课程名称:  信号分析与处理    指导老师:              成绩:__________________
实验名称:离散傅里叶变换和快速傅里叶变换 实验类型:  基础实验      同组学生姓名:       
第二次实验 离散傅里叶变换和快速傅里叶变换
装    订    线
一、实验目的
1.1掌握离散傅里叶变换(DFT)的原理和实现;
1.2掌握快速傅里叶变换(FFT)的原理和实现,掌握用FFT对连续信号和离散信号进行谱分析的方法。
1.3 会用Matlab软件进行以上练习。
二、实验原理
2.1关于DFT的相关知识
序列x(n)的离散事件傅里叶变换(DTFT)表示为
如果x(n)为因果有限长序列,n=0,1,...,N-1,则x(n)的DTFT表示为
x(n)的离散傅里叶变换(DFT)表达式为
序列的N点DFT是序列DTFT在频率区间[0,2π]上的N点灯间隔采样,采样间隔为2π/N。通过DFT,可以完成由一组有限个信号采样值x(n)直接计算得到一组有限个频谱采样值X(k)。X(k)的幅度谱为,其中下标R和I分别表示取实部、虚部的运算。X(matlab傅里叶变换的幅度谱和相位谱k)的相位谱为
离散傅里叶反变换(IDFT)定义为
  2.2关于FFT的相关知识
快速傅里叶变换(FFT)是DFT的快速算法,并不是一个新的映射。FFT利用了函数的周期性和对称性以及一些特殊值来减少DFT的运算量,可使DFT的运算量下降几个数量级,从而使数字信号处理的速度大大提高。
若信号是连续信号,用FFT进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可以用FFT来对连续信号进行谱分析。为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器,且抗混叠滤波器的截止频率不得高于与采样频率的一半。
    比较DFT和IDFT的定义,两者的区别仅在于指数因子的指数部分的符号差异和幅度尺度变换,因此可用FFT算法来计算IDFT。
3、实验内容与相关分析(共6道)
说明:为了便于老师查看,现将各题的内容写在这里——
题目按照3.1、3.2、...、3.6排列。每道题包含如下内容:题干、解答(思路、M文件源代码、命令窗口中的运行及其结果)、分析。其中“命令窗口中的运行及其结果”按照小题顺序排列,各小题包含命令与结果(图形或者序列)。
3.1 求有限长离散时间信号x(n)的离散时间傅里叶变换(DTFT)X(ejΩ)并绘图。
(1)已知;(2)已知
【解答】
思路:这是DTFT的变换,按照定义编写DTFT的M文件即可。考虑到自变量Ω是连续的,为了方便计算机计算,计算时只取三个周期[-2π,4π]中均匀的1000个点用于绘图。
理论计算的各序列DTFT表达式,请见本题的分析。
M文件源代码(我的Matlab源文件不支持中文注释,抱歉)
function DTFT(n1,n2,x)
%This is a DTFT function for my experiment of Signal Processing & Analysis.
w=0:2*pi/1000:2*pi;%Define the bracket of omega for plotting.
X=zeros(size(w));%Define the initial values of X.
for i=n1:n2
    X=X+x(i-n1+1)*exp((-1)*j*w*i);%It is the definition of DTFT.
end
Amp=abs(X);%Acquire the amplification.
Phs=angle(X);%Acquire the phase angle (radian).
subplot(1,2,1);
plot(w,Amp,'r'); xlabel('\Omega');ylabel('Amplification');hold on;
%Plot amplification on the left.
subplot(1,2,2);
plot(w,Phs,'b');xlabel('\Omega');ylabel('Phase Angle (radian)');hold off;
%Plot phase angle on the right.
end
命令窗口中的运行及其结果(理论计算的各序列DTFT表达式,请见本题的分析)
第(1)小题
>>  n=(-2:2);   
>>  x=1.^n;
>>    DTFT(-2,2,x);
图3.1.1在[-2π,4π]范围内3个周期的幅度谱和相位谱(弧度制)
第(2)小题
>> n=(0:10);
>> x=2.^n;
>> DTFT(0,10,x);
图3.1.2在[-2π,4π]范围内3个周期的幅度谱和相位谱(弧度制)
【分析】
对于第(1)小题,由于序列x(n)只在有限区间(-2,-1,-,1,2)上为1,所以是离散非
周期的信号。它的幅度频谱相应地应该是周期连续信号。事实上,我们可计算出它的表达式:
,可见幅度频谱拥有主极大和次极大,两个主极大间有|5-1|=4个极小,即有3个次级大。而对于它的相位频谱,则是周期性地在-π、0、π之间震荡。
对于第(2)小题,由于是离散非周期的信号。它的幅度频谱相应地应该是周期连续信号。而它的表达式:,因此主极大之间只有|0-1|=1个极小,不存在次级大。而对于它的相位频谱,则是在一个长为2π的周期内有|11-1|=10次振荡。
而由DTFT的定义可知,频谱都是以2π为周期向两边无限延伸的。由于DTFT是连续谱,对于计算机处理来说特别困难,因此我们才需要离散信号的频谱也离散,由此构造出DFT(以及为加速计算DFT的FFT)。
3.2已知有限长序列x(n)={8,7,9,5,1,7,9,5},试分别采用DFT和FFT求其离散傅里叶变换X(k)的幅度、相位图。
【解答】
思路:按照定义编写M文件即可。
M文件源代码:
i) DFT函数:
function DFT(N,x)