用一次N点的DFT实现2N点序列的DFT 下载本文

内容发布更新时间 : 2024/6/2 23:18:07星期一 下面是文章的全部内容请认真阅读。

理论分析如下:

依题意,对于序列x[n]?cos(2?12??7n)?cos(?19n),只能进行一次N点的DFT,以N2N考虑序列的长度2N=128是2的7次幂,DFT[x(n)]2N,

得到x[n]的2N点的DFT:X(k)?采用基-2FFT算法中的按时间抽取的FFT算法,具体分析如下:

将长度为N的序列x[n],将x[n]分解为偶数点和奇数点: G[n]=x[2r],r=0,1,…,N-1; H[n]=x[2r+1],r=0,1,…,N-1; 因此可以得到

2krkX(k)??x[2r]W?W2N2Nr?0N?12krx[2r?1]W??2Nr?0N?1krkg[r]W?W?N2Nr?0N?1N?1r?0?h[r]WkrN?G[k]?WkH[k],k?0,1,...N?12Nk?Nk,可得: ??W2N2N

由G[k],H[k]的周期为N/2和W前半部:X[k]?G[k]?Wk1 H[k],k?0,1,...N?1;○

2NX[k?N]?G[k?N]?W后半部:

k?NH[k?N]2N?G[k]?WkH[k],k?0,1,...N?12N2 ○

因此,我们考虑建立一个新的序列y[n]=g[n]+j*h[n],通过对y[n]进行N点的DFT,

从而得到G[k]和H[k],以用以上的蝶形运算计算出X[k]。

以下是对于对y[n]进行N点的DTF,从而得到G[k]和H[k]的分析:

由y[n]=g[n]+j*h[n], 有

Y[k]=DFT{y[n]}=DFT{g[n]+j*h[n]}=DFT{g[n]}+DFT{j*h[n]}=G[k]+j*H[k]={ReG[k]-ImH[k]}+j*{ImG[k]+ReH[k]}

由DFT的共轭对称性可知,序列实部的DFT对应原序列DFT的周期共轭对称分量,则

G[k]=(1/2)*{Y[k]+Y[N-k]},○3

同理,序列虚部的DFT对应原序列DFT的周期共轭反对称分量,即有

*

H[k]=-j*(1/2)*{Y[k]-Y[N-k]},○4

*

因此,只要对新序列y[n]=g[n]+j*h[n]进行N点的DFT,即可通过○3○4,得到G[k]和H[k],进行蝶形运算○1○2即可得到对应的原序列的2N点得DFT:X(k)?DFT[x(n)]2N