用于快速傅里葉變換的方法和電路的制作方法
【專利摘要】本發(fā)明要求保護一種用于快速傅里葉變換的方法和電路,方法包括:將FFT/IFFT數(shù)據(jù)的一組反序或正序地址轉(zhuǎn)換為一組以基數(shù)進制表示的地址;通過累加或者累減一組以基數(shù)進制表示的地址的各個數(shù)位,并對累加或者累減的結果取模,計算進行并行計算時用于緩存一組數(shù)據(jù)的多個存儲器位置的序號,其中基數(shù)表示FFT/IFFT計算的并行計算的短DFT序列的長度;將FFT/IFFT數(shù)據(jù)分別同時存儲在由計算的序號所指示的各自對應的存儲器位置;進行FFT/IFFT計算,包括:進行短DFT序列計算包括:從存儲器中取出相應數(shù)據(jù),直接將相應數(shù)據(jù)送入短DFT序列計算器進行計算,經(jīng)過修正旋轉(zhuǎn)因子修正計算的數(shù)據(jù),直接原址將修正后的數(shù)據(jù)送回存儲器;重復短DFT序列計算,直至整個FFT/IFFT計算結束。
【專利說明】
用于快速傅里葉變換的方法和電路
技術領域
[0001] 本發(fā)明設及頻率變換,尤其設及快速傅里葉變換的的方法和電路。
【背景技術】
[0002] 大點數(shù)的DFT計算一般都采用FFT算法的蝶形架構。通常地,"蝶形"出現(xiàn)在 Cooley-T址ey FFT算法中,其遞歸地將大小為η = rm的DFT分解為r個大小為m的較小 的DFT變換,其中,r是變換的"基"(radix)。運些較小的DFT然后通過大小為r的蝶形架 構組合在一起,在與單位根(也稱為旋轉(zhuǎn)因子)相乘之前,該蝶形架構本身是大小為r的 DFT (在對應的子變換的輸出上進行m次計算)。
[0003] 傳統(tǒng)的排列方式中,數(shù)據(jù)本身的先后順序并沒有任何規(guī)律,必須經(jīng)過一系列的重 新排列,組合為正確的數(shù)據(jù)順序后才能進行蝶形計算,且對于每次蝶形計算數(shù)據(jù)都要根據(jù) 當前計算的次數(shù)調(diào)整排列順序。在數(shù)字電路實現(xiàn)上,該調(diào)整排列順序的操作是通過一系列 的選擇控制邏輯來完成的。運種結構消耗了大量的資源且處于數(shù)據(jù)關鍵路徑上,對于電路 的面積和速度都有負面影響,對線道資源緊張的結構的影響更大(如在FPGA上的設計)。
【發(fā)明內(nèi)容】
[0004] 一種快速傅里葉變換/快速傅里葉逆變換(FFT/IFFT)的方法,包括:將FFT/IFFT 數(shù)據(jù)的一組反序或正序地址轉(zhuǎn)換為一組W基數(shù)進制表示的地址;通過累加或者累減所述一 組W基數(shù)進制表示的地址的各個數(shù)位,并對累加或者累減的結果取模,計算進行并行計算 時用于緩存一組數(shù)據(jù)的多個存儲器位置的序號,其中所述基數(shù)表示所述FFT/IFFT計算的 所述并行計算的短DFT序列的長度;將所述FFT/IFFT數(shù)據(jù)分別同時存儲在由計算的序號所 指示的各自對應的存儲器位置;進行所述FFT/IFFT計算,包括:進行短DFT序列計算包括: 從所述存儲器中取出相應數(shù)據(jù),直接將所述相應數(shù)據(jù)送入短DFT序列計算器進行計算,經(jīng) 過修正旋轉(zhuǎn)因子修正計算的數(shù)據(jù),直接原址將修正后的數(shù)據(jù)送回存儲器;重復所述短DFT 序列計算,直至整個FFT/IFFT計算結束。 陽0化]一種快速傅里葉變換/快速傅里葉逆變換(FFT/IFFT)的電路,包括:地址計算單 元,被配置為將FFT/IFFT數(shù)據(jù)的一組反序或正序地址轉(zhuǎn)換為一組W基數(shù)進制表示的地址; 所述地址計算單元還被配置為通過累加或者累減所述一組W基數(shù)進制表示的地址的各個 數(shù)位,并對累加或者累減的結果取模,計算進行并行計算時用于緩存一組數(shù)據(jù)的多個存儲 器位置的序號,其中所述基數(shù)表示所述FFT/IFFT計算的所述并行計算的短DFT序列的長 度;接口單元,被配置為將所述FFT/IFFT數(shù)據(jù)分別同時存儲在由計算的序號所指示的各自 對應的存儲器位置;FFT/IFFT計算單元,被配置為進行所述FFT/IFFT計算,包括:短DFT序 列計算器,用于:從所述存儲器中取出相應數(shù)據(jù),經(jīng)過修正旋轉(zhuǎn)因子修正取出的相應數(shù)據(jù), 直接對所述相應數(shù)據(jù)進行計算短DFT序列計算,直接原址將計算后的數(shù)據(jù)送回存儲器;重 復所述短DFT序列計算,直至整個FFT/IFFT計算結束。
[0006] 一種接收機,包括上述的快速傅里葉變換/快速傅里葉逆變換(FFT/IFFT)的電 路。 陽007] -種信號發(fā)生器,包括上述的快速傅里葉變換/快速傅里葉逆變換(FFT/IFFT)的 電路。
【附圖說明】
[0008] 本發(fā)明通過所附的附圖用示例形式展示。附圖應當被理解為作為示例而非限制 的,本發(fā)明的范圍是由權利要求所限定的。在附圖中,相同的附圖標記代表相同的組件。
[0009] 圖1示出了根據(jù)本發(fā)明的一個實施例的方法流程圖。
[0010] 圖2示出了包含用于修正的乘法器的FFT計算電路。 W11] 圖3示出了對圖2的多個乘法器的優(yōu)化的FFT計算電路框圖。
[0012] 圖4示出了對圖3的多個乘法器進行合并W后的FFT計算電路框圖
[0013] 圖5示出了根據(jù)本發(fā)明的一個實施例的多路復用器的示意圖。
[0014] 圖6示出了根據(jù)本發(fā)明的一個具體實施例的電路的裝置框圖。
[0015] 圖7示出了根據(jù)本發(fā)明的另一個實施例的電路裝置框圖。
[0016] 圖8示出了根據(jù)本發(fā)明的另一個實施例的電路裝置框圖。
[0017] 圖9示出了根據(jù)本發(fā)明的另一個實施例的電路裝置框圖。 具體實施例
[0018] 本發(fā)明的多個方面及例子將在此被描述。接下來的說明為運些例子的全面理解及 可行的說明提供了具體的細節(jié)。但是本領域技術人員將理解本發(fā)明可在缺少許多運些細節(jié) 的情形下被實施。此外,一些眾所周知的結構和功能將不會被具體地顯示或描述,W避免不 必要地模糊相關說明。
[0019] 首先,需要將待進行FFT計算的輸入數(shù)據(jù)均勻地排放在各自對應的存儲器中,排 列方法一般W數(shù)據(jù)的地址按2"模異或(? )(也即,將數(shù)據(jù)的地址W基數(shù)(radix, W下也稱 為"基")取模,再進行異或計算)或者其他計算得到數(shù)據(jù)排放在對應的W存儲器序號指示 的存儲器中。
[0020] 圖1示出了根據(jù)本發(fā)明的一個實施例的方法流程圖。在圖1的方法100包括:在 塊110中,將FFT/IFFT數(shù)據(jù)的一組反序或正序地址轉(zhuǎn)換為一組W基數(shù)進制表示的地址。
[0021] 然后,方法100在塊120中通過累加或者累減該一組W基數(shù)進制表示的地址的各 個數(shù)位,并對累加或者累減的結果取模,計算進行并行計算時用于緩存一組數(shù)據(jù)的多個存 儲器位置的序號,其中基數(shù)(radix)表示所述FFT/IFFT計算的所述并行計算的短DFT序列 的長度,例如,如果參與一次蝶形短DFT序列運算為8點,則基為8。
[0022] 具體地,令數(shù)據(jù)的地址為AcMr,該地址可能是正序地址,也可能是反序地址,該地 址的二進制表示為AcMr = b"ib"2b"3. ..bn(l),其中η = log2(N),N為FFT序列長度,每一 位b。1,b。2. . . b。表示二進制的數(shù)位。
[002引若采用基r的FFT算法,則存儲器的塊數(shù)為r塊,序號m。,.... nif 1。數(shù)據(jù)A按互 斥規(guī)則排列在序號為Μ的存儲器中。則按照本發(fā)明的計算方法采用模加或者模減的計算方 法,則Μ的表達方式為: 陽024] Μ =也山 2. . . b〇) r+ 化2r ibzr 2. . . br) r+. . . + 化。Λ 2. . . b(i 化)r或者 陽02引 Μ =也山 2. . . b〇) r_ 化2r ibzr 2. . . br) r_. . . - (bn ibn 2. . . b(i I)r) r,1 X 1〇邑2 佩=η。
[0026] 其中,括號外右下角的r表示該數(shù)字是r進制,r為FFT計算的基數(shù)。
[0027] 更具體地,數(shù)據(jù)的地址也可W采用另一種方式進行表示- 陽02引 Ad化 = BslBパBパ....BlB。,B是Wr為基的數(shù)字。似
[0029] 例如,基(radix)8的512點的FFT變換,數(shù)據(jù)的地址可W表示為ΒζΒΛ,其中,B2, Βι,Β。均為八進制的數(shù)字,而結合式(1),將各個數(shù)位Β轉(zhuǎn)換為二進制的b,可W分別表示為: Bz= b η lb。zbn 3= b 井如,Bi = b η 如 sbn 6= b 56463, B〇= b 2叫。。 W30] 數(shù)據(jù)所要存儲至的對應的存儲器位置的序號可W表示為bank序號,也即 為進行并行計算時用于緩存一組數(shù)據(jù)的多個存儲器位置的序號,其中,bank_num = 化 i+Bs 2化 3+.....+Bi+B〇)r,其中,B = bi 山 2. . bib。,i = log2(r)做
[0031] W下表一顯示了對于完全循環(huán)移位情形如何獲取對應的存儲器的序號: W巧表一
[0033]
[0034] 然后,將FFT/IFFT數(shù)據(jù)分別同時存儲在由計算的序號所指示的各自對應的存儲 器位置。
[0035] 我們理解,在FFT蝶形計算中,可能會計算多級FFT。在第S級的任一次蝶形計算 中,所需要的數(shù)據(jù)地址為Ar,
[0036] 先令i = log2 (r),r為FFT算法的基。 陽037] Af= b η ibn 2. . . bisQi 祉 2. . . q〇bi(s 1) 1. . . b。,其中 Qi 祉 2. . . q〇= V,V = 0,1,2, 3----,:r-1。公式中的bi,qi均表示二進制數(shù),而V表示一個r進制數(shù)。
[0038] 由此可得知所需數(shù)據(jù)存放的存儲器的序號為
[0039] Mf=化 K 柏 2. . . b〇)+/-. . . +/-V+/-. . . (bn Λ 2. . . b(i 1化)(4),將上式中公共項提 出 Mconst =徊如 2. . . b〇)+/-. . . +/-化。ibn 2. . . b(u)R) (1 聲 S),其中 lXlog2(;r) = η。其 中,Mconst表示參與同一次計算的其他相同的位。r代表的是短DFT序列運算單元的長度, 例如8點,16點等。R = log2(r),表示r的W 2為底的對數(shù)。 W40] Mf= Mconst+/-v,其中,V = 0,1,2,3. . . .,r-1。因此,所需的數(shù)據(jù)必然都在不同 的存儲器中,因為r是不同的。
[0041] 由此可W得出計算方式的變化仍然保持互斥的性質(zhì)。但是當r連續(xù)變化的時候, 可W看到Mf也是連續(xù)變化的,運就使得按照Mf連續(xù)取出的數(shù)據(jù)與參與計算的順序有著相同 的順序,不過是初始點不同,運就構成了循環(huán)移位的性質(zhì)。本發(fā)明的實施例正是利用DFT的 運種性質(zhì)推導出完全省略reorder模塊的數(shù)學方法和實現(xiàn)架構。 陽0創(chuàng)例如,W巧-32K FFT中的第立級中的一次8點FFT為例,參與計算的數(shù)據(jù)的地址 為A0, A1......A7, Me為根據(jù)本發(fā)明的實施例的存儲器的序號
[0043] A0 = 000_001_000_100_000
[0044] Me = 000+001+000+100+000 = (101)2
[0045] A1 = 000_00!_00 !_!00_000
[0046] Me = 000+001+001+100+000 = (110)2
[0047] A2 = 000_00!_0 !0_!00_000
[0048] Me = 000+001+010+100+000 = (111)2
[0049] A3 = 000 001 Oil 100 000 陽0 加 ]Me = 000+001+011+100+000 = (000)2
[0051] A4 = 000_001_100_100_000
[0052] Me = 000+001+100+100+000 = (001)2
[0053] A5 = 000_001_101_100_000
[0054] Me = 000+001+101+100+000 = (010)2 陽化 5] A6 = 000_001_110_100_000 陽化 6] Me = 000+001+110+100+000 = (011)2
[0057] A7 = 000_001_111_100_000
[0058] Me = 000+001+111+100+000 = (100)2
[0059] 本領域技術人員可W理解,雖然上述例子W累加進行舉例,本發(fā)明也同樣適用于 累減。
[0060] 表二是W存儲器的序號來表示數(shù)據(jù) ww]表二
[0062]
[0063] 由表二可W看出根據(jù)本發(fā)明的實施例的數(shù)據(jù)產(chǎn)生了循環(huán)移位的性質(zhì)。 W64] W下推導過程說明了發(fā)明實施例的數(shù)學等效性。 陽0化]DFT的基本公式
[0066]
[0067] DFT的基本性質(zhì)
[0073] 式(8)顯示出經(jīng)過一定的數(shù)學變換,可W用X[n]序列的循環(huán)移位序列X[n-s]經(jīng) 過一個標準的DFT過程,得到X[n]的DFT結果-X比]序列的移位序列X比-S]。
[0074] 結合本實施例中的地址排列的方式,可W推斷出即便沒有重新排序模塊也是可W 得到正確的結果的。
[0075] 然后,在塊130中,方法100將FFT/IFFT數(shù)據(jù)分別同時存儲在由計算的序號所指 示的各自對應的存儲器位置。
[0076] 然后,在塊140中,方法100進行所述FFT/IFFT計算。
[0077] 具體地,在塊140中,方法100從存儲器中取出相應數(shù)據(jù),經(jīng)過修正旋轉(zhuǎn)因子修正 取出的相應數(shù)據(jù),直接將相應數(shù)據(jù)送入短DFT序列計算器進行計算,直接原址將計算后的 數(shù)據(jù)送回存儲器;重復所述短DFT序列計算,直至整個FFT/IFFT計算結束。本領域技術人 員可W理解,整個FFT/IFFT計算結束也即完成了所有級的計算。
[0078] 本發(fā)明的該實施例主要是改變地址排列的方式,采用模加或是模減的方式,在保 持數(shù)據(jù)讀取互斥的前提下,使得數(shù)據(jù)排列的順序并非是隨機沒有規(guī)律的,而是與需要的數(shù) 據(jù)順序存在循環(huán)移位的特性。換言之,計算的存儲器位置的序號是在一次短序列DFT計算 中使用的數(shù)據(jù)序號的循環(huán)移位。數(shù)學上利用DFT的時間移位性質(zhì)和頻率移位性質(zhì)使得數(shù)據(jù) 并不需要重新排列就可W進入計算單元,且計算單元輸出數(shù)據(jù)也不需要重新排列就可W完 成整個FFT,且仍然是同址計算,因而不需要增加任何存儲器。換言之,對于每次運算,通過 短DFT序列運算單元的端口,按照編號從對應編號的存儲器中取出數(shù)據(jù),不需要重新排列 順序后再送到所述短DFT序列運算單元端口;然后按照輸出端口的序號將運算單元運算的 結果送入對應編號的存儲器中,實現(xiàn)同址計算。
[00巧]可選地,在另一個實施例中,需要對FFT結果進行一定的修正,從而實現(xiàn)同址計 算,使得開銷進一步降低。
[0080] 例如,圖2示出了包含用于修正的乘法器的FFT計算電路。其中,W矩形圖案標記 的一列乘法器表示巧:"',也即,對應W上式(8)中的巧%"'。W楠圓形圖案標記的一列乘法 器表示旋轉(zhuǎn)因子(Twiddle化ctor),也即對應于上式(8)中的菱形圖案標記的一 列乘法器表示巧氣,也即對應于W上式(8)中的巧?"。角形圖案標記的一列乘法器表 示採1;2,也即對應于W上式(8)中的的/',。
[0081] 具體地,?ΤΓ表示第一修正因子,
[0090] 如圖2所述,首先w第一修正因子調(diào)整待進行短DFT序列計算的數(shù)據(jù),然后ww旋 轉(zhuǎn)因子處理修正后的序列,然后將經(jīng)處理的序列送入短DFT序列計算器進行計算,最后W 第二修正因子調(diào)整經(jīng)過DFT計算后的數(shù)據(jù)。其中,B = ( Σ Bs)r,(S聲i-l)i表示FFT/IFFT 計算的級,所述數(shù)據(jù)具有地址為Bs iBs zBi. . . . BiB。,Bi= 0,1,2. . . r-1,r表示FFT計算的基 數(shù),B, 1、B, 2、Bi、B。中的每一個是W基數(shù)為基的數(shù)化N表示FFT/IFFT計算的點數(shù)。
[0091] 圖3示出了對圖2的多個乘法器的優(yōu)化的FFT計算電路框圖。為了進一步優(yōu)化電 路結構,在該實施例中,調(diào)整了保存數(shù)據(jù)的存儲器的位置。也即,將原來位于各個虛線框中 的存儲器bank移動至位于實線框中的各個存儲器bank。此外,將本級的后兩個修正因子 (W菱形圖案標記的乘法器巧?"和Ξ角形圖案標記的乘法器睞)與下一級的前兩個因 子(W矩形圖案標記的乘法器巧?"'和W楠圓形圖案標記的乘法器)合并。
[0092] 將圖3與圖2進行對比,可W發(fā)現(xiàn),圖3中移動了存儲器的位置,將兩級之間的因 子合并了在了一起。因為存儲器只是暫存數(shù)據(jù),并不參與計算,所W移動存儲器的位置,不 會影響計算結果。由于旋轉(zhuǎn)因子(也稱為相位因子)的特殊性質(zhì),四個旋轉(zhuǎn)因子的乘積只 是其角度的簡單的疊加。因此,只要修正原旋轉(zhuǎn)因子的查表的地址,就可W完成四個因子相 乘的計算,極大地簡化了電路結構,使得本發(fā)明的實施例的優(yōu)勢大大提高。由于第一級的旋 轉(zhuǎn)因子始終是常數(shù)1,所W第一級只需要在數(shù)據(jù)輸入時加入簡單的變換就可W。最終的電路 架構示意圖如圖4所示。
[0093] 圖4示出了對圖3的多個乘法器進行合并W后的FFT計算電路框圖。圖4中,將 圖3中的四個乘法器合并成一個乘法器,節(jié)省了電路中的元件資源。盡管圖4示出了兩組 存儲器,本領域普通技術人員應該能夠理解,圖4中示意的兩組存儲器實際上是一組。
[0094] 如果計算第i級,數(shù)據(jù)的地址為Bs瓜zBi. . . . ΒΛ,其中Βι= 0,1,2. . . r-1 陽0巧]設定:
[0096] B = ( Σ Bs)r,(S 聲 i-1),
[0097] C = ( Σ Bs)r,(S 聲:〇, W9引 W及
[0099] W加 ddie= exp(-jX 度 wX 度瓜 1. . . . ΒΛ) Xr~ (s-i)) X化i/N) (9); 陽 100] W(-sk,r) = exp (j X 度Xk)fX 化i/r),k = 0,1,2. . . r-l (10)
[0101] W(-sn,,r) = exp (j X (CXn)fX 化i/r),η = 0,1,2. . . r-l (11) 陽 10引 W(s2, r) = exp(-jX 度XB)fX化i/r) (12) 陽 10引 進行 W下修正:Wtotal =化widdleXW(-sk,r) XW(-sn,,r) XW(s2, r) (13)
[0104] 然后,將運些因子進行結合,并W基N對它們進行歸一化: 陽 10引 Index = BwX 度瓜 1. . . . ΒΛ) Xr-(s-i) + [(BXk)r+(CXn)r+度XB) J X (N/r) (14) 陽 106]因此,W = exp[(-jX 度wX 度瓜 1. . . .BiB0) Xr~(s-i)) X化i/N) + (jX 度Xk) fX化i/r) + (jX (CXn)fX化i/r) + (-jX 度XB)fX化i/r)] (15) 陽107] 上述各式中,度Xk)f中的下標r表示對r取模。例如,B = 3, k = 4, r = 8,則 BXk= 12, BXk的結果對r取模為4。其他類似的下標表示相同的含義。
[0108] 換言之,在一個實施例中,如圖4所示,W旋轉(zhuǎn)因子調(diào)整FFT/IFFT計算后的數(shù)據(jù), 也即對FFT或IFFT計算單元的計算結果乘W其中旋轉(zhuǎn)因子表示為exp[(-jX度wX度瓜1 ....ΒΛ) Xr~ (s-i)) X化i/N) + (jX 度Xk)fX化i/r) + (jX (CXn)fX化i/r) + (-jX 度XB) fX 化i/r)],其中,B = ( Σ Bs)r,(s 聲 i-1),C = ( Σ Bs)r,(s 聲;〇,i 表示 FFT/IFFT 計算 的級,數(shù)據(jù)具有地址為BsiBszBi. ...BiB。,Bi= 0,1,2. ..r-1,r表示FFT計算的基數(shù),Bsi、 Bs 2、Bi、B。中的每一個是W基數(shù)為基的數(shù)化N表示FFT/IFFT計算的點數(shù)。
[0109] 對于第一級(stage),由于上述式子(15)中的有些因子等于1,也即化widdle = 1,因此,對于第一級,修正因子可W進一步簡化為:
[0110] W =眠 :"=::;ex隊j/ iC \ n)r ^pi / r),紅::取日,廬;(y技sU 社0)(化) 陽111] 數(shù)據(jù)在初次寫入時按照公式(16)進行修正。注意到,如圖4所示的乘法器是將圖 3的當前級的兩個乘法器和下一級的兩個乘法器進行合并。
[0112] 旋轉(zhuǎn)因子的修正是根據(jù)公式(8)中的要求,修改查表的地址,只需要在原方案的 地址上加一個R bit的加法器即可,修正值由控制器控制。注意到,旋轉(zhuǎn)因子對應的公式為 因此,只需要對旋轉(zhuǎn)因子的高R比特通過查表進行加法計算,得到修正的索引,利用修 正的索引中的旋轉(zhuǎn)值,就可W對旋轉(zhuǎn)因子進行修正。另外注意到,在實際操作中,乘法器的 相乘的計算,轉(zhuǎn)換為相位相加,實際進行的是加法操作,通過查表即可W得到修正值。
[0113] 在本發(fā)明的至少一個實施例中,當一組數(shù)據(jù)包括在非第一級計算的數(shù)據(jù),方法還 包括從相應的存儲器位置獲取數(shù)據(jù)?;倦娐芳軜嫴捎脠D4所示的架構,每級迭代由控制 器產(chǎn)生數(shù)據(jù)的地址,從各個bank中取出數(shù)據(jù),直接送入到DFT計算單元中,經(jīng)過計算的數(shù)據(jù) 乘W-個經(jīng)過修正旋轉(zhuǎn)因子存入到bank中,進行下一級計算。
[0114] 具體地,在包括第一級在內(nèi)的每一級FFT計算中,需要進行r-點FFT計算的次數(shù) 為N/r次。其中,N為FFT計算的總的點數(shù),r為FFT計算的基數(shù)。在每一級的計算中,僅 有r點中的可能的一小部分的數(shù)據(jù)的順序是正確的。在本發(fā)明的實施例中,從存儲器中輸 出的r點是輸入點的循環(huán)移位。
[0115] 在本發(fā)明的一個實施例中,F(xiàn)FT/IFFT計算的長度為2的整數(shù)次幕。當FFT計算的 點數(shù),也即數(shù)據(jù)的長度不是基數(shù)r的整數(shù)次幕時,可W對數(shù)據(jù)的地址填充0, W使填充后的 數(shù)據(jù)的地址滿足基數(shù)r的整數(shù)次幕。例如. 陽 116]如果進行 128 點 FFT,使用 8 點 DFT,則 R = log2(8) = 3, I = log2(128) = 7。 陽117] 在一個實施例中,如果I = 7,可W對地址填充2個0。具體地,F(xiàn)FT具有兩種形式。 一種是時間抽取FFT (DIT-FFT),一種是頻率抽取FFT (DIF-FFT)。
[0118] 假設數(shù)據(jù)的序列是進行時間抽取FFT,并且該數(shù)據(jù)的自然地址為 陽119] nature-address =曰5 1曰5 2曰8 3...曰4曰3曰2曰1曰。
[0120] 首先需要通過逆位序地址(reverse ad化ess),對數(shù)據(jù)進行重新排序。如何逆位序 地址取決于所進行DIT-FFT的級。 陽12U 例如,假設使用W r為基的DFT。令R = log2(r)。 陽122] 情形一 :s是R的整數(shù)倍。 陽12引總共有m級,其中m = s/R,每個級使用r-點DFT。將自然地址轉(zhuǎn)換為如下的W r 為基的地址,
[0124] nature-address = Γ" 江" 2. . . ΓιΓ〇
[0125] reverse-address = Γ〇Γι. . . Γ" 2Γηι 1 陽126] 在W上討論的等式(2)中給出的地址ad化=Bs iBs 2Bs3. . . . ΒιΒ。,Β已經(jīng)表示的是 逆位序的地址。因為對地址進行逆位序操作是本領域常規(guī)技術,也不是本發(fā)明關注的重點, 因此,其過程在此被省略。 陽127] 情形二:s不是R的整數(shù)倍。 陽12引總共仍為有m級,其中「S/R],「]表示向上取整。有一個級使用Wrs為基的 DFT,而其他級使用r-點DFT。rs仍為2的整數(shù)次幕,但是小于r。理論上,可W將Wrs為 基的DFT放在任何級,運決定了如何逆序(反序)地址。
[0129] 例如,將W rs為基的DFT放在第m-i級,將自然地址轉(zhuǎn)換為r-rs混合的系統(tǒng),
[0130] η曰ture_3ddress = Γ" 江" 2...巧...1"江〇 陽13U r是r-基的數(shù)字,rs是rs-基的數(shù)字。
[0132] reverse-address = Γ〇Γι...巧...Γ" 2Γηι 1 陽13引例如,進行256點FFT,使用8點DFT,則S = log2 (腳=8,姐=[WrI二「8巧>3。rs =4,因此,如果有3個級,則2個級是8-基DFT,W及一個級是4-基DFT。 陽134] nature acMress = bXbsbAbsbzbib。,其中 b 是二級制數(shù)字
[0135] 子情形一:首先進行4-基DFT
[0136] η曰ture_address = Γ82ΓιΓ〇, r〇= b zbibo, Γι= b 56463, rs2= b ybg
[0137] reverse-address = γ〇ΓιΓ82 陽13引在一個實施例中,對rs2填充0。定義rs' = {rs,' 0' },通過累加 r。,Γι,r,2',可 W得到存儲器序號。 陽139] 令Bs化zBs 3--ΒΛ= r〇;Ti...巧...I'm 2r"i 1,相當于式似中的表達方式,可W參 照式(2)進行后續(xù)的計算。 陽140] 子情形二:4-基DFT在中間級進行計算
[0141] η曰ture_address = Γ2Γ8ιΓ〇, r〇= b zbibo,b ybgbg,rsi= b 如
[0142] reverse-address = γ〇Γ8ιΓ2
[0143] 在一個實施例中,定義rs' = {rs,' 0' },存儲器序號=;r〇+rsi'
[0144] 子情形Ξ :4-基DFT在最后級進行計算
[0145] nature-address = Wirso, Γ;= b 46362,b ybgbg,rs〇= b ib〇
[0146] reverse_address = Γ8〇ΓιΓ2 陽147] 在一個實施例中,定義s' = {rs,' 0' },存儲器序號=ri甘s。'甘2
[0148] 此外,雖然W上的實施例WD口-FFT進行舉例,本發(fā)明的實施例同樣適用于 DIF-FFTo
[0149] 例如,在一個實施例中,對數(shù)據(jù)序列進行DIF-FFT,且
[0150] nature-address =曰5 1曰5 2曰8 3...曰4曰3曰2曰1曰。 陽15U 將自然地址轉(zhuǎn)換為r-基的系統(tǒng):
[0152] η曰ture_3ddress = Γ" 江" 2...巧...1"江〇 陽153] 不需要逆序(反序)地址,其他操作與DIT-FFT相同。將所有的r和rs'相加得 到存儲器序號。 陽154] W下實施例描述了對地址填充0之后,如何進行旋轉(zhuǎn)操作。 陽155] 對于DIT-FFT,定義sti是進行DFT操作的級,sti 1是前一級,W及St W是下一級。 陽156] 前一級: 陽 157] index = - [ (C0Xn) J X (Ν' /r) 陽15引 1~m-1級: 陽 159] index = BwX 度瓜 1. . . . ΒΛ) Xr~ (m-U-[值1 iXki 1)。1+值1 iXDi 1)。1] X (N,/ rU + (CiXrii i)nX (Ν' Ai) 陽16〇](用D代替B,W避免混淆) 陽161] m級: 陽 162] index = [ (Dm 1X k) r+ (Dm 1X Dm 1) J X (Ν' /r) 陽16引 。=(Σ B s)r,(s聲U,如果級i不是r-基級,則。=(Σ B s)r> >
[log2(r)-log2(rs)L (s聲i)。>>表示右移符號。。為(EBs)的計算結果再除W [log2(;r)-log2(rs)]的計算結果。 陽164] Di= ( Σ B s)r,(S 聲 i),如果級 i 不是 r-基級,則級 Di= ( Σ B s)r> > [log2 (r) -log2 (rs) ],(s ^ 陽16引 k = η = ( Σ Bs)r,女曰果級i不是r-基級,k = η = ( Σ Bs)r> >
[log2 (r)-log2 (rs)] 陽 166] Ν'=Γ", 陽 167] 1·;= rs 或 r。
[0168] 在另一個實施例中,對于DIF-FFT,定義sti進行DFT操作的級,sti 1是前一級,W 及stw是下一級。 陽169] 前一級: 陽 170] index = - [ (C0 X η) J X (Ν' /r) 陽17U 1~m-1級: 陽1 7引 index = Bm 1 X 度m 1 1. . . . BiB0) X r - (i-1) - [ (Dm 1 X km 1) ri i+(Dm 1 X Dm 1) rm 1] X (N,/ i)
[0173] +(CmiiXnmii)rmilX(N'/rmi) 陽174] m級 陽 1 巧]index = [ (D0 X k) r0+ (D0 X D0) ro] X (Ν' /ro)
[0176] 本領域技術人員可W理解,上述的實施例中地址填充方式也同樣適用于對地址填 充一個0,或多于2個0的情形。
[0177] 在另一個實施例中,在計算數(shù)據(jù)的地址,也即,數(shù)據(jù)的地址可W表示為acMr = B, A化3. ... ΒΛ,B是W r為基的數(shù)字的步驟之前,對B進行進一步的變換。例如,設定B' =B+化。)X (r/2),該公式的另一種表達方式為B' =也ιΛ) bi 2. . bib。。 陽17引例如,如果數(shù)據(jù)的地址為(476)8, 陽 179]則 Bz二(4) 8二(100) 2,Bz,二(100) 2+0 X (8/2)二 4 ; 陽 180] Bi= (7) 8= (111) 2, B/ = (IID2+IX (8/2) = 3 ;
[0181] B〇= (6) 8= (110) 2, B。' = (110)2+0X (8/2) = 6。 陽182] 存儲器的序號為:
[0183] bank_num = (4+3+6) s= 7 陽184] 按照另一種表達方式計算,也會得到相同的結果: 陽185] 例如,如果數(shù)據(jù)的地址為(476)8,
[0189] 存儲器序號為:
[0190] bank_num = (4+3+6)8= 7 陽191] W下表Ξ顯示了對于部分循環(huán)移位情形如何獲取對應的存儲器的序號: 陽19引表立 陽 193]
[0194] 在該實施例中,偶數(shù)位0,2,4,6仍表現(xiàn)出循環(huán)移位的特性,而奇數(shù)位的順序是亂 序的。需要重新排序單元將5和1對調(diào),將7和3,從而重新排序后的B1的順序表現(xiàn)為0, 1,2, 3,4, 5,6, 7。
[0195] 部分循環(huán)移位僅僅是一種輔助的方法。在該方法中,不需要將數(shù)據(jù)重新排序為完 全正確的順序,而是僅僅排序為循環(huán)移位的順序,然后就可W使用上述的實施例的方法。為 了重新排列成循環(huán)移位的順序,需要r/2個2選1的多路復用器(MUX,也稱為選通邏輯電 路)。換言之,在部分循環(huán)移位情形下對應的存儲器序號的情況下,需要通過選擇器,對來自 相應的存儲器位置的一組數(shù)據(jù)重新排序,其中選擇器的可選通的通路小于FFT/IFFT計算 的基數(shù)。而相對地,在傳統(tǒng)的方案中,需要r個r選1的多路復用器(MUX),因此,該實施例 仍然大大降低了布線,從而節(jié)省了片上面積。置于在本實施例中如何部署r/2的2選1的 多路復用器取決于使用了何種地址排布方式。例如,圖5示出了根據(jù)本發(fā)明的一個實施例 的多路復用器的示意圖。如果B'=化11、。)bi 2.. bib。,則如圖5所示,將多路復用器放在 W 下各個對之間:(D。,Dr/2),值1,Dr/2W),值2, Dr/糾)...值r/2 1,Dr 1)。 陽196] 根據(jù)本發(fā)明的另一些實施例,雖然仍需使用到數(shù)據(jù)重新排列W及數(shù)據(jù)重新排列所 需要的相應的選通邏輯,但使用到的選通邏輯電路仍遠遠小于完全亂序的方式。 陽197] W上的實施例均是W FFT計算為例進行描述。本領域普通技術人員應能理解,上 述各個實施例也同樣適用于快速傅里葉逆變換(IFFT)。一般地,F(xiàn)FT與IFFT相互之間呈現(xiàn) 共輛的關系。也即,IFFT與FFT計算結果實部相同,虛部相反。因此,如果例如使用圖4的 框圖進行IFFT計算,在數(shù)據(jù)輸入存儲器之前,首先對虛部取反,然后計算結果再從存儲器 中取出后,再對虛部取反,就得到IFFT的計算結果。
[0198] 在另一個實施例中,數(shù)據(jù)排放的方法并不局限于模加或模減的方式,只要能產(chǎn)生 循環(huán)移位性質(zhì)的排列方法都是可行的,或者是部分數(shù)據(jù)存在循環(huán)移位的性質(zhì)。
[0199] 在另一個實施例中,利用部分循環(huán)移位的性質(zhì)可W簡化重新排序模塊但是不能完 全的去除該模塊。 陽200] 在另一個實施例中,利用多個復數(shù)乘法器也可W不合并修正因子而直接進行計 算。 陽201] 此外,在一個實施例中,改變存儲器在迭代過程中保存數(shù)據(jù)的位置,將額外需要的 復數(shù)乘法器與原先的旋轉(zhuǎn)因子乘法器合并,所W該方案沒有增加任何的乘法資源,而只是 增加了若干個η bit的加法器(η為蝶形計算的基數(shù)),且不處于數(shù)據(jù)通路上。 陽202] 此外,本領域技術人員可W理解,雖然本文中的實施例W蝶形計算為例進行說明, 本發(fā)明的實施例同樣適用于其他短DFT序列計算,例如,Cooley-T址ey算法,Rader' S算 法,Bluestein' s 算法等。 陽203] 圖6示出了根據(jù)本發(fā)明的一個具體實施例的電路的裝置框圖。該用于進行快速 傅里葉變換/快速傅里葉逆變換(FFT/IFFT)的電路600包括地址計算單元610、接口單元 620、FFT/IFFT 計算單元 630。 陽204] 地址計算單元610被配置為將FFT/IFFT數(shù)據(jù)的一組反序或正序地址轉(zhuǎn)換為一組 W基數(shù)進制表示的地址;地址計算單元610還被配置為通過累加或者累減所述一組W基數(shù) 進制表示的地址的各個數(shù)位,并對累加或者累減的結果取模,計算進行并行計算時用于緩 存一組數(shù)據(jù)的多個存儲器位置的序號,其中所述基數(shù)表示所述FFT/IFFT計算的所述并行 計算的短DFT序列的長度。
[0205] 接口單元620被配置為將FFT/IFFT數(shù)據(jù)分別同時存儲在由計算的序號所指示的 各自對應的存儲器位置。 陽206] FFT/IFFT計算單元630被配置為進行所述FFT/IFFT計算。Fiy IFFT計算單元630 進一步包括短DFT序列計算器(圖中未示出)用于從存儲器中取出相應數(shù)據(jù),直接對相應 數(shù)據(jù)進行計算短DFT序列計算,經(jīng)過修正旋轉(zhuǎn)因子修正計算的數(shù)據(jù),直接原址將修正后的 數(shù)據(jù)送回存儲器。短DFT序列計算器重復所述短DFT序列計算,直至整個FFT/IFFT計算結 束。
[0207] 可選地,所述接口裝置被配置為對于每次運算,通過短DFT序列運算單元的端口, 按照編號從對應編號的存儲器中取出數(shù)據(jù),不需要重新排列順序后再送到所述短DFT序列 運算單元端口;按照輸出端口的序號將運算單元運算的結果送入對應編號的存儲器中。 陽20引在一個可選的實施例中,計算的存儲器位置的序號是在一次短序列DFT計算中使 用的數(shù)據(jù)序號的循環(huán)移位。 陽209] 在一個可選的實施例中,其中每個經(jīng)修正后的短DFT序列計算數(shù)據(jù)不需要重新排 列,直接進入與用于FFT/IFFT計算的計算單元對應的輸入端口;且電路600不包含選擇器。 [0210] 圖7示出了根據(jù)本發(fā)明的另一個實施例的電路裝置框圖。在該可選的實施例中, 數(shù)據(jù)的地址的W基數(shù)進制表示的每個數(shù)位包括多個比特,電路700還包括轉(zhuǎn)換器705和選 擇器730。轉(zhuǎn)換器705被配置為通過對每個數(shù)位的所述多個比特中的兩個比特進行異或操 作,轉(zhuǎn)換所述每個數(shù)位。 陽211] 地址計算單元710還被配置為通過將各個數(shù)據(jù)的地址的W基數(shù)進制表示的轉(zhuǎn)換 后的數(shù)位累加或者相減,并對累加或者累減的結果取模,計算進行并行計算時用于緩存一 組數(shù)據(jù)的多個存儲器位置的序號,其中計算的多個存儲器位置的序號是所述在一次短序列 DFT計算中使用的數(shù)據(jù)序號的部分的循環(huán)移位。電路700還包括選擇器725,被配置為對來 自相應的存儲器位置的所述一組數(shù)據(jù)重新排序,其中選擇器為r個,每一個選通小于r選 一,其中r為FFT/IFFT計算的基數(shù)。然后FFT/IFFT計算單元730還被配置為在重新排序 的所述一組數(shù)據(jù)上進行FFT/IFFT計算。 陽21引此外,本領域技術人員應能理解,接口單元720, FFT/IFFT計算單元730分別于圖 6中的,接口單元620, FFT/IFFT計算單元630所實現(xiàn)的功能類似,因此在此不予寶述。
[0213] 可選地,圖8示出了根據(jù)本發(fā)明的另一個實施例的電路裝置框圖。電路800還包 括第一乘法器825,被配置為W第一修正因子調(diào)整待進行短DFT序列計算的數(shù)據(jù),其中所述 第一修正因子表示為exp[(jX度Xn)fX化i/r),旋轉(zhuǎn)單元824,被配置為W旋轉(zhuǎn)因子exp[ (-j X化X度1瓜2. . . . BiB。)X (s-i)) X化i/N)]處理修正后的序列。短DFT序列計算器 826還被配置為對所述經(jīng)處理的序列進行短DFT序列計算。然后,第二乘法器828,被配置 為W第二修正因子調(diào)整經(jīng)過DFT計算后的數(shù)據(jù),其中第二修正因子表示為exp [ (j X度X k) fX化i/r) + (-jX 度 XB)fX化i/r)],其中,B = ( Σ Bs)r,(s 聲 i-l)i 表示 FFT/IFFT 計算的 級,數(shù)據(jù)具有地址為Bs化zBi. . . . ΒΛ,= 0,1,2. . . r-1,r表示FFT計算的基數(shù),B s 1、Bs 2、 Bi、B。中的每一個是W基數(shù)為基的數(shù)位,N表示FFT/IFFT計算的點數(shù)。
[0214] 可選地,圖9示出了根據(jù)本發(fā)明的另一個實施例的電路裝置框圖。電路900包 括乘法器940,被配置為W修正旋轉(zhuǎn)因子調(diào)整FFT/IFFT計算后的數(shù)據(jù),其中修正旋轉(zhuǎn) 因子表示為 exp [ (-j X 度W X 度 A 1. . . . ΒΛ) X r ~ (s-i)) X 化i/N) + (j X 度 X k) r X 化i/ r) + (jX (CXn)fX化i/r) + (-jX 度XB)fX化i/r)],其中,B = ( Σ Bs)r,(s 聲 i-1),C = (Σ Bs)r,(s聲U,i表示FFT/IFFT計算的級,所述數(shù)據(jù)具有地址為Bs A 2B1. . . . ΒΛ,Βι = 0,1,2. . . r-1,r表示FFT計算的基數(shù),Β, ι、Β, 2、Βι、Β。中的每一個是W基數(shù)為基的數(shù)位,Ν表 示FFT/IFFT計算的點數(shù)。 陽21引可選地,旋轉(zhuǎn)因子表示為exp [(-jX度wX度瓜1. .. .ΒΛ)],且旋轉(zhuǎn)因子的值與 索引之間的列表預存在存儲器中,所述電路還包括修正單元,被配置為通過對所述旋轉(zhuǎn)因 子的高R比特加入修正值,獲取更新的索引,更新的索引對應修正旋轉(zhuǎn)因子,W及利用修正 旋轉(zhuǎn)因子調(diào)整經(jīng)過DFT計算后的數(shù)據(jù),其中,R = log2 (r),也即,W 2為底r的對數(shù),r表示 FFT計算的基數(shù)。
[0216] 可選地,其中所述所述一組數(shù)據(jù)包括在FFT/IFFT計算的第一級被計算的數(shù)據(jù),W 及電路還包括:加權單元,被配置為W公式exp(jX (CXn)fX化i/r),n = B〇,C = ( Σ Bs), (s聲0),對所述數(shù)據(jù)在輸入時進行加權,其中,所述數(shù)據(jù)具有地址為氏iBg 2. . . . BiB。,Bi = 0,1,2. . . r-1,r表示FFT計算的基數(shù),B, i、B,2、Bi、B。中的每一個是W基數(shù)為基的數(shù)位,N表 示FFT/IFFT計算的點數(shù)。 陽217] 可選地,其中FFT/IFFT計算的長度為2的整數(shù)次幕。
[0218] 可選地,其中FFT/IFFT計算包括進行FFT/IFFT蝶形計算。
[0219] 本發(fā)明的至少部分實施例節(jié)省了數(shù)據(jù)重排列的過程??蒞清楚地看到,運部分的 選通邏輯與數(shù)據(jù)位寬成正比例關系與使用的基數(shù)成指數(shù)關系,當數(shù)據(jù)位數(shù)越寬使用的基數(shù) 越大時本發(fā)明的優(yōu)勢就會更為突出。主要表現(xiàn)在下面幾個方面: 陽220]-關鍵路徑時間(path timing):由存儲器(memory)到FFT/IFFT計算單元再到存 儲器(memory)是最為核屯、也是最為復雜的主要數(shù)據(jù)路徑。通常是要采用流水線的結構,本 發(fā)明基本可W節(jié)省兩級pipeline。 陽221]-電路的面積:本發(fā)明的實施例去除了選擇電路(MU訝后本身就減少了很多元件, 等效2選1的選擇器減少了(r-1) X2WXr個(r為基數(shù),W為數(shù)據(jù)位寬)。例如,r8-FFT數(shù) 據(jù)位寬為16bit,一共減少了(8-1) X 2X16X8 = 1792個選擇器。而路徑更短,進一步優(yōu)化 了面積。 陽222]-布局和布線:實際設計中存儲器上4層無法布線。而存儲器又是復用較多的主 要資源,本發(fā)明的實施例有效地減少了存儲器附近的連線,使得布局和布線更為容易。運一 優(yōu)勢在現(xiàn)場可編程邏輯口陣列(Field Programm油le Gate Array,F(xiàn)PGA)設計上非常明顯, 因為FPGA為固定線道,較多走線會使定時迅速惡化。 陽223]-代價:本發(fā)明的實施例從數(shù)學的角度看為了得到正確的結果需要每次對數(shù)據(jù)進 行修正。但在實際設計中通過一系列方法將3個復數(shù)乘法與原先的旋轉(zhuǎn)因子乘法器合并, 只需要對查表的地址做一個R bit的加法修正,不引入任何的計算誤差,且實現(xiàn)更為簡潔方 便。具體地,在歸一化W后,利用表格存儲所有W的值,也即,在表格中存儲exp α X化i/N) i = 0,1,. . . . N-1的所有的值。然后,利用W值在表格中的索引來獲取W的值,而不是直接 進行乘法計算。因此,每次僅需要查表得到W的索引。例如,當需要獲取胖。,11,胖2...胖。的 任何組合的乘積的時候,就相當于對應的索引I。,Ii,12. .. Iq的和為索引所對應的值。上述 計算額外的開銷較小,因為只是進行加法計算,而沒有乘法計算。
[0224] 根據(jù)至少一個實施例,通過模加或模減的方式使得數(shù)據(jù)排列具有互斥性同時具有 循環(huán)移位性質(zhì)。
[02巧]根據(jù)至少一個實施例,通過添加修正因子的方式去除所有的選擇電路。 陽226] 根據(jù)至少一個實施例,重新架構存儲單元與計算單元的結構,將修正因子消耗的 資源降到可W忽略不計,對計算的精度沒有任何的影響。 陽227] 雖然本發(fā)明與引用的特定示例實施例一起被描述,但是本發(fā)明并不僅限于于此描 述的實施例,而是可W用在后附的權利要求的精神和范圍內(nèi)W修改或者變更的形式被實 施。相應的,說明書和附圖應被視為說明的意思而非限制的意思。 陽22引 由上所述,應當注意到本發(fā)明特定的實施例在運里W示例為目的被描述,但是在 不背離本發(fā)明范圍的情況下可W做不同的修改。相應地,本發(fā)明除了后附的權利要求,并不 被限制。
[0229] 本領域技術人員在實施本發(fā)明時可W通過對于附圖、公開的內(nèi)容和權利要求的研 究,了解并進行對于公開的實施例的其他改變。在權利要求中,詞語"包括"并不排除其他 組件或步驟,并且不定冠詞"一個"并不排除多個。即使特定的特征記載在不同的從屬權利 要求中,本發(fā)明也設及具有所有運些特征的實施例。任何在權利要求中的附圖標記不應當 被解釋為限制范圍。
[0230] 不同實施例的特征和方面可W被整合到另外的實施例中,并且本文件所示的實施 例可W被實施為不具有示例或者描述的所有特征或者方面。本領域技術人員應理解,雖然 本系統(tǒng)和方法的特定的示例和實施例為了示例目的而被描述,在不背離本發(fā)明的精神和范 圍的情況下可W做出不同的修改。此外,一個實施例的特征可W被包含到另一個實施例中, 即使運些特征并未在本文件中的一個單一的實施例中被一起描述。相應地,本發(fā)明被所附 的權利要求所描述。
【主權項】
1. 一種快速傅里葉變換/快速傅里葉逆變換(FFT/IFFT)的方法,包括: 將FFT/IFFT數(shù)據(jù)的一組反序或正序地址轉(zhuǎn)換為一組以基數(shù)進制表示的地址; 通過累加或者累減所述一組以基數(shù)進制表示的地址的各個數(shù)位,并對累加或者累減的 結果取模,計算進行并行計算時用于緩存一組數(shù)據(jù)的多個存儲器位置的序號,其中所述基 數(shù)表示所述FFT/IFFT計算的所述并行計算的短DFT序列的長度; 將所述FFT/IFFT數(shù)據(jù)分別同時存儲在由計算的序號所指示的各自對應的存儲器位 置; 進行所述FFT/IFFT計算,包括: 進行短DFT序列計算包括: 從所述存儲器中取出相應數(shù)據(jù),直接將所述相應數(shù)據(jù)送入短DFT序列計算器進行計 算,經(jīng)過修正旋轉(zhuǎn)因子修正計算的數(shù)據(jù),直接原址將修正后的數(shù)據(jù)送回存儲器; 重復所述短DFT序列計算,直至整個FFT/IFFT計算結束。2. 如權利要求1所述的方法,其中所述計算的存儲器位置的序號是在一次短序列DFT 計算中使用的數(shù)據(jù)序號的循環(huán)移位。3. 如權利要求1所述的方法,其中每個經(jīng)修正后的短DFT序列計算數(shù)據(jù)不需要重新排 列,直接進入與用于FFT/IFFT計算的計算單元對應的輸入端口。4. 如權利要求2所述的方法,其中所述數(shù)據(jù)的地址的所述以基數(shù)進制表示的每個數(shù)位 包括多個比特,在計算所述多個存儲器位置的序號之前,所述方法還包括: 通過對每個數(shù)位的所述多個比特中的兩個比特進行異或操作,轉(zhuǎn)換所述每個數(shù)位,其 中計算的多個存儲器位置的序號是所述在一次短序列DFT計算中使用的數(shù)據(jù)序號的部分 的循環(huán)移位。5. 如權利要求1所述的方法,其中,進行所述短DFT序列計算還包括: 以第一修正因子調(diào)整待進行短DFT序列計算的數(shù)據(jù),其中所述第一旋轉(zhuǎn)因子表示為 exp [ (j X (BXn) rX 2pi/r), η = 0,1,2. . . r-1 ; 以旋轉(zhuǎn)因子 expK-jX^X^u Bl2. ... BQ)Xr~(s-i))X2pi/N)]處理修正后的 序列; 將所述經(jīng)處理的序列送入所述短DFT序列計算器進行計算; 以第二修正因子調(diào)整經(jīng)過DFT計算后的數(shù)據(jù),其中所述第二修正因子表示為 exp[(jX (BXk)rX2pi/r) + (-jX (BXB)rX2pi/r)],其中,B = ( Σ Bs)r,(s 辛 i-1) i 表示 FFT/IFFT計算的級,所述數(shù)據(jù)具有地址為Bs此A. · · · B#。,B1= 0,1,2· · · r-1,r表示FFT 計算的基數(shù),Bs i、Bs 2、、B。中的每一個是以基數(shù)為基的數(shù)位,N表示FFT/IFFT計算的點數(shù)。6. 如權利要求1所述的方法,進行短DFT序列計算還包括: 以所述修正旋轉(zhuǎn)因子調(diào)整短DFT序列計算后的數(shù)據(jù),其中所述修正旋轉(zhuǎn)因子表 示為 expK-jXCBwX^ B11....B1B0)Xr~(s-i))X2pi/N) + (jX(BXk)rX2pi/ r) + (jX (CXn)rX2pi/r) + (-jX (BXB)rX2pi/r)],其中,B = ( Σ Bs)r,(s 乒 i-1),C = (Σ Bs)r,(s乒i),i表示FFT/IFFT計算的級,所述數(shù)據(jù)具有地址為Bs此A. · · · B#。,Bi =0,1,2. . . r-1,r表示FFT計算的基數(shù),Bs p Bs 2、Bp B。中的每一個是以基數(shù)為基的數(shù)位, N表示FFT/IFFT計算的點數(shù)。7. 如權利要求1所述的方法,其中旋轉(zhuǎn)因子的值與索引之間的列表預存在存儲器中, 所述方法還包括,通過對所述旋轉(zhuǎn)因子的高R比特加入修正值,獲取更新的索引,所述更新 的索引對應所述修正旋轉(zhuǎn)因子,所述方法還包括,利用所述修正旋轉(zhuǎn)因子調(diào)整經(jīng)過DFT計 算后的數(shù)據(jù),其中,R表示l〇g2(r),r表示FFT計算的基數(shù)。8. 如權利要求1所述的方法,其中所述所述一組數(shù)據(jù)包括在FFT/IFFT計算的第一級被 計算的數(shù)據(jù),以及所述方法還包括: 以公式exp(jX (CXn)rX2pi/r),n = BQ,C = ( Σ Bs),(s乒0),對所述數(shù)據(jù)在輸入時 進行加權,其中,所述數(shù)據(jù)具有地址為Bs A 2. . . . B#。,B1= 0,1,2. . . r-1,r表示FFT計算 的基數(shù),Bs p Bs 2、Bp B。中的每一個是以基數(shù)為基的數(shù)位,N表示FFT/IFFT計算的點數(shù)。9. 如權利要求1所述的方法,還包括 對于每次運算,通過短DFT序列運算單元的端口,按照編號從對應編號的存儲器中取 出數(shù)據(jù),不需要重新排列順序后再送到所述短DFT序列運算單元端口; 按照輸出端口的序號將運算單元運算的結果送入對應編號的存儲器中。10. 如權利要求1所述的方法,其中所述FFT/IFFT計算的長度為2的整數(shù)次冪。11. 如權利要求4所述的方法,還包括 通過選擇器,對來自所述相應的存儲器位置的所述一組數(shù)據(jù)重新排序,其中所述選擇 器的可選通的通路小于FFT/IFFT計算的基數(shù); 其中進行所述FFT/IFFT計算包括在重新排序的所述一組數(shù)據(jù)上進行短DFT序列計算。12. 如權利要求1所述的方法,其中所述FFT/IFFT計算包括進行FFT/IFFT蝶形計算。13. -種快速傅里葉變換/快速傅里葉逆變換(FFT/IFFT)的電路,包括: 地址計算單元,被配置為將FFT/IFFT數(shù)據(jù)的一組反序或正序地址轉(zhuǎn)換為一組以基數(shù) 進制表不的地址; 所述地址計算單元還被配置為通過累加或者累減所述一組以基數(shù)進制表示的地址的 各個數(shù)位,并對累加或者累減的結果取模,計算進行并行計算時用于緩存一組數(shù)據(jù)的多個 存儲器位置的序號,其中所述基數(shù)表示所述FFT/IFFT計算的所述并行計算的短DFT序列的 長度; 接口單元,被配置為將所述FFT/IFFT數(shù)據(jù)分別同時存儲在由計算的序號所指示的各 自對應的存儲器位置; FFT/IFFT計算單元,被配置為進行所述FFT/IFFT計算,包括: 短DFT序列計算器,用于: 從所述存儲器中取出相應數(shù)據(jù),直接對所述相應數(shù)據(jù)進行計算短DFT序列計算,經(jīng)過 修正旋轉(zhuǎn)因子修正計算的數(shù)據(jù),直接原址將修正后的數(shù)據(jù)送回存儲器; 重復所述短DFT序列計算,直至整個FFT/IFFT計算結束。14. 如權利要求13所述的電路,其中所述計算的存儲器位置的序號是在一次短序列 DFT計算中使用的數(shù)據(jù)序號的循環(huán)移位。15. 如權利要求13所述的電路,其中,每個經(jīng)修正后的短DFT序列計算數(shù)據(jù)不需要重新 排列,直接進入與用于FFT/IFFT計算的計算單元對應的輸入端口; 其中所述電路不包含選擇器。16. 如權利要求14所述的電路,其中所述數(shù)據(jù)的地址的所述以基數(shù)進制表示的每個數(shù) 位包括多個比特,所述電路還包括: 轉(zhuǎn)換器,被配置為通過對每個數(shù)位的所述多個比特中的兩個比特進行異或操作,轉(zhuǎn)換 所述每個數(shù)位;其中 所述地址計算單元還被配置為通過將各個數(shù)據(jù)的地址的以基數(shù)進制表示的轉(zhuǎn)換后的 數(shù)位累加或者相減,并對累加或者累減的結果取模,計算進行并行計算時用于緩存一組數(shù) 據(jù)的多個存儲器位置的序號,其中計算的多個存儲器位置的序號是所述在一次短序列DFT 計算中使用的數(shù)據(jù)序號的部分的循環(huán)移位。17. 如權利要求13所述的電路,還包括: 第一乘法器,被配置為以第一修正因子調(diào)整待進行短DFT序列計算的數(shù)據(jù),其中所述 第一修正因子表示為exp[(jX (BXn)rX2pi/r), 旋轉(zhuǎn)單元,被配置為以旋轉(zhuǎn)因子expK-jX^X^u Bl2……Bi B。)Xr~(s-i)) X2pi/N)]處理修正后的序列, 所述短DFT序列計算器還被配置為對所述經(jīng)處理的序列進行短DFT序列計算; 第二乘法器,被配置為以第二修正因子調(diào)整經(jīng)過DFT計算后的數(shù)據(jù),其中所述第二修 正因子表示為 exp[(jX (BXk)rX2pi/r) + (-jX (BXB)rX2pi/r)],其中,B = ( Σ B上, (s辛i-1) i表示FFT/IFFT計算的級,所述數(shù)據(jù)具有地址為Bs此A. · · · B#。,B1= 0,1,2. . . r-1,r表示FFT計算的基數(shù),Bs p Bs 2、Bp B。中的每一個是以基數(shù)為基的數(shù)位,N表示 FFT/IFFT計算的點數(shù)。18. 如權利要求13所述的電路,還包括: 乘法器,被配置為以所述修正旋轉(zhuǎn)因子調(diào)整短DFT序列計算后的數(shù)據(jù),其中所述修正 旋轉(zhuǎn)因子表示為6鄧[(-」\出1+1\出1811....818。)\^( 8-1))\2?1/吣+ (」\出\1〇 rX2pi/r) + (jX (CXn)rX2pi/r) + (-jX (BXB)rX2pi/r)],其中,B = ( Σ Bs)r,(s 乒 i-1), C = ( Σ B上,(s乒i),i表示FFT/IFFT計算的級,所述數(shù)據(jù)具有地址為Bs此A. · · · ΒΛ, Bi = 0,l,2...r-l,r表示FFT計算的基數(shù),831、8;32、81、8。中的每一個是以基數(shù)為基的數(shù) 位,N表示FFT/IFFT計算的點數(shù)。19. 如權利要求13所述的電路,其中,旋轉(zhuǎn)因子的值與索引之間的列表預存在存儲器 中,所述電路還包括 修正單元,被配置為通過對所述旋轉(zhuǎn)因子的高R比特加入修正值,獲取更新的索引,所 述更新的索引對應所述修正旋轉(zhuǎn)因子,以及 利用所述修正旋轉(zhuǎn)因子調(diào)整經(jīng)過DFT計算后的數(shù)據(jù),其中,R表示log2 (r),r表示FFT 計算的基數(shù)。20. 如權利要求13所述的電路,其中所述所述一組數(shù)據(jù)包括在FFT/IFFT計算的第一級 被計算的數(shù)據(jù),以及所述電路還包括: 加權單元,被配置為以公式 exp(jX (CXn)rX2pi/r),n = B。,C = ( Σ Bs),(s 辛 0), 對所述數(shù)據(jù)在輸入時進行加權,其中,所述數(shù)據(jù)具有地址為Bs iBs 2. . . . ΒΡ。,B1= 0,1, 2. . . r-1,r表示FFT計算的基數(shù),Bs p Bs 2、Bp B。中的每一個是以基數(shù)為基的數(shù)位,N表示 FFT/IFFT計算的點數(shù)。21. 如權利要求13所述的電路,所述接口裝置被配置為 對于每次運算,通過所述短DFT序列運算單元的端口,按照編號從對應編號的存儲器 中取出數(shù)據(jù),不需要重新排列順序后再送到所述短DFT序列運算單元端口; 按照輸出端口的序號將運算單元運算的結果送入對應編號的存儲器中。22. 如權利要求13所述的電路,其中所述FFT/IFFT計算的長度為2的整數(shù)次冪。23. 如權利要求16所述的電路,還包括 選擇器,被配置為對來自所述相應的存儲器位置的所述一組數(shù)據(jù)重新排序,其中所述 選擇器為r個,每一個選通小于r選一,其中r為FFT/IFFT計算的基數(shù); 其中所述計算單元還被配置為在重新排序的所述一組數(shù)據(jù)上進行FFT/IFFT計算。24. 如權利要求13所述的電路,其中所述FFT/IFFT計算包括進行FFT/IFFT蝶形計算。25. -種接收機,包括如權利要求13至24中任一項所述的快速傅里葉變換/快速傅里 葉逆變換(FFT/IFFT)的電路。26. -種信號發(fā)生器,包括如權利要求13至24中任一項所述的快速傅里葉變換/快速 傅里葉逆變換(FFT/IFFT)的電路。
【文檔編號】G06F17/14GK105988973SQ201510079003
【公開日】2016年10月5日
【申請日】2015年2月13日
【發(fā)明人】宋鶴鳴, 王立華
【申請人】瀾起科技(上海)有限公司