快速傅里叶变换FFT的实现分析

首先列出DFT变换的公式,然后分别从时间分离和频域分离两种方式描述。

1,有限长序列的傅里叶变换对如下:

x(n)=\frac{1}{N}\sum_{k=0}^{N-1}X(k)W_N^{-nk}

X(k)=\sum_{n=0}^{N-1}x(n)W_N^{nk}

2,时间域基2快速算法推导

方法就是对原始序列的奇数点和偶数点拆分,形成两个子序列,然后再进行DFT运算。假定原始序列的长度N为2的L次幂。

X(k)=\sum_{n=0,even}^{N-2}x(n)W_N^{nk} +\sum_{n=1,odd}^{N-1}x(n)W_N^{nk}

X(k)=\sum_{r=0}^{\frac{N-2}{2}}x(2r)W_N^{2rk} +\sum_{r=0}^{\frac{N-2}{2}}x(2r+1)W_N^{2rk+k}

X(k)=\sum_{r=0}^{\frac{N}{2}-1}x(2r)W_{\frac{N}{2}}^{rk} +\sum_{r=0}^{\frac{N}{2}-1}x(2r+1)W_{\frac{N}{2}}^{rk}W_N^k

原则上上式中的k的范围是0~N-1,如果将范围限制到0~N/2-1,那么上式成为正变换前半部分的结果。而后半部分为:

X(k+\frac{N}{2})=\sum_{r=0}^{\frac{N}{2}-1}x(2r)W_{\frac{N}{2}}^{r(k+N/2)} +\sum_{r=0}^{\frac{N}{2}-1}x(2r+1)W_{\frac{N}{2}}^{r(k+N/2)}W_N^{k+N/2}

X(k+\frac{N}{2})=\sum_{r=0}^{\frac{N}{2}-1}x(2r)W_{\frac{N}{2}}^{rk} -\sum_{r=0}^{\frac{N}{2}-1}x(2r+1)W_{\frac{N}{2}}^{rk}W_N^k

如果令x1(n)=x(2r),x2(n)=x(2r+1),N1=N/2,那么变换结果可以如下表示

X(k)=\sum_{n=0}^{N_1-1}x_{1}(n)W_{N_1}^{nk} +\sum_{n=0}^{N_1-1}x_{2}(n)W_{N_1}^{nk}W_N^k,前半部分

X(k)=\sum_{n=0}^{N_1-1}x_{1}(n)W_{N_1}^{nk} -\sum_{n=0}^{N_1-1}x_{2}(n)W_{N_1}^{nk}W_N^k,后半部分

进一步简化可得

X(k)=X_1(k) +X_2(k)W_{2N_1}^k,前半部分

X(k)=X_1(k) -X_2(k)W_{2N_1}^k,后半部分

下面以N=8举例画出示意图,如下:

进一步对DFT 4进行二分,那么裂变示意图变为如下:

进一步对DFT 2进行二分,那么裂变示意图变为如下:

3,频率域基2快速算法推导

方法就是对原始序列前后一半拆分,形成两个子序列,然后再进行DFT运算。假定原始序列的长度N为2的L次幂。

X(k)=\sum_{n=0}^{N/2-1}x(n)W_N^{nk} +\sum_{n=N/2}^{N-1}x(n)W_N^{nk}

X(k)=\sum_{n=0}^{N/2-1}x(n)W_N^{nk} +\sum_{n=0}^{N/2-1}x(n+N/2)W_N^{nk}

X(k)=\sum_{n=0}^{N/2-1}x(n)W_N^{nk} +\sum_{n=0}^{N/2-1}x(n+N/2 )W_N^{(n+N/2)k}

X(k)=\sum_{n=0}^{N/2-1}x(n)W_N^{nk} +W_N^{(N/2)k}\sum_{n=0}^{N/2-1}x(n+N/2 )W_N^{nk}

X(k)=\sum_{n=0}^{N/2-1}x(n)W_N^{nk} +(-1)^k\sum_{n=0}^{N/2-1}x(n+N/2 )W_N^{nk}

将X(k)分成奇偶点,则

X(k)=\sum_{n=0}^{N/2-1}[x(n)+x(n+N/2 )]W_N^{nk}-- k=2r,r\in (0,1,N/2-1)

X(k)=\sum_{n=0}^{N/2-1}[x(n)-x(n+N/2 )]W_N^{nk}-- k=2r+1,r\in (0,1,N/2-1)

再次转化一下

X(2r)=\sum_{n=0}^{N/2-1}[x(n)+x(n+N/2 )]W_N^{2nr}-- r\in (0,1,N/2-1)

X(2r+1)=\sum_{n=0}^{N/2-1}[x(n)-x(n+N/2 )]W_N^{n(2r+1)}---,r\in (0,1,N/2-1)

化简得到如下

X(2r)=\sum_{n=0}^{N/2-1}[x(n)+x(n+N/2 )]W_{N/2}^{nr}-- r\in (0,1,N/2-1)

X(2r+1)=\sum_{n=0}^{N/2-1}[x(n)-x(n+N/2 )]W_N^nW_{N/2}^{nr}---,r\in (0,1,N/2-1)

下面以N=8举例画出示意图,如下:

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值