设计一个按照时间抽取的基-2快速傅里叶变换(基-2 FFT-DIT)。输入倒位序,输出自然顺序;
1、
2、 用两个N点FFT计算一个长度为2N的实数序列的2N点离散傅里叶变换,并将结果同直接使用一个2N点离散傅里叶变换得到的结果进行比较; 盂兰盆节
3、 比较所设计的基-2FFT与Matlab提供的fft函数的效率的差别,并简单分析,提出几种能有效提高FFT效率的方法。 (v[n]是长度为2N的实序列,将长度为N的两个实序列g [n]和h[n]分别定义为:
g[n]=v[2n] and h[n]=v[2n+1], 0≤n<N
陈独秀大传简介一生
分别计算其FFT值。)
1.
根据DIT-FFT算法的原理,观察图1,可归纳出一些对编程序有用的运算规律:第L级中,每个蝶形的两个输入数据相距B=个点;同一旋转因子对应着间隔为点的个蝶形。
总结上述运算规律,便可采用下述运算方法。先从输入端(第1级)开始,逐级进行,共进行M级运算。在进行第L级运算时,依次求出个不同的旋转因子,每求出一个旋转因子,就计算完它对应的所有个蝶形。这样,我们可用三重循环程序实现DIT-FFT运算,程序框图如图2所示。具体程序见源程序中的ditfft.m。
DIT-FFT算法中的序列倒序采用二进制数倒序的方法。根据倒序的规律,只要将顺序数()的二进制位倒置,则得对应的二进制倒序值()。 FFT运算流程图
2.用一个N点的FFT运算获得一个2N点实序列的DFT
设x(n)是2N点的实序列,现人为地将x(n)分为偶数组x1(n)和奇数组x2(n)
x1(n)=x(2n) n=0,1,…,N-1
x2(n)=x(2n+1) n=0,1,…,N-1住房问题
然后将x1(n)及xpes2008补丁2病因学(n)组成一个复序列y(n)=x1(n)+jx2(k)
通过N点FFT运算可得到 Y(k)=X头孢噻吩1(k)+jX2(k)
根据前面的讨论,得到
为求2N点x(n)所对应的X(k),需求出X(k)与X1(k),X2(k)的关系
而