文档介绍:实验二FFT频谱分析及应用一、实验目的?进一步加深DFT算法原理和基本性质的理解。?学****用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。应用FFT实现信号频谱分析二、(FFT)算法长度为N的序列的离散傅立叶变换为: N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。)(nx)(kX??????101,....,0,)()(NnnkNNkWnxkX?依此类推,当N为2的整数次幂时(2N),由于每分解一次降低一阶幂次,所以通过M次的分解,最后全部成为一系列2点DFT运算。以上就是按时间抽取的快速傅立叶变换(FFT)算法。当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT,可以用末尾补零的方法,使其长度延长至2的整数次方。?序列X(k)的离散傅立叶反变换为xnNXkWnNNnkkN()(),,....,???????10101离散傅立叶反变换与正变换的区别在于WN变为WN-1,并多了一个1/N的运算。因为WN和WN-1对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT和快速傅立叶反变换(IFFT)算法合并在同一个程序中。2、MATLAB函数傅里叶变换函数常用的FFT及反变换函数如下表所示。计算离散傅立叶反变换ifft调整fft函数的输出顺序,将零频位置移到频谱的中心fftshift计算快速离散傅立叶变换fft说明函数?fft函数:调用方式如下y=fft(x):计算信号x的快速傅立叶变换y。当x的长度为2的幂时,用基2算法,否则采用较慢的分裂基算法。y=fft(x,n):计算n点FFT。当length(x)>n时,截断x,否则补零。【例2-11】产生一个正弦信号频率为60Hz,并用fft函数计算并绘出其幅度谱。?fftshift函数:调用方式如下y=fftshift(x):如果x为向量,fftshift(x)直接将x的左右两部分交换;如果x为矩阵(多通道信号),将x的左上、右下和右上、左下四个部分两两交换。【例2-12】产生一个正弦信号频率为60Hz,采样率为1000Hz,用fftshift将其零频位置搬到频谱中心。例2-12 60Hz正弦信号的幅度谱及搬移后的频谱?ifft函数:调用方式如下y=ifft(x):计算信号x的傅立叶反变换。【例2-13】计算方波信号的傅立叶反变换。例2-13 矩形信号及其IFFT变换y=ifft(x,n):计算n点IFFT。如果length(x)>n,以n为长度截短x,否则补零。