基2-FFT簡記

快速傅里葉變換(Fast Fourier Transform牲芋,F(xiàn)FT)是一種可在O(nlogn)時(shí)間內(nèi)完成的離散傅里葉變換(Discrete Fourier transform撩笆,DFT)算法。



復(fù)數(shù)單位根w^k_n

橫軸為實(shí)軸缸浦,縱軸為虛軸的復(fù)平面上夕冲,e^{i\theta }=cos\theta +i\cdot sin\theta

(將復(fù)平面單位圓均分成n份,以單位圓與實(shí)軸正半軸的交點(diǎn)一個(gè)等分點(diǎn)裂逐,以原點(diǎn)為起點(diǎn)歹鱼,n個(gè)等分點(diǎn)為終點(diǎn),做n個(gè)單位向量卜高,其中幅角為正且最小的向量被稱為n次單位向量弥姻,記為w^1_n)

易知w^n_n=w_n^0=1

所以,w^k_n= e^{k\cdot \frac{2\pi}{n} i }

(復(fù)平面中復(fù)數(shù)加法滿足平行四邊形法則掺涛,乘法滿足幅角相加庭敦,模長相乘)根據(jù)這性質(zhì)易幾何證明以下兩性質(zhì)

復(fù)數(shù)單位根性質(zhì):

1、折半引理:w^{2k}_{2n}=w^k_n? \Rightarrow ? w^{mk}_{mn}=w^k_n

2薪缆、消去引理:w_n^{k+\frac{n}{2} }=-w^k_n


離散傅里葉變換的復(fù)雜度為O(n^2)

快速傅里葉變換的復(fù)雜度為O(NlogN)

N點(diǎn)FFT階段數(shù)為logN而每一階段的復(fù)雜度為N秧廉,故復(fù)雜度為O(NlogN)

以8點(diǎn)FFT為例,綠色的列表示一個(gè)階段拣帽,每個(gè)空心圈表示一次乘加疼电,一列共N個(gè)



先看離散傅里葉變換(DFT)表達(dá)式? (x_n時(shí)域,x_k頻域):? ? ? ? ?

x_k = \sum_{n=0}^{N-1}x_n\cdot e^{-i \frac{2\pi kn}{N} },? k=0,1,...N-1

e^{-i \frac{2\pi kn}{N} } = w^{nk}_N

通過上述DFT的表達(dá)式减拭,其可以用復(fù)數(shù)單位根表示成:

x_k=\sum_{n=0}^{N-1}x_n\cdot w_N^{nk}? ? ? ? ? ? ? ? ,k=0,1,2,...,N-1

? ? ? =\sum_{n \in? even} x_n w_N^{nk}+\sum_{n \in odd} x_n w_N^{nk}

? ? ? =\sum_{r=0}^{\frac{N}{2} -1} x_{2r} w_N^{2rk}+\sum_{r=0}^{\frac{N}{2} -1} x_{2r+1} w_N^{(2r+1)k}

? ? ? ? =\sum_{r=0}^{\frac{N}{2} -1} x_{2r} w_N^{2rk}+w_N^{k} \sum_{r=0}^{\frac{N}{2} -1} x_{2r+1} w_N^{2rk}

? ? ? ? =\sum_{r=0}^{\frac{N}{2} -1} x_{2r} w_{\frac{N}{2}} ^{rk}+w_N^{k} \sum_{r=0}^{\frac{N}{2} -1} x_{2r+1} w_{\frac{N}{2} }^{rk}

? ? ? ? =G_k +w^k_NH_k

在這邊我們要注意的是蔽豺,我們所替換的G[k]與H[k]具有周期性:

此性質(zhì)根據(jù)單位根的幾何意義得證

上述的推導(dǎo)可以劃成下面的圖,以8點(diǎn)DFT為例(N=8峡谊,左邊一列為時(shí)域茫虽,右邊一列為頻域):

劃紅框處所示的\frac{N}{2} 點(diǎn)DFT架構(gòu)如下圖所示:

劃紅框處所示的\frac{N}{4} 點(diǎn)DFT架構(gòu)如下圖所示:

綜上刊苍,下圖是一個(gè)8點(diǎn)DIT FFT的完整架構(gòu)圖:

圖中應(yīng)用性質(zhì),例如左邊的


庫利和圖基的FFT算法的最基本運(yùn)算為蝶形運(yùn)算濒析,每個(gè)蝶形運(yùn)算包括兩個(gè)輸入點(diǎn)正什,因而也稱為基-2算法。?


參考:庫利-圖基快速傅里葉變換算法




FFT還能用來加速多項(xiàng)式乘法号杏。樸素計(jì)算兩個(gè)N-1次(N項(xiàng))多項(xiàng)式復(fù)雜度為O(N^2)

多項(xiàng)式系數(shù)表達(dá)法
多項(xiàng)式的點(diǎn)值表達(dá)法

設(shè)F(x) = f(x)\ast g(x)

點(diǎn)值表達(dá)法的多項(xiàng)式乘積十分方便婴氮,復(fù)雜度為

這里有個(gè)點(diǎn)就是點(diǎn)值表示法的乘積,按理說兩個(gè)n次的多項(xiàng)式乘積的最高次為2n盾致,而點(diǎn)值表示法就像是解方程主经,2n次方程式需要2n個(gè)點(diǎn)值點(diǎn)才能唯一確定,所以我理解的是需要兩次上圖的點(diǎn)值表示法乘積才能確定結(jié)果庭惜。

