数字信号处理第4章-快速傅里叶变换(FFT)-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数字信号处理第4章-快速傅里叶变换(FFT)-课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 快速 傅里叶变换 FFT 课件
- 资源描述:
-
1、第第4章章 快速傅里叶变换快速傅里叶变换(FFT)第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.1 引言引言4.2 基基2FFT算法算法4.3 进一步减少运算量的措施进一步减少运算量的措施4.4 分裂基分裂基FFT算法算法4.5 离散哈特莱变换离散哈特莱变换(DHT)1第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.1 引言引言 DFT是信号分析与处理中的一种重要变换。因直接计算DFT的计算量与变换区间长度N的平方成正比,当N较大时,计算量太大,所以在快速傅里叶变换(简称FFT)出现以前,直接用DFT算法进行谱分析和信号的实时处理是不切实际的。直到1965年发现了DFT的一种快速
2、算法以后,情况才发生了根本的变化。2第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.2 基基2FFT算法算法 4.2.1 直接计算DFT的特点及减少运算量的基本途径 长度为N的有限长序列x(n)的DFT为 考虑x(n)为复数序列的一般情况,对某一个k值,直接按(4.2.1)式计算X(k)值需要N次复数乘法、(N-1)次复数加法。10()(),0,1,1NknNnX kx n WkN(4.2.1)3第第4章章 快速傅里叶变换快速傅里叶变换(FFT)如前所述,N点DFT的复乘次数等于N2。显然,把N点DFT分解为几个较短的DFT,可使乘法次数大大减少。另外,旋转因子WmN具有明显的周期性和对
3、称性。其周期性表现为22()jm lNjmm lNmNNNNWeeW(4.2.2)其对称性表现为2mN mN mmNNNNNmmNNWWWWWW 或者 4第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.2.2 时域抽取法基2FFT基本原理 F F T 算 法 基 本 上 分 为 两 大 类:时 域 抽 取 法FFT(Decimation In Time FFT,简称DIT-FFT)和频域抽取法FFT(Decimation In Frequency FFT,简称DIFFFT)。下面先介绍DIFFFT算法。设序列x(n)的长度为N,且满足2,MNM为自然数 按n的奇偶把x(n)分解为两个N/
4、2点的子序列12()(2),0,1,12()(21),0,1,12Nx rxrrNx rxrr5第第4章章 快速傅里叶变换快速傅里叶变换(FFT)则x(n)的DFT为/2 1/2 12(21)00/2 1/2 121200()()()(2)(21)()()knknNNnnNNkrkrNNrrNNkkrNNrrX kx n Wx n Wxr WxrWx rWx r W由于222222/2jkrNjkrkrkrNNNWeeW所以/2 1/2 11/22/21200()()()()()NNkrkkrkNNNNrrX kx r WWx r WX kW Xk6第第4章章 快速傅里叶变换快速傅里叶变换(F
5、FT)其中X1(k)和X2(k)分别为x1(r)和x2(r)的N/2点DFT,即/2 111/210/2 122/220()()()()()()NkrNrNkrNrX kx r WDFT x rXkx r WDFT x r(4.2.5)(4.2.6)由于X1(k)和X2(k)均以N/2为周期,且所以X(k)又可表示为前后对半分开两部分2NkkNNWW 1212()()()0,1,12()()()0,1,122kNkNNX kX kW XkkNNX kX kW Xkk(4.2.7)(4.2.8)7第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.1 蝶形运算符号 CABA BCA BC
6、8第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.2 N点DFT的一次时域抽取分解图(N=8)N/2点DFTN/2点DFTx(0)X1(0)x(2)x(4)x(6)x(1)x(3)x(5)x(7)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)9第第4章章 快速傅里叶变换快速傅里叶变换(FFT)二次分解:与第一次分解相同,将x1(r)按奇偶分解成两个N/4长的子序列x3(l)和x4(l),即3241()(2),0,1,1()(21)4x lxlNlx lxl那么,X1(k)又可表示为/4 1/4
7、12(21)11/21/200/4 1/4 13/4/24/4003/24()(2)(21)()()()(),0,1,/21NNklklNNiiNNklkklNNNiikNX kxl WxlWx l WWx l Wx kWXk kN(4.2.9)10第第4章章 快速傅里叶变换快速傅里叶变换(FFT)式中/4 133/430/4 144/440()()()()()()NklNiNklNix kx l WDFT x lx kx l WDFT x l 同理,由X3(k)和X4(k)的周期性和Wm N/2的对称性 Wk+N/4 N/2=-Wk N/2 最后得到:13/2413/24()()(),0,1
8、,/41(/4)()()kNkNX kXkWXkkNX kNXkWXk(4.2.10)11第第4章章 快速傅里叶变换快速傅里叶变换(FFT)用同样的方法可计算出25/2625/26()()(),0,1,/41(/4)()kNkNXkXkWXkkNXkNX kWXk(4.2.11)其中/4 155/450/4 166/4605262()()()()()()()(2),0,1,/41()(21)NklNiNklNiXkx l WDFT x lXkx l WDFT x lx lxllNx lxl12第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.3 N点DFT的第二次时域抽取分解图(N=
9、8)N/4点DFTX1(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)x(0)X3(0)X3(1)X4(0)X4(1)x(4)x(2)x(6)x(1)x(5)x(3)x(7)N/4点DFTN/4点DFTN/4点DFT13第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.4 N点DITFFT运算流图(N=8)x(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7
10、)A(0)A(7)X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)14第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.2.3 DITFFT算法与直接计算DFT运算量的比较 每一级运算都需要N/2次复数乘和N次复数加(每个蝶形需要两次复数加法)。所以,M级运算总共需要的复数乘次数为22(2)log22(2)logMANNCMNCN MNN复数加次数为 例如,N=210=1024时221048576204.8(/2)log5120NNN15第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.5 FFT算法
11、与直接计算DFT所需乘法次数的比较曲线 16第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.2.5 频域抽取法FFT(DIFFFT)在基2快速算法中,频域抽取法FFT也是一种常用的快速算法,简称DIFFFT。设序列x(n)长度为N=2M,首先将x(n)前后对半分开,得到两个子序列,其DFT可表示为如下形式:10/2 110/2/2 1/2 1(/2)00/2 1/20()()()()()()()2()()2NkNnNNknknNNnn NNNknk n NNNnnNkNknNNnX kDFT x nx n Wx n Wx n WNx n Wx nWNx nWx nW17第第4章章 快速傅
12、里叶变换快速傅里叶变换(FFT)/21,(1)1kNkNkWk 偶数 奇数 X(k)分解成偶数组与奇数组,当k取偶数k=2r,r=0,1,N/2-1时/2 120/2 12/20(2)()()2()()2NrnNnNrnNnNXrx nx nWNx nx nW(4.2.14)18第第4章章 快速傅里叶变换快速傅里叶变换(FFT)当k取奇数(k=2r+1,r=0,1,N/2-1)时/2 1(21)0/2 1/20(21)()()2()()2NnrNnNnnrNNnNXrx nx nWNx nx nWW(4.2.15)将x1(n)和x2(n)分别代入(4.2.14)和(4.2.15)式,可得/2
13、11/20/2 12/20(2)()(21)()NrnNnNrnNnXrx n WXrx n W(4.2.16)19第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.10 DIFFFT蝶形运算流图符号 20第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.11 DIFFFT一次分解运算流图(N=8)N/2点DFTN/2点DFTX(0)x1(0)X(2)X(4)X(6)X(1)X(3)X(5)X(7)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)21第第4章章 快速傅里叶变换快速傅里叶变换
14、(FFT)图4.2.12 DIFFFT二次分解运算流图(N=8)N/4点DFTx(0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)X(0)X(4)X(2)X(6)X(1)X(5)X(3)X(7)N/4点DFTN/4点DFTN/4点DFT22第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.13 DIFFFT运算流图(N=8)X(0)X(4)X(2)X(6)X(1)X(5)X(3)X(7)x(0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)23第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.14 DITFFT的一种变形运算流图X(0)X(4)X(2)
15、X(6)X(1)X(5)X(3)X(7)x(0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)24第第4章章 快速傅里叶变换快速傅里叶变换(FFT)图4.2.15 DITFFT的一种变形运算流图X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)x(0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)25第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.2.6 IDFT的高效算法 上述FFT算法流图也可以用于离散傅里叶逆变换(Inverse Discrete Fourier Transform,简称IDFT)。比较DFT和IDFT的运算公式:1010()()(
16、)1()()()NkNnNknNkX kDFT x nx n Wx nIDFT x nX k WN26第第4章章 快速傅里叶变换快速傅里叶变换(FFT)如果希望直接调用FFT子程序计算IFFT,则可用下面的方法:由于 10101()()1()()NknNkNknNkx nX k WNx nXk WN对上式两边同时取共轭,得1011()()()NknNkx nXk WDFT XkNN27第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.3 进一步减少运算量的措施进一步减少运算量的措施 4.3.1 多类蝶形单元运算 由DITFFT运算流图已得出结论,N=2M点FFT共需要MN/2次复数乘法。由
17、(4.2.12)式,当L=1时,只有一种旋转因子W0N=1,所以,第一级不需要乘法运算。28第第4章章 快速傅里叶变换快速傅里叶变换(FFT)综上所述,先除去第一、二两级后,所需复数乘法次数应是 从L=3至L=M共减少复数乘法次数为(2)(2)2MNCM(4.3.1)13312()2222MMLLLLNNN(4.3.2)因此,DITFFT的复乘次数降至(2)(2)(2)(3)2222MNNNCMM(4.3.3)29第第4章章 快速傅里叶变换快速傅里叶变换(FFT)22(1)()()222()()22()222()()22defjxjyxjyjxyxyj xyRjIRxyIxyyx 30第第4章
18、章 快速傅里叶变换快速傅里叶变换(FFT)从实数运算考虑,计算N=2M点DITFFT所需实数乘法次数为(2)4(3)2(2)2213(2)102MNNRMNM(4.3.4)31第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.3.2 旋转因子的生成 在FFT运算中,旋转因子WmN=cos(2m/N)-jsin(2m/N),求正弦和余弦函数值的计算量是很大的。32第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.3.3 实序列的FFT算法 设x(n)为N点实序列,取x(n)的偶数点和奇数点分别作为新构造序列y(n)的实部和虚部,即1212()(2),()(21),0,1,12()()()
19、,0,1,12Nx nxn x nxnnNy nx njx n n对y(n)进行N/2点FFT,输出Y(k),则1122()()(),0,1,1()()()2epopX kDFT x nYkNkXkDFT x njYk 根据DITFFT的思想及式(4.2.7)和(4.2.8),可得到 12()()(),0,1,2kNNX kX kW Xk k33第第4章章 快速傅里叶变换快速傅里叶变换(FFT)由于x(n)为实序列,所以X(k)具有共轭对称性,X(k)的另外N/2点的值为()(),1,2,12NX NkXk k34第第4章章 快速傅里叶变换快速傅里叶变换(FFT)4.4 分裂基分裂基FFT算法
20、算法 4.4.1 分裂基FFT算法原理 当n=pq,且p=N/4,q=4时,n可表示为101010,03,0144NNnpnnnnnn并有 10110/4 13()41000()()()4NknNnNNknnNnnX kx n WNxnn W 35第第4章章 快速傅里叶变换快速傅里叶变换(FFT)010100/4 13104/4 1024040403304()4()()()423()4NknknNnnNkknknkkNNNWxnn WNNx n Wx nWx nWNx nW WW再将上式中的k表示为10104,01,034Nkkkkk36第第4章章 快速傅里叶变换快速傅里叶变换(FFT)可得
展开阅读全文