1、4.总结 :6 参考文献 6 0.引言离散傅里叶变换 (Discrete Fourier Transform ),是连续傅里叶变换在时域和频域上都离散的形式, 将时域信号的采样变换为在离散时间傅里叶变换( DTFT)频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散 信号作DFT,也应当将其看作经过周期延拓成为周期信号再作变换。离散傅里叶变化的出现解决了信号离 散化的问题,从而使其在数字滤波、功率谱分析、仿真、系统分析、通信方面得以应用。快速傅里叶变换(Fast Fourier Transform),是离散
2、傅里叶变换的快速算法,它是根据离散傅里叶变换 的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。由于它应用的理论基础仍是离散傅 里叶变换,所以它对离散傅里叶变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应 用离散傅立叶变换,可以说是进了一大步。快速傅里叶变化最早于 1965年由Cooly和Tukey提出,这使离散傅里叶变化运算次数由 N2减少为Nlog2N次,使得离散傅里叶变换应用于实际变成现实。 目前,快速傅里叶变化技术已广泛应用于各个领域,成为数字信号处理技术的一个重要组成部分。 离散傅里叶变化除了本文介绍的基 2快速傅里叶变化算法外,他们都不同程度上减少了运算
3、次数,如戈泽尔( Goertzel)算法、Chirp-Z变化(CZT)算法、Winograd Fast Transform Alogrithm (WFTA)等。本文将仅介绍基 2快速傅里叶变化。1. DFT与 FFT的定义DFT的定义:设h nTs是连续函数h(t)的n个抽样值n =0,1,,N _1,这N个点的宽度为 N的DFT为: 第1页共10页WNk, (n =0,1,,N _1)。(Ng丿用FFT实现DFT:先设序列点数为 N=2m,M为整数。如果不满足这个条件,可以人为地加上若干零值 点,使之达到这一要求。这种 N为2的整数幕的FFT称基2 FFT设输入序列长度为 N=2m (M为正
4、整数),将该序列按时间顺序的奇偶分解为越来越短的子序列,称为按时间抽取 (DIT )的FFT算法。下面给出8点基2 FFT的运算流图:下面对两种变化的运算量进行比较。设 x(n)为N项的复数序列,由 DFT变换,任一 X( m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法 等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算” (四次实数乘法和四次实数2加法),那么求出N项复数序列的X( m),即N点DFT变换大约就需要 N次运算。当N=1024点甚至更多的 时候,需要 2=1048576次运算,在FFT中,利用WN的周期
5、性和对称性,把一个 N项序列(设N=2k,k为正 整数),分为两个N/2项的子序列,每个 N/2点DFT变换需要(N/2)2次运算,再用 N次运算把两个 N/2 点的DFT变换组合成一个 N点的DFT变换。这样变换以后,总的运算次数就变成 2*( N/2 ) 2=Nf/2。继续上面的例子,N=1024时,总的运算次数就变成了 525312次,节省了大约 50%勺运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的 DFT运算单元,那么N点的DFT变换就只需要NIogzN 次的运算,N在1024点时,运算量仅有 10240次,是先前的直接算法的 1%点数越多,运算量的节约就
6、越大,这就是FFT的优越性。图2-2比较可以发现用 DFT和FFT对同一序列变化得到的结果是完全一样的。这说明 DFT与FFT是完全等价的,而区别仅在于其具体算法。号类型无关。当信号点数较多时,对不同类型信号进行 DFT与FFT变化将花费大量时间,而上面已经验证DFT与FFTDFT与 FFT的运算C程序中计时受机器滴DFT运算时间将按N2规运算时间仅与 N有关,而与具体信号类型无关。故下面将仅对同一类型不同点数信号的 时间的比较,而这也具有一般代表性。下面将仅对不同点数正弦信号做 DFT与FFT变化,并进行运算时间比较。由于答时间限制,故对点数较小信号进行较多次数 DFT与FFT变换。而当点数
7、较多时,律增长,故对点数较多信号进行较少次数 DFT与FFT变换。各次DFT与 FFT运算时间如下诸图:黃R八诞件、课程设计參老E EimE3The time for SignalCos bp FFT uas: 0.031000 secondsThe time For 8ignalCos b* DFT10000 tines was 0.032000 secands图3-4c:: E;课件踝程设计参考DcbugText 1. eze|_iaXThe tine for SisinalCo by FFT 0.063000 secThe t ime Foi* SignalCe by DFT uas :
8、 0.156000 secondsonds 11图3-55 E八谍件课稈设计孝考UebugText K exe 冃回EThe tine for SignalCos by FFTCN=8,1000 time? : 0.016000 secondsThe tine for SisrnlCos by DFT CN-Sj.1090 t imes 8.062000 secondsil图3-6 E八课件深程设计孝考DebugText L exe B回sThe time for SignalGos by FFTCH16,100 times was: 0H04700B seconds The t ie for
9、 SignAlCos by DFT CN=16,1000 tines u&s: 0.256003 secondsi图3-7CA E注课件、課程设计参考DebugText 1. exeThe tine for S ignalCos by FFTtimes 0.1090133 secondsThe tine for 8 ignalCo bv DFT vias : 1 seconds图3-8K E: 件、課稈设计秦考DebugT&xt 1.曲eThe tine For SifrnalCos by FFT 10 tines B.0630(31* seconds The tine for SinalCo
10、s by DFKN=1024,10 tines seconds图 3-13兀E:课ft課程设计参考ebugTest 1 - exeThe time for SlgnAlCos by FFTCN-2048,10 tines 0.156080 secondsThe time for SignalCos hy DFTCN=204810 times 42.172000 seconds 图 3-14E: 件谍程设计蚩考DebugText 1- exeBThe tite for SignalCos hy FFTCN-4096,10 times 0.34400B seconds The tine for S
11、ignalCos by DFTN=499&,10 tines? 167047000 seconds图 3-15CA E:课件课程设计参考DwlragText L exelllie time for SignaICos bp FFT11=81921 tiniest was:B.07S000 secondsTJie tine Fop S ignalGos by DFT M-8192,1 t imes uas: 67-141000 seconds图 3-16小 E:课程设计#DebufText 1- exeI he tine for SignAlCos by FFTN=1&384,1 t bias
12、= 0,X56S0S secondsThe tine for SlnalCos by DFTCN=16384J time& ua& 267.485080 seconds图 3-17F面对以上数据进行整理分析。 (注:e+n表示*10-n)N变换次数Tdft/STfft/smea n(TDF/smea n( Tfft)/sTdft/T fft理论比值100000.0320.031P 3.2e-6P 3.1e-6P 1.0340.1560.0631.56e-56.3e-62.48810000.0620.016P 6.2e-5P 1.6e-53.8752.67160.250.0472.5e-44.7e-55.32321.0160.1091.016e-31.09e-49.326.4641000.4064.06e-31.6e-425.3810.671281.7031.703e-26.3e-427.0318.292566.6090.1416.609e-2P 1.41e-3P 46.87512
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1