FFT算法分类:时间抽选法DIT:Decimation-In-Time频率抽选法DIF:Decimation-In-Frequency§7-2按时间抽取的FFT算法一、按时间抽取的算法原理二、按时间抽取的算法特点三、按时间抽取FFT算法的其他形式22019/9/4一、按时间抽取的算法原理设序列点数N=2L,L为整数。若不满足,则补零N为2的整数幂的FFT算法称基-2FFT算法。将序列x(n)按n的奇偶分成两组:312221xrxrxrxr0,1,...,/21rN2019/9/44•则x(n)的DFT:111000NNNnknknkNNNnnnXkxnWxnWxnWn为偶数n为奇数/21/2121200221NNrkrkNNrrxrWxrW/21/21221200NNrkrkkNNNrrxrWWxrW/21/211/22/200NNrkkrkNNNrrxrWWxrW12kNXkWXk,0,1,.../21rkN2019/9/45•再利用周期性求X(k)的后半部分121122,/222XkXkNNNXkXkXkXk是以为周期的/22NkNkkNNNN又2019/9/461212()()()()()()2kNkNXkXkWXkNXkXkWXk0,1,...,/21kN•一个“蝶形运算”包含1次乘法,2次加法2019/9/472019/9/4复数乘法复数加法一个N/2点DFT(N/2)2N/2(N/2–1)两个N/2点DFTN2/2N(N/2–1)一个蝶形12N/2个蝶形N/2N总计8分解后的运算量:•运算量减少了近一半22/2/2/2NNN2/21/2NNNN2019/9/4N/2仍为偶数,进一步分解:N/2N/491314(2)()(21)()xlxlxlxl0,1,...,/41lN13/2413/24()()()()()()4kNkNXkXkWXkNXkXkWXk0,1,...,14Nk2019/9/4102/2kkNNWW统一系数:10同理:25/2625/26()()()()()()4kNkNXkXkWXkNXkXkWXk0,1,...,14Nk其中:552()[()][(2)]XkDFTxlDFTxl662()[()][(21)]XkDFTxlDFTxl0,1,...,/41lN这样逐级分解,直到2点DFT基2时间抽取FFT算法流图11N=2x[k]={x[0],x[1]}]1[]0[]0[02xWxX]1[]0[]1[12xWxX]0[x]1[x]0[X-102W]1[X]1[]0[02xWx2019/9/44点基2时间抽取FFT算法流图12x[0]x[2]x[1]x[3]X1[0]X1[1]X2[0]X2[1]2点DFT2点DFT111104W14W02W02WX[0]X[1]X[2]X[3]1,0],[][][241mmXWmXmXm1,0],[][]2[241mmXWmXmXm2019/9/413x[0]x[2]x[1]x[3]1111X[0]X[2]X[1]X[3]X1[0]X2[0]X1[1]X2[1]04W14W04W04W2019/9/44点基2时间抽取FFT算法流图8点基2时间抽取FFT算法流图144点DFT4点DFTx[0]x[2]x[4]x[6]x[1]x[3]x[5]x[7]X1[0]X1[1]X1[2]X1[3]X2[0]X2[1]X2[2]X2[3]X[0]X[1]X[2]X[3]X[4]X[5]X[6]X[7]111108W18W28W38W3,2,1,0],[][]4[281mmXWmXmXm3,2,1,0],[][][281mmXWmXmXm2019/9/4154点DFT4点DFTx[0]x[2]x[4]x[6]x[1]x[3]x[5]x[7]X1[0]X1[1]X1[2]X1[3]X2[0]X2[1]X2[2]X2[3]X[0]X[1]X[2]X[3]X[4]X[5]X[6]X[7]111108W18W28W38W2点DFT2点DFTx[0]x[4]x[2]x[6]114WX11[0]X11[1]X12[0]X12[1]04W2点DFT2点DFT11X21[0]X21[1]X22[0]X22[1]x[1]x[5]x[3]x[7]14W04W1111x[0]x[4]x[2]x[6]28W08W08W08WX11[0]X11[1]X12[0]X12[1]1111x[1]x[5]x[3]x[7]28W08W08W08WX21[0]X21[1]X22[0]X22[1]8点基2时间抽取FFT算法流图2019/9/4基2时间抽取FFT算法16x[0]x[4]x[2]x[6]X[0]X[2]X[1]X[3]111108W08W08Wx[1]x[5]x[3]x[7]X[0]X[2]X[1]X[3]111108W08W08W18W08W38W28W28W28W1111第一级第二级第三级2019/9/4二、按时间抽取的算法特点171.计算速度当N=2L时,共有L级蝶形,每级N/2个蝶形,每个蝶形有1次复数乘法2次复数加法。2log22FNNmLN复数乘法:2logFaNLNN复数加法:222()2()loglog2FFmDFTNNNmFFTNN比较DFT2019/9/4182019/9/4算法的计算复杂度19复乘次数NN2NN2log22019/9/4例.如果一台通用计算机的速度为平均每次复乘,每次复加,用它来计算512点的,问直接计算需要多少时间,用运算需要多少时间。5s0.5sDFTxnFFT解:(1)直接利用计算:复乘次数为,复加次数为。DFT2N1NN复乘所需时间626215105105121.31072TNs复加所需时间6260.51010.51051251210.130816TNNs所以直接利用DFT计算所需时间:121.441536TTTs2019/9/420复乘所需时间61262510log2512510log5120.011522NTNs622620.510log0.510512log5120.002304TNNs复加所需时间所以用FFT计算所需时间120.013824TTTs(2)利用计算:复乘次数为,复加次数为。FFT2log2NN2logNN2019/9/421222.倒序排列n0n1n200011011001101倒位序自然序0000000010041001010220101106301100114100101551010113611011177111222102()nnnn0122()nnnn2102()()xnnnnn23倒序k0k1k2x[k2k1k0]x[000]x[100]x[010]01011]12x[kk0]x[k2k101x[110]x[001]x[101]x[011]x[111]010101012019/9/4243.同址运算在同一级蝶形运算中,两信号只参与一次运算。4.蝶距规律24~0NW142NNW02NW12NNW~三、按时间抽取FFT算法的其它形式252019/9/4262019/9/4272019/9/4282019/9/4