FFT算法的应用

matlab实验

10人已加入

描述

FFT算法的应用

一. 数字滤波器设计:
(一)基—2按时间抽取FFT算法
对于有限长离散数字信号{x[n]},0  n  N-1,其离散谱{x[k]}可以由离

FFT

散付氏变换(DFT)求得。DFT的定义为
可以方便的把它改写为如下形式:
不难看出,WN是周期性的,且周期为N,即
FFT

WN的周期性是DFT的关键性质之一。为了强调起见,常用表达式WN取代W以便明确其周期是N。
由DFT的定义可以看出,在x[n]为复数序列的情况下,完全直接运算N点DFT需要(N-1)2次复数乘法和N(N-1)次加法。因此,对于一些相当大的N值(如1024)来说,直接计算它的DFT所作的计算量是很大的。FFT的基本思想在于,将原有的N点序列序列分成两个较短的序列,这些序列的DFT可以很简单的组合起来得到原序列的DFT。例如,若N为偶数,将原有的N点序列分成两个(N/2)点序列,那么计算N点DFT将只需要约[(N/2)2 •2]=N2/2次复数乘法。即比直接计算少作一半乘法。因子(N/2)2表示直接计算(N/2)点DFT所需要的乘法次数,而乘数2代表必须完成两个DFT。上述处理方法可以反复使用,即(N/2)点的DFT计算也可以化成两个(N/4)点的DFT(假定N/2为偶数),从而又少作一半的乘法。这样一级一级的划分下去一直到最后就划分成两点的FFT运算的情况。比如,一个N = 8点的FFT运算按照这种方法来计算FFT可以用下面的流程图来表示:
FFT

关于蝶形结运算的具体原理及其推导可以参照讲义,在此就不再赘述。按频率抽取的FFT的原理也可查阅相关资料,这里就不再推导了。

二. 使用到的MATLAB命令:
函数fft(x)可以计算R点序列的R点DFT值;而fft(x,N)则计算R点序列的N点DFT,若R>N,则直接截取R点DFT的前N点,若R

四、实验目的:
离散傅氏变换(DFT)的目的是把信号由时域变换到频域,从而可以在频域分析处理信息,得到的结果再由逆DFT变换到时域。FFT是DFT的一种快速算法。在数字信号处理系统中,FFT作为一个非常重要的工具经常使用,甚至成为DSP运算能力的一个考核因素。
本实验通过使用MATLAB函数中的FFT命令计算离散时间信号的频谱,以加深对离散信号的DFT的理解及其FFT算法的运用。
五、实验内容:
(1) 计算一个实数序列 的1024点FFT,注意使用将此序列组合成一复数序列后再计算的方法。
(2) 分别计算两个实数序列 和 的128点FFT,注意使用将此二序列组合成一复数序列后再计算的方法。
(3) 利用DFT的方式计算下面两序列的线性卷积:
g[n]={3, 4, -2, 0, 1, -4},h[n]={1, -3, 0, 4, -2, 3}
六、实验器材(设备、元器件):
七、实验步骤:
对实验内容中给定的序列求给定点数N的FFT和IFFT,利用MATLAB编程完成计算,绘出相应图形。并与理论计算相比较,说明实验结果的原因。
八、实验数据及结果分析
程序:
结果:
九、实验结论:
十、总结及心得体会

十一、对本实验过程及方法、手段的改进建议

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • FFT

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分