而是用DFT和IDFT可以分別轉(zhuǎn)換 系數(shù)表達(dá)法 到 點(diǎn)值表達(dá)法 和 點(diǎn)值表達(dá)法 到 系數(shù)表達(dá)法罩驻,F(xiàn)FT可以加速這兩個(gè)轉(zhuǎn)換過程。

大概過程是护赊,先將兩個(gè)系數(shù)表示法的多項(xiàng)式分別轉(zhuǎn)化為點(diǎn)值表達(dá)式惠遏,再進(jìn)行點(diǎn)值表達(dá)法的多項(xiàng)式乘積運(yùn)算,再將結(jié)果轉(zhuǎn)換回系數(shù)表達(dá)法骏啰。

需要注意的是节吮,在求兩個(gè)次數(shù)分別為n_1-1n_2-1的多項(xiàng)式的乘積時(shí),需要分別求出在至少n_1+n_2-1個(gè)點(diǎn)處的值判耕,這樣才能保證相乘后唯一確定一個(gè)n_1+n_2-2次多項(xiàng)式透绩。

假設(shè)C(x) = A(x)\ast B(x),A(x)、B(x)的點(diǎn)值表達(dá)式均有N個(gè)點(diǎn)壁熄,而他們的乘積C(x)因?yàn)榇螖?shù)為2N所以需要2N個(gè)點(diǎn)值點(diǎn)帚豪,那么怎么出現(xiàn)2N個(gè)點(diǎn)呢,多選一些點(diǎn)即可请毛。所以在計(jì)算N次多項(xiàng)式的點(diǎn)值表達(dá)法時(shí)要取2N個(gè)點(diǎn)值點(diǎn)志鞍,我的理解是這2N個(gè)點(diǎn)在復(fù)平面上直接取w_{2N}^k瞭亮,分成兩組N個(gè)點(diǎn)(保證了兩組中每個(gè)點(diǎn)均不同)方仿,對(duì)于一個(gè)系數(shù)表達(dá)式進(jìn)行兩次N點(diǎn)FFT,最終一個(gè)N次系數(shù)表達(dá)式得到2N個(gè)點(diǎn)值點(diǎn)统翩。這一步通過4次FFT完成了兩個(gè)待乘系數(shù)表達(dá)式到點(diǎn)值表達(dá)式的轉(zhuǎn)換仙蚜。然后進(jìn)行后續(xù)計(jì)算。

至于為什么將2N個(gè)點(diǎn)要分成兩組N計(jì)算厂汗,是因?yàn)橄禂?shù)表達(dá)式有N個(gè)點(diǎn)委粉,所以通過FFT一次只能計(jì)算N個(gè)點(diǎn)值點(diǎn),需要算兩次完成一個(gè)表達(dá)式的轉(zhuǎn)換娶桦,因?yàn)樾枰愕氖莾蓚€(gè)N-1階表達(dá)式的乘積贾节,需要轉(zhuǎn)換兩個(gè)式子汁汗,所以這一步共需4次FFT。而后面的點(diǎn)值表示法再轉(zhuǎn)回稀疏表示法可以直接一次2N點(diǎn)FFT搞定栗涂。個(gè)人理解知牌,有待考證




關(guān)于FFT加速多項(xiàng)式乘法具體見下文:

快速傅里葉變換FFT

FFT(快速傅里葉變換)0基礎(chǔ)詳解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市斤程,隨后出現(xiàn)的幾起案子角寸,更是在濱河造成了極大的恐慌,老刑警劉巖忿墅,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扁藕,死亡現(xiàn)場離奇詭異,居然都是意外死亡疚脐,警方通過查閱死者的電腦和手機(jī)亿柑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棍弄,“玉大人橄杨,你說我怎么就攤上這事≌肇裕” “怎么了式矫?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長役耕。 經(jīng)常有香客問我采转,道長,這世上最難降的妖魔是什么瞬痘? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任故慈,我火速辦了婚禮,結(jié)果婚禮上框全,老公的妹妹穿的比我還像新娘察绷。我一直安慰自己,他們只是感情好津辩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布拆撼。 她就那樣靜靜地躺著,像睡著了一般喘沿。 火紅的嫁衣襯著肌膚如雪闸度。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天蚜印,我揣著相機(jī)與錄音莺禁,去河邊找鬼。 笑死窄赋,一個(gè)胖子當(dāng)著我的面吹牛哟冬,可吹牛的內(nèi)容都是我干的楼熄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼浩峡,長吁一口氣:“原來是場噩夢啊……” “哼孝赫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起红符,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤青柄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后预侯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體致开,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年萎馅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了双戳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡糜芳,死狀恐怖飒货,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情峭竣,我是刑警寧澤塘辅,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站皆撩,受9級(jí)特大地震影響扣墩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扛吞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一呻惕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滥比,春花似錦亚脆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至查乒,卻和暖如春弥喉,著一層夾襖步出監(jiān)牢的瞬間郁竟,已是汗流浹背玛迄。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留棚亩,地道東北人蓖议。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓虏杰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親勒虾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纺阔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354