版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四章快速傅立葉變換
FastFourierTransform
1第一節(jié)直接計算DFT的問題及改進途徑1、問題的提出設(shè)有限長序列x(n),非零值長度為N,若對x(n)進行一次DFT運算,共需多大的運算工作量?計算成本?計算速度?22.DFT的運算量回憶DFT和IDFT的變換式:1)x(n)為復(fù)數(shù),也為復(fù)數(shù)。2)DFT與IDFT的計算量相當。注意:3計算機運算時(編程實現(xiàn)):N次復(fù)乘,N-1次復(fù)加
N個點以DFT為例:4復(fù)數(shù)乘法復(fù)數(shù)加法一個X(k)NN–1N個X(k)(N點DFT)N2N(N–1)實數(shù)乘法實數(shù)加法一次復(fù)乘42一次復(fù)加2一個X(k)4N2N+2(N–1)=2(2N–1)N個X(k)(N點DFT)4N22N(2N–1)運算量(a+jb)(c+jd)=(ac-bd)+j(bc+ad)5例:計算一個N點DFT,共需N2次復(fù)乘。以做一次復(fù)乘1μs計,若N=4096,所需時間為例:石油勘探,有24個通道的記錄,每通道波形記
錄長度為5秒,若每秒抽樣500點/秒,1)每道總抽樣點數(shù):500*5=2500點2)24道總抽樣點數(shù):24*2500=6萬點3)DFT復(fù)乘運算時間:N2=(60000)2=36*108次6由于計算量大,且要求相當大的內(nèi)存,難以實現(xiàn)實時處理,限制了DFT的應(yīng)用。長期以來,人們一直在尋求一種能提高DFT運算速度的方法。FFT便是Cooley&Tukey
在1965年提出的的快速算法,它可以使運算速度提高幾百倍,從而使數(shù)字信號處理學(xué)科成為一個新興的應(yīng)用學(xué)科。7第二節(jié)改善DFT運算效率的基本途徑1、利用DFT運算的系數(shù)的固有對稱性和周期性,改善DFT的運算效率。1)對稱性2)周期性3)可約性892、將長序列DFT利用對稱性和周期性分解為短序列DFT的思路因為DFT的運算量與N2成正比的,如果一個大點數(shù)N的DFT能分解為若干小點數(shù)DFT的組合,則顯然可以達到減少運算工作量的效果。10N點DFTN/2點DFTN/2點DFTN/4點DFTN/4點DFTN/4點DFTN/4點DFT…….復(fù)乘:11
FFT算法的基本思想:利用DFT系數(shù)的特性,合并DFT運算中的某些項把長序列DFT→短序列DFT,從而減少運算量。FFT算法分類:時間抽選法DIT:Decimation-In-Time頻率抽選法DIF:Decimation-In-Frequency12第三節(jié)按時間抽選的基2-FFT算法1、算法原理
設(shè)輸入序列長度為N=2M(M為正整數(shù),將該序列按時間順序的奇偶分解為越來越短的子序列,稱為基2按時間抽取的FFT算法。也稱為Coolkey-Tukey算法。
其中基2表示:N=2M,M為整數(shù).若不滿足這個條件,可以人為地加上若干零值(加零補長)使其達到N=2M。13先將x(n)按n的奇偶分為兩組,作變量置換:
當n=偶數(shù)時,令n=2r;
當n=奇數(shù)時,令n=2r+1;分組,變量置換2、算法步驟得到:14帶入DFT中15所以由于?16
X1(k)、X2(k)只有N/2個點,以N/2為周期;而X
(k)卻有N個點,以N為周期。要用X1(k)、X2(k)表達全部的X
(k)值,還必須利用WN系數(shù)的周期特性。17后半部分前半部分又考慮到的對稱性:有:18后半部分前半部分蝶形運算流圖符號說明:(1)左邊兩路為輸入(2)右邊兩路為輸出(3)中間以一個小圓表示加、減運算(右上路為相加輸出、右下路為相減輸出)1個蝶形運算需要1次復(fù)乘,2次復(fù)加19復(fù)數(shù)乘法復(fù)數(shù)加法一個N點DFTN2N(N–1)一個N/2點DFT(N/2)2N/2(N/2–1)兩個N/2點DFTN2/2N(N/2–1)一個蝶形12N/2個蝶形N/2N總計N2/2+N/2≈N2/2N(N/2-1)+N=N2/2運算量減少了近一半分解后的運算量:20先將N=8點的DFT分解成2個4點DFT:可知:時域上:x(0),x(2),x(4),x(6)為偶子序列
x(1),x(3),x(5),x(7)為奇子序列頻域上:X(0)~X(3),由X(k)給出X(4)~X(7),由X(k+N/2)給出例子:求N=23=8點FFT變換
按N=8→N/2=4,做4點的DFT:21N=8點的直接DFT的計算量為:復(fù)乘:N2次=64次復(fù)加:N(N-1)次=8×7=56次此外,還有4個蝶形結(jié),每個蝶形結(jié)需要1次復(fù)乘,2次復(fù)加。一共是:復(fù)乘4次,復(fù)加8次。得到X1(k)和X2(k)需要:復(fù)乘:(N/2)2+(N/2)2次=32次復(fù)加:N/2(N/2-1)+N/2(N/2-1)=12+12=24次用分解的方法得到X
(k)需要:復(fù)乘:32+4=36次復(fù)加:24+8=32次22N點DFT的一次時域抽取分解圖(N=8)4點DFT4點DFTx(0)x(2)x(4)x(6)x(1)x(3)x(5)x(7)X1(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)23因為4點DFT還是比較麻煩,所以再繼續(xù)分解。若將N/2(4點)子序列按奇/偶分解成兩個N/4點(2點)子序列。即對將x1(r)和x2(r)分解成奇、偶兩個N/4點(2點)點的子序列。24那么,X1(k)又可表示為25X2(k)也可以進行相同的分解:注意:通常我們會把寫成。26N點DFT的第二次時域抽取分解圖(N=8)2點DFT2點DFT2點DFT2點DFTx(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7)X3(0)X3(1)X4(0)X4(1)X5(0)X5(1)X6(0)X6(1)X1(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)4點DFT4點DFTx(0)x(2)x(4)x(6)x(1)x(3)x(5)x(7)X1(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)2788X3(0)X3(1)x(0)=x3(0)x(4)=x3(1)28N點DIT―FFT運算流圖(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)293、DIT―FFT算法與直接計算DFT運算量的比較1)、N=2M的DFT運算可分成M級,每一級有N/2個蝶形,每個蝶形有一次復(fù)乘兩次復(fù)加。2)、所以M級共有次復(fù)乘和次復(fù)加。3)、若直接計算DFT,需N2次復(fù)乘和N(N-1)次復(fù)加。顯然,當N較大時,有:例如,N=210=1024時30FFT算法與直接計算DFT所需乘法次數(shù)的比較曲線314、DIT―FFT的運算規(guī)律及編程思想FFT的每級(列)計算都是由N個復(fù)數(shù)數(shù)據(jù)(輸入)兩兩構(gòu)成一個蝶型(共N/2個蝶形)運算而得到另外N個復(fù)數(shù)數(shù)據(jù)(輸出)。當數(shù)據(jù)輸入到存儲器以后,每一組運算的結(jié)果,仍然存放在這同一組存儲器中直到最后輸出。例:將x(0)放在單元A(0)中,將x(4)放在單元A(1)中,W80
放在一個暫存器中。將x(0)+W80x(4)→送回A(0)單元將x(0)-W80x(4)→送回A(1)單元X3(0)X3(1)x(0)x(4)1)
原位運算(亦稱同址計算)32x(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)回顧:N點DIT―FFT運算流圖(N=8)33如上所述,N點DIT―FFT運算流圖中,每級都有N/2個蝶形。每個蝶形都要乘以因子WNP,稱其為旋轉(zhuǎn)因子,p稱為旋轉(zhuǎn)因子的指數(shù)。2)旋轉(zhuǎn)因子的變化規(guī)律觀察FFT運算流圖發(fā)現(xiàn),第L級共有2L-1個不同的旋轉(zhuǎn)因子。N=23=8時的各級旋轉(zhuǎn)因子表示如下:L=1時,WNp=WN/4J,N/4=21=2L,J=0L=2時,WNp=WN/2J,N/2=22=2L,J=0,1L=3時,WNp=WNJ,N=23=2L,J=0,1,2,334對N=2M的一般情況,第L級的旋轉(zhuǎn)因子為:35設(shè)序列x(n)經(jīng)時域抽選(倒序)后,存入數(shù)組X中。如果蝶形運算的兩個輸入數(shù)據(jù)相距B個點(B=2L-1),應(yīng)用原位計算,則蝶形運算可表示成如下形式:下標L表示第L級運算,XL(J)則表示第L級運算后數(shù)組元素X(J)的值。363)編程思想及流程圖開始送入x(n)和N=2M調(diào)整輸入x(n)的順序for(L=1;L<=M;L++)B=2L-1for(J=0;J<=B-1;J++)p=J·2M-Lfor(k=J;k<=N-1;k=k+2L)輸出結(jié)果結(jié)束374)碼位倒序由N=8蝶形圖看出:原位計算時,F(xiàn)FT輸出的X(k)的次序正好是順序排列的,即X(0)…X(7),但輸入x(n)都不能按自然順序存入到存儲單元中,而是按x(0),x(4),x(2),x(6),x(1),x(5),x(3),x(7)的順序存入存儲單元,即為亂序輸入,順序輸出。
這種順序看起來相當雜亂,然而它是有規(guī)律的。即碼位倒讀規(guī)則。38自然順序n二進制碼表示碼位倒讀碼位倒置順序n’以N=8為例:0123456700000101001110010111011100010001011000110101111104261537看出:碼位倒讀后的順序剛好是數(shù)據(jù)送入計算機內(nèi)的順序。39倒序規(guī)律40對于數(shù)N,在其二進制最高位加1,等于加N/2。若已知某個反序號為J,為求下一個反序號,可先判J的最高位:
1)若為0,則把該位變成1(即加N/2)就得到下一個反序號,2)若為1,則需判斷次高位:
①若次高位為0,則把最高位變0(相當減去N/2)后,再把次高位變1(即加N/4)。
②若次高位為1,則需判斷次次高位……分析:41倒序排列算法的流程圖正序序列已在數(shù)組A[]中,輸入NLH=N/2,j=LH,N1=N-2j=j-kk=k/2k=LHj<kj=j+kT=A(j)A(i)=A(j)A(j)=Tfor(i=1;i<=N1;i++)i≥jNYYN42第四節(jié)按頻率抽選的基2-FFT算法在基2快速算法中,頻域抽取法FFT也是一種常用的快速算法,簡稱DIF―FFT。設(shè)序列x(n)長度為N=2M,首先將x(n)前后對半分開,得到兩個子序列,其DFT可表示為如下形式43444546DIF―FFT一次分解運算流圖(N=8)4點DFT4點DFTx(0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)X(0)X(2)X(4)X(6)X(1)X(3)X(5)X(7)x1(0)x1(1)x1(2)x1(3)x2(0)x2(1)x2(2)x2(3)47DIF―FFT二次分解運算流圖(N=8)48DIF―FFT運算流圖(N=8)49時間抽取算法與頻率抽取算法的比較1)頻率抽選法和時間抽選法總的計算量是相同的復(fù)乘:復(fù)加:2)頻率抽取法和時間抽取法一樣,都適用于原位運算,即蝶形的輸入和輸出占用同一個存儲單元。3)均存在碼位倒序問題。4)頻率抽選法和時間抽選法一樣,基本運算也是蝶形運算。但兩者的蝶形形式略有不同。50第五節(jié)IDFT的快速算法-IFFT上述FFT算法流圖也可以用于離散傅里葉逆變換(InverseDiscreteFourierTransform,簡稱IDFT)。比較DFT和IDFT的運算公式:1)旋轉(zhuǎn)因子:2)系數(shù):51DIT―IFFT運算流圖52DIT―IFFT運算流圖(防止溢出)53如果希望直接調(diào)用FFT子程序計算IFFT,則可用下面的方法:對上式兩邊同時取共軛,得:54例1、如果通用計算機的速度為平均每次復(fù)乘需要5s,每次復(fù)加需要0.5s,用它來計算512點的DFT[x(n)],問:1)直接計算需要多少時間?2)用FFT需要多少時間?解:1)用DFT進行運算:復(fù)乘:T1=N2×5×10-6=1.31072秒復(fù)加:T2=N(N-1)×0.5×10-6=0.130816秒總共:T=T1+T2=1.441536秒552)用FFT進行運算:復(fù)乘:T1’=(N/2)log2N×5×10-6=0.01152秒復(fù)加:T2’=Nlog2N×0.5×10-6=0.002304秒總共:T’=T1’+T2’=0.013824秒56例2、長度為240點的序列x(n)與長度為N點的h(n)卷積。當N=10和240時,直接進行卷積x(n)*h(n)和用IFFT[X(K)·H(K)]
的方法相比,那種方法求
解y(n)的效率更高?x(n)h(n)y(n)=x(n)*h(n)L≥N1+N2-1X(k)補L-N1個零x(n)L點DFT補L-N2個零h(n)L點DFTL點IDFTy(n)=x(n)*h(n)H(k)Y(k)57直接進行卷積(N=10):乘法次數(shù):240×10=2400次用FFT的方法(N=10):添零到256點,L=256乘法次數(shù):3×(L/2)log2L+L=3×128×8+256=3328次58直接進行卷積(N=240):乘法次數(shù):240×240=57600次用FFT的方法(N=240):添零到512點,L=512乘法次數(shù):3×(L/2)log2L+L=3×256×9+512=7424次59第六節(jié)進一步而減少運算量的措施1、多類蝶形單元運算DIF―FFT運算流圖(N=8)60一個旋轉(zhuǎn)因子對應(yīng)一個蝶形單元。
(1)若程序中包含了所有的旋轉(zhuǎn)因子,則稱該對應(yīng)一個蝶形單元。
(2)若去掉有關(guān)于WNr=±1旋轉(zhuǎn)因子的乘法運算,則稱含二類蝶形單元。
(3)若再去掉有關(guān)于WNr=±j旋轉(zhuǎn)因子的乘法運算,則稱含三類蝶形單元。
(4)若再特殊處理關(guān)于旋轉(zhuǎn)因子的乘法運算,則稱含四類蝶形單元。61表4.1基2-FFT在各種蝶形單元下所需的實數(shù)乘法的次數(shù)蝶形單元種類一類蝶形單元實數(shù)乘法次數(shù)二類蝶形單元實數(shù)乘法次數(shù)三類蝶形單元實數(shù)乘法次數(shù)四類蝶形單元實數(shù)乘法次數(shù)N=24000N=8482084N=32320196136108N=128179212841032908N=5129216717261525644N=204845056368683277630372622、旋轉(zhuǎn)因子的生成將旋轉(zhuǎn)因子中正弦和余弦函數(shù)值余弦存放在數(shù)組中,在程序執(zhí)行時查表得到,比直接讓程序計算正弦余弦值的效率更高。3、實序列的FFT算法
(1)利用第三章的方法,用一次N點FFT計算兩個N點的實序列的FFT,一個實輸入作為實部,另一個實輸入作為虛部,計算完成后將結(jié)果進行簡單的分解即可得到它們各自的FFT結(jié)果。63
(2)另一種方法是用N/2點的FFT計算一個N點長的FFT。設(shè)x(n)為N點實序列,取x(n)的偶數(shù)點和奇數(shù)點分別作為新
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林藝術(shù)學(xué)院《媒體發(fā)布與管理》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林藝術(shù)學(xué)院《構(gòu)成與表現(xiàn)》2021-2022學(xué)年第一學(xué)期期末試卷
- 企業(yè)互關(guān)互助協(xié)議書范文范本
- 【初中數(shù)學(xué)】正數(shù)和負數(shù)課件 2024-2025學(xué)年人教+數(shù)學(xué)七年級上冊
- 吉林師范大學(xué)《小學(xué)跨學(xué)科教學(xué)案例研究》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林藝術(shù)學(xué)院《教育學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 【初中數(shù)學(xué)】實際問題與一元一次方程(6)余缺和差倍數(shù)課件 2024-2025學(xué)年人教版數(shù)學(xué)七年級上冊
- 吉林師范大學(xué)《數(shù)字圖像處理技術(shù)》2021-2022學(xué)年期末試卷
- 2014年廣西桂林市中考語文試卷(學(xué)生版)
- 2014年湖南省湘潭市中考語文試卷(含解析版)
- GB/T 39415.1-2020包裝袋特征性能規(guī)范方法第1部分:紙袋
- GB/T 17644-2008紡織纖維白度色度試驗方法
- 學(xué)前兒童健康教育形考任務(wù)4試題及答案
- 《勞動仲裁授權(quán)委托書》電子版
- 壓力容器日常安全檢查記錄
- 中國當代詩歌概況的知識
- 視神經(jīng)脊髓炎(同名980)課件
- 高壓旋噴樁施工質(zhì)量驗收標準
- revit教程第22講:體量課件
- 新農(nóng)村普法宣傳工作課件:法律常識講座
- 反洗錢管理系統(tǒng)課件
評論
0/150
提交評論