第4章 快速傅里叶变换(FFT) 1、直接计算DFT的计算量为多少? 2、利用DFT的哪些性质可以缩减其计算量? 3、DIT-FFT的分解思路,一次蝶形运算的计算量为多少? 4、对一个N=2M的DFT,经过DIT-FFT一次分解后计算量为多少?全分解后的计算量为多少? 5、DIF-FFT的分解思路,DIF-FFT与DIT-FFT之间的相同之处与区别是什么? 4.1 引言 DFT是信号分析与处理中的一种重要变换。因直接计算DFT的计算量与变换区间长度N的平方成正比,当N较大时,计算量太大,所以在快速傅里叶变换(简称FFT)出现以前,直接用DFT算法进行谱分析和信号的实时处理是不切实际的。直到1965年发现了DFT的一种快速算法以后,情况才发生了根本的变化。 【问题1】直接计算DFT的计算量为多少?(乘法和加法次数) 长度为N的有限长序列x(n)的DFT为 考虑x(n)为复数序列的一般情况,对某一个k值,直接按(4.2.1)式计算X(k)值需要N次复数乘法、(N-1)次复数加法。 N个k值需要N2次复数乘法、N(N-1)次复数加法。 【问题2】 利用DFT的哪些性质可以缩减其计算量? 如前所述,N点DFT的复乘次数等于N2。显然,把N点DFT分解为几个较短的DFT,可使乘法次数大大减少。另外,旋转因子WmN具有明显的周期性和对称性。其周期性表现为 【问题3】 DIT-FFT的分解思路,一次蝶形运算的计算量为多少? FFT算法基本上分为两大类:时域抽取法FFT(Decimation In Time FFT,简称DIT-FFT)和频域抽取法FFT(Decimation In Frequency FFT,简称DIF―FFT)。下面先介绍DIF―FFT算法。 设序列x(n)的长度为N,且满足 则x(n)的DFT为 【问题4】对一个N=2M的DFT,经过DIT-FFT一次分解后计算量为多少?全分解后的计算量为多少? 每一级运算都需要N/2次复数乘和N次复数加(每个蝶形需要两次复数加法)。所以,M级运算总共需要的复数乘次数为 【问题5】DIF-FFT的分解思路,DIF-FFT与DIT-FFT之间的相同之处与区别是什么? 设序列x(n)长度为N=2M,首先将x(n)前后对半分开,得到两个子序列,其DFT可表示为如下形式: DIT-FFT之间的相同与区别之处 DIT-FFT与DIF-FFT算法类似,运算效率相同。 DIF-FFT输入序列为自然顺序,输出为倒序排列,运算完后要进行倒序才能得到自然顺序的X(k);DIT-FFT相反。 DIT-FFT蝶型先乘后加(减),DIF-FFT相反。 * 第4章 快速傅里叶变换(FFT) (4.2.1) 其对称性表现为 或者 按n的奇偶把x(n)分解为两个N/2点的子序列 由于 所以 由于X1(k)和X2(k)均以N/2为周期,且 ,所以X(k)又可表示为 (4.2.7) (4.2.8) ? 图4.2.1 蝶形运算符号 每个蝶形需要1次复数乘和2次复数加。 图4.2.2 N点DFT的一次时域抽取分解图(N=8) 图4.2.3 N点DFT的第二次时域抽取分解图(N=8) 图4.2.4 N点DIT―FFT运算流图(N=8) 复数加次数为 例如,N=210=1024时 图4.2.5 FFT算法与直接计算DFT所需乘法次数的比较曲线 偶数 奇数 将X(k)分解成偶数组与奇数组,当k取偶数 (k=2r,r=0,1,…,N/2-1)时 (4.2.14) 当k取奇数(k=2r+1,r=0,1,…,N/2-1)时 (4.2.15) 将x1(n)和x2(n)分别代入(4.2.14)和(4.2.15)式,可得 (4.2.16) 图4.2.10 DIF―FFT蝶形运算流图符号 图4.2.11 DIF―FFT一次分解运算流图(N=8) 图4.2.12 DIF―FFT二次分解运算流图(N=8) 图4.2.13 DIF―FFT运算流图(N=8) * 第4章 快速傅里叶变换(FFT)
原创力文档

文档评论(0)