專利名稱:多端口混合基fft的制作方法
技術(shù)領(lǐng)域:
在此所描述的多個方面一般涉及用于執(zhí)行快速傅立葉變換(FFT)和逆 FFT (IFFT)的方法和設(shè)備。更具體地,所描述的多個方面涉及使用一組 公共硬件執(zhí)行具有不同分辨率的FFT和IFFT。
背景技術(shù):
FFT和IFFT被廣泛地用于通信領(lǐng)域,特別是無線通信中。在此所公開 的實施例的多個方面可應(yīng)用于很多類型的通信系統(tǒng),在這些通信系統(tǒng)中可 以找到應(yīng)用場景。因為基于在本發(fā)明遞交時己經(jīng)公開的、并通過參考并入 本文的IEEE 802.11n標(biāo)準(zhǔn),結(jié)合無線通信領(lǐng)域中的示例性實施例來描述各 個方面,所以描述了遵循正EE 802.11n的一些系統(tǒng)特征。
遵循IEEE 802.11n的系統(tǒng)具有兩個信道化模式,20MHz模式和40MHz 模式。提供這些模式支持系統(tǒng)的多輸入多輸出(MIMO)天線結(jié)構(gòu)。通常, 為了生成正交數(shù)據(jù)符號流,即,由接收機(jī)能夠區(qū)分的符號流,對于20MHz 信道化速率使用64點FFT和IFFT (—個在發(fā)射機(jī), 一個在接收機(jī))。通 常,為了支持40MHz信道化速率,將需要兩倍的分辨率,即需要使用128 點FFT禾口 IFFT。
發(fā)明內(nèi)容
根據(jù)實施例的多個方面,用于執(zhí)行快速傅立葉變換或快速傅立葉逆變換的處理器包括基2蝶形結(jié)構(gòu)和基4蝶形結(jié)構(gòu)。根據(jù)實施例的多個方面, 將輸入耦合至基2蝶形結(jié)構(gòu),并且將基2蝶形結(jié)構(gòu)的輸出耦合至基4蝶形 結(jié)構(gòu)的輸入。根據(jù)更多方面,將替代輸入耦合至基4蝶形結(jié)構(gòu)的輸入,從 而該處理器能夠根據(jù)所選擇的輸入執(zhí)行兩種不同分辨率的快速傅立葉變 換。該處理器還可以包括GPAP接口。
根據(jù)另一個實施例的多個方面,執(zhí)行快速傅立葉變換或快速傅立葉逆 變換的方法包括選擇性地對輸入數(shù)據(jù)流執(zhí)行基2蝶形運算,以及選擇性 地對由基2蝶形運算和輸入數(shù)據(jù)流產(chǎn)生的其中一個結(jié)果執(zhí)行基4蝶形運算。
根據(jù)另一個實施例的多個方面,執(zhí)行快速傅立葉變換或快速傅立葉逆 變換的設(shè)備包括選擇性地對輸入數(shù)據(jù)流執(zhí)行基2蝶形運算的裝置,以及 選擇性地對由基2蝶形運算和輸入數(shù)據(jù)流產(chǎn)生的其中一個結(jié)果執(zhí)行基4蝶 形運算的裝置。
根據(jù)另一個實施例的多個方面,包括快速傅立葉逆變換模塊的、用于
發(fā)送信息的通信設(shè)備包括具有輸入和輸出的基2蝶形結(jié)構(gòu);具有輸入的 基4蝶形結(jié)構(gòu),該輸入耦合至基2蝶形結(jié)構(gòu)的輸出;以及復(fù)用器,其可選
地將數(shù)據(jù)流耦合到基2蝶形結(jié)構(gòu)的輸入或基4蝶形結(jié)構(gòu)的輸入,從而該模
塊能夠根據(jù)所選擇的輸入,執(zhí)行兩種不同分辨率的快速傅立葉逆變換。 根據(jù)其它實施例的多個方面,包括快速傅立葉變換模塊的、用于接收
信息的通信設(shè)備包括具有輸入和輸出的基2蝶形結(jié)構(gòu);具有輸入的基4 蝶形結(jié)構(gòu),該輸入耦合至基2蝶形結(jié)構(gòu)的輸出;以及復(fù)用器,其可選地將
數(shù)據(jù)流耦合到基2蝶形結(jié)構(gòu)的輸入或基4蝶形結(jié)構(gòu)的輸入,從而該模塊能
夠根據(jù)所選擇的輸入,執(zhí)行兩種不同分辨率的快速傅立葉變換。
在附圖中,在各個圖形中示出的各個同樣的或近似同樣的組件由相同 的標(biāo)號來表示。為了清楚起見,沒有在各個附圖中對各個組件進(jìn)行標(biāo)記。
在附圖中
圖l是計算機(jī)系統(tǒng)或處理器連接的方框圖,根據(jù)該計算機(jī)系統(tǒng)或處理
器連接描述了實施例的多個方面;
圖2是圖1中的計算機(jī)系統(tǒng)的存儲器子系統(tǒng)的方框5圖3是根據(jù)實施例的多個方面的混合基蝶形結(jié)構(gòu)的方框圖; 圖4是示出了實施例的多個方面的存儲器結(jié)構(gòu)的方框圖; 圖5是圖4的存儲器的時序圖;以及
圖6是單位圓圖,示出了根據(jù)實施例的多個方面的旋轉(zhuǎn)因子之間的關(guān)系。
具體實施例方式
本發(fā)明在其應(yīng)用中不局限于在后續(xù)描述中提出的或在附圖中示出的具 體結(jié)構(gòu)和組件設(shè)置。本發(fā)明能夠用于其它實施例并且能夠以多種方式實施 或?qū)崿F(xiàn)。并且在此所使用的措辭或術(shù)語是用于描述的目的而不應(yīng)當(dāng)被視為 限制性的。這里使用的"包含"、"包括"或"具有"、"含有"、"涉及"及 其變體表示包括其后列出的項目及其等價體以及附加項目。
各種實施例可以在一個或多個計算機(jī)系統(tǒng)中實施。例如,這些計算機(jī)
系統(tǒng)可以是通用計算機(jī),比如基于Intel PENTIUM類型處理器、Motorola PowerPC、 Sun UltraSPARC、 Hewlett-Packard PA-RISC處理器或任意其它類 型處理器的那些計算機(jī);或者這些計算機(jī)系統(tǒng)可以是專用系統(tǒng),例如包括 提供的嵌入式系統(tǒng)或包括無線通信系統(tǒng)例如蜂窩電話、S02.11x無線通信系 統(tǒng)和包括一個或多個處理器的其它系統(tǒng)。應(yīng)當(dāng)注意, 一個或多個任意類型 的計算機(jī)系統(tǒng)可以進(jìn)行組合,以根據(jù)各種實施例執(zhí)行FFT和IFFT。艮口,該 系統(tǒng)可以位于單個計算機(jī)或設(shè)備上,或可以分布在附屬于通信網(wǎng)絡(luò)的多個 計算機(jī)或設(shè)備之上。
根據(jù)一個實施例的計算機(jī)系統(tǒng)配置用于執(zhí)行所描述的任意FFT和IFFT
功能。應(yīng)當(dāng)注意,該系統(tǒng)可以執(zhí)行其它功能,包括無線或有線網(wǎng)絡(luò)通信, 并且這些實施例不局限于具有任意特定功能或功能集。
例如,可以按照在如圖1所示的通用計算機(jī)系統(tǒng)100中執(zhí)行的專用軟 件來實現(xiàn)實施例的多個方面。計算機(jī)系統(tǒng)IOO可以包括處理器103,其連接 到一個或多個存儲器設(shè)備104,例如磁盤驅(qū)動器、存儲器、非易失性存儲器 或用于存放數(shù)據(jù)的其它設(shè)備。存儲器104通常用于在計算機(jī)系統(tǒng)100操作 期間存儲程序、固件和數(shù)據(jù)。計算機(jī)系統(tǒng)100的組件可以通過互連機(jī)制105 耦合,該互連機(jī)制105可以包括一個或多個總線(例如,在相同機(jī)器內(nèi)集成的組件之間)和/或網(wǎng)絡(luò)(例如,在位于單獨的分立機(jī)器上的組件之間)。
互連機(jī)制105使得能夠在系統(tǒng)100中的系統(tǒng)組件之間交換信息(例如數(shù)據(jù)、 指令)。該網(wǎng)絡(luò)可以是有線的或無線的。
計算機(jī)系統(tǒng)100還包括 一個或多個輸入設(shè)備102,例如鍵盤、鼠標(biāo)、
軌跡球、話筒、觸摸屏;以及一個或多個輸出設(shè)備,例如打印設(shè)備、顯示
屏幕、揚聲器。此外,(除互連機(jī)制105之外或作為其替代)計算機(jī)系統(tǒng)100 可以包括一個或多個接口(未示出),該接口將計算機(jī)系統(tǒng)與通信網(wǎng)絡(luò)連接。
如圖2更具體示出的存儲系統(tǒng)106通常包括存儲有信號的計算機(jī)可讀 寫非易失性記憶介質(zhì)201,該信號定義了由處理器執(zhí)行的程序或存儲在介質(zhì) 201之上或之中的由該程序處理的信息。例如,該介質(zhì)可以是磁盤或閃存。 典型地,在操作中,該處理器發(fā)起將數(shù)據(jù)從非易失性記憶介質(zhì)201中讀至 另一存儲器202中,該存儲器202相比介質(zhì)201允許處理器更快地訪問信 息。這種存儲器202通常是易失性、隨機(jī)訪問存儲器,例如,動態(tài)隨機(jī)訪 問存儲器(DRAM)或靜態(tài)存儲器(SRAM)。存儲器202可以位于如圖所 示的存儲系統(tǒng)106中,或位于未示出的存儲器系統(tǒng)104中。處理器103通 常操作集成電路存儲器104、 202內(nèi)的數(shù)據(jù),然后在處理完成之后將數(shù)據(jù)復(fù) 制到介質(zhì)201。用于管理數(shù)據(jù)在介質(zhì)201和集成電路存儲器元件104、 202 之間移動的多種機(jī)制是公知的,并且實施例并不局限于此。實施例也不局 限于特定的存儲器系統(tǒng)104或存儲系統(tǒng)106。
計算機(jī)系統(tǒng)可以包括專用程序、專用硬件,例如,特定用途集成電路 (ASIC)。實施例的多個方面可以在軟件、硬件或固件或者其任意組合中 實現(xiàn)。此外,這些方法、操作、系統(tǒng)、系統(tǒng)元件及其組件可以作為上述計 算機(jī)系統(tǒng)的一部分或作為獨立組件來實現(xiàn)。
盡管以實例方式將計算機(jī)系統(tǒng)100示出為一種類型的計算機(jī)系統(tǒng),在 計算機(jī)系統(tǒng)上可以實現(xiàn)實施例的多個方面,但是應(yīng)該注意,實施例的多個 方面不局限于在圖1所示的計算機(jī)系統(tǒng)中實現(xiàn)。實施例的多個方面可以在 具有與圖1不同的架構(gòu)或組件的一個或多個計算機(jī)中實現(xiàn)。
計算機(jī)系統(tǒng)100可以是通用計算機(jī)系統(tǒng),其可以使用高級可編程語言 進(jìn)行編程。計算機(jī)系統(tǒng)100也可以使用專用程序、專用硬件來實現(xiàn)。在計 算機(jī)系統(tǒng)100中,處理器103是通??梢栽谑袌鲋械玫降奶幚砥?,例如著名的可以從Intel公司獲得的奔騰類型處理器。也可以利用許多其它處理器。 這種處理器通常運行操作系統(tǒng),該操作系統(tǒng)可以是例如,可以從微軟公司 獲得的Windows 95、 Windows 98、 Windows NT、 Windows 2000 (Windows ME)或Windows XP操作系統(tǒng),可以從蘋果公司獲得的MAC OS System X 操作系統(tǒng),可以從Sun Microsystems公司獲得的Solaris操作系統(tǒng),或者可 以從各種來源獲得的UNIX操作系統(tǒng)。可以使用許多其它操作系統(tǒng)包括 專門設(shè)計用于移動和固定、無線通信設(shè)備的那些操作系統(tǒng)。
處理器和操作系統(tǒng)一起定義了計算機(jī)平臺,并為該計算機(jī)平臺使用高 級編程語言編寫應(yīng)用程序。應(yīng)當(dāng)理解,實施例不局限于特定的計算機(jī)系統(tǒng) 平臺、處理器、操作系統(tǒng)或網(wǎng)絡(luò)。并且顯而易見地,對本領(lǐng)域技術(shù)人員來 說,實施例不局限于特定的編程語言或計算機(jī)系統(tǒng)。此外,應(yīng)該注意,也 可以使用其它合適的編程語言和其它合適的計算機(jī)系統(tǒng)。
計算機(jī)系統(tǒng)的一個或多個部分可以分布在耦合至通信網(wǎng)絡(luò)的一個或多 個計算機(jī)系統(tǒng)上。這些計算機(jī)系統(tǒng)也可以是通用計算機(jī)系統(tǒng)。例如,實施 例的多個方面可以分布在一個或多個計算機(jī)系統(tǒng)中,這些計算機(jī)系統(tǒng)配置 用于為一個或多個用戶計算機(jī)提供服務(wù)(例如,服務(wù)器),或用于作為分布 系統(tǒng)的一部分來執(zhí)行總的任務(wù)。例如,實施例的多個方面可以在用戶服務(wù) 器或多級系統(tǒng)上執(zhí)行,該用戶服務(wù)器或多級系統(tǒng)包括分布在一個或多個根 據(jù)多個實施例執(zhí)行多個功能的服務(wù)器系統(tǒng)中的組件。這些組件可以是可執(zhí) 行的、中間的(例如,IL)或被解釋的(例如,Java)代碼,該代碼使用通 信協(xié)議(例如,TCP/IP)通過通信網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))進(jìn)行通信。
應(yīng)當(dāng)注意,實施例不局限于在任意特定系統(tǒng)或系統(tǒng)組上執(zhí)行。并且, 應(yīng)當(dāng)注意實施例不局限于任意特定的分布式結(jié)構(gòu)、網(wǎng)絡(luò)或通信協(xié)議。
可以使用面向?qū)ο缶幊陶Z言,例如SmallTalk、 Java、 C++、 Ada、或 C#(C-Sharp),來對多種實施例進(jìn)行編程。也可以使用其它面向?qū)ο缶幊陶Z 言??蛇x地,可以使用功能性、腳本和/或邏輯編程語言。實施例的多個方 面也可以在非編程環(huán)境中實現(xiàn)(例如,以HTML、 XML或其它格式創(chuàng)建的 文檔,其中當(dāng)在瀏覽程序窗口中查看這些文檔時,呈現(xiàn)出圖形用戶界面 (GUI)的視圖或執(zhí)行其它功能)。
現(xiàn)在結(jié)合針對在802.1 In無線環(huán)境中的通信設(shè)備的示例性應(yīng)用,來解釋實施例的多個方面。
802.1 In規(guī)范考慮了 20MHz和40MHz的信道化。傳統(tǒng)設(shè)備使用64點 1/FFT作為在20MHz信道上生成正交數(shù)據(jù)的方法。因此,傳統(tǒng)思想建議支 持需要使用用于20MHz信道化的64點FFT和用于40MHz信道化的128 點FFT的兩種模式。該方法可應(yīng)用于任意目標(biāo)RF頻帶(2.4GHz, 5GHz)。
已經(jīng)發(fā)現(xiàn),在某些方面混合基實現(xiàn)方法優(yōu)化了數(shù)據(jù)流和尋址技術(shù),以 允許兩種操作在相同的體系結(jié)構(gòu)和存儲空間中執(zhí)行。此外,在某些方面, 混合基實現(xiàn)方法將蝶形結(jié)構(gòu)與旋轉(zhuǎn)乘法分開,以便利用高數(shù)據(jù)速率與時鐘 比的優(yōu)勢并且對復(fù)數(shù)旋轉(zhuǎn)乘法使用通用陣列處理器(GPAP)。最后,示例 性實施例特別適用于2x2 MIMO系統(tǒng),該系統(tǒng)能夠支持達(dá)到2組并行數(shù)據(jù) 流。盡管如此,該設(shè)計是可以升級的并且能夠容易地適用于其它MIMO配 置。
示例性混合基實現(xiàn)方法使用基2和基4兩種蝶形結(jié)構(gòu)來執(zhí)行64點和 128點兩種FFT和IFFT。該結(jié)構(gòu)也可以根據(jù)需要調(diào)整為其它數(shù)目的輸入點。 根據(jù)一種配置,執(zhí)行128點FFT。將時域采樣點應(yīng)用到基2蝶形運算,使 128點FFT分解為兩個64點運算?;?蝶形運算使用最少次數(shù)的乘法來執(zhí) 行兩個64點FFT。圖3示出了混合基蝶形運算的結(jié)構(gòu)。如所示的配置,圖 3的混合基結(jié)構(gòu)示出了使用兩種基結(jié)構(gòu)的完全128點FFT運算的分解。
圖3的結(jié)構(gòu)可以使用復(fù)用器來重新配置,以省略初始基2蝶形運算, 將輸入直接引入基4蝶形運算級。因此,128點FFT和64點FFT兩種運算 都可以僅使用基2蝶形運算和基4蝶形運算來執(zhí)行。
基2蝶形運算和基4蝶形運算執(zhí)行按頻率抽取(DIF:)方法以簡化多級 間的控制邏輯??梢允褂脼槠渌\算或結(jié)構(gòu)參數(shù)優(yōu)化的其它方法。如圖3 所示,根據(jù)示例性實施例,將128點FFT分解為兩個64點FFT需要將輸 出值乘以相對于全128點單位圓的旋轉(zhuǎn)因子。在這級之后,各個基4級還 包括旋轉(zhuǎn)因子乘法運算。使用DIF方法實現(xiàn)基4蝶形運算維持了蝶形-旋轉(zhuǎn) -蝶形-旋轉(zhuǎn)的順序。
逆FFT運算(IFFT)與FFT結(jié)構(gòu)相同。通過反轉(zhuǎn)各個旋轉(zhuǎn)因子的符號 (即旋轉(zhuǎn)方向)以及還通過在基4蝶形運算中對j-乘進(jìn)行逆運算,來從前 述結(jié)構(gòu)中得到IFFT。為了簡化硬件,全部處理是順序進(jìn)行的并利用GPAP來執(zhí)行旋轉(zhuǎn)乘法 運算。例如,只要有一個基2蝶形運算和一個基4蝶形運算以及合適的存 儲單元即足以執(zhí)行所需要的運算。為了分別執(zhí)行128點FFT或64點FFT (或IFFT),將這些點成對地應(yīng)用到基2蝶形運算或以4個為一組地應(yīng)用 到基4蝶形運算。這種類型的結(jié)構(gòu)將會為需要所述FFT/IFFT功能的任意設(shè) 備節(jié)省有效區(qū)域。
以上結(jié)構(gòu)適于處理單個數(shù)據(jù)流。如在2x2 MIMO系統(tǒng)的情況下,支持 多個并行數(shù)據(jù)流,只需增加用于數(shù)據(jù)存儲和蝶形互連的附加硬件,以及附 加GPAP。其它并行數(shù)據(jù)流使用相同的控制信號、尋址和旋轉(zhuǎn)系數(shù),產(chǎn)生可 應(yīng)用于多種MIMO配置的可升級設(shè)計。
該結(jié)構(gòu)清晰地分成兩個部分或模塊集合,控制部分和數(shù)據(jù)路徑部分。 當(dāng)調(diào)整實施例時,使用相同的數(shù)據(jù)路徑部分,因此增加附加流只增加了數(shù) 據(jù)路徑部分,而控制部分對于不同數(shù)目的數(shù)據(jù)流和數(shù)據(jù)路徑保持相同。
可以采用易于支持用于FFT和IFFT兩種運算的64點和128點運算的 存儲結(jié)構(gòu)。在典型的802.11實施中,IFFT用于分組傳輸。輸入數(shù)據(jù)能夠以 相對較高的處理速度,即200MHz充滿到模塊中,而輸出數(shù)據(jù)通過傳輸數(shù) 據(jù)速率,即20兆符號每秒(Msps)或40Msps來調(diào)節(jié)。相反地,在分組接收 期間到達(dá)FFT的輸入數(shù)據(jù)局限于同樣的傳輸數(shù)據(jù)速率,即200 Msps或40 Msps。 FFT輸出數(shù)據(jù)能夠以200Mz的處理速度突發(fā)以用于解調(diào)和解碼。
如圖4所示,具有數(shù)據(jù)速率-時鐘比為50或100的雙緩沖結(jié)構(gòu)滿足了 這些假設(shè)。雙緩沖循環(huán)用法基于控制分配。如圖5的時序圖所示,定義了 3 種模式寫輸入,蝶形運算讀寫,讀輸出。對模式分配進(jìn)行排序以處理上 述不同的輸入和輸出場景。在IFFT模式中, 一個緩沖接收突發(fā)輸入并且隨 后以時鐘速度執(zhí)行基運算。在此期間,以傳輸數(shù)據(jù)率讀出第二緩沖。應(yīng)該 注意這并不限定讀取輸出數(shù)據(jù)的方式一該方式可以是突發(fā)的或者在采樣中 延遲。以傳輸速率的間隔調(diào)整緩沖,例如對于802.11為每 s。對于第一 OFDM符號,各個模式通過第一緩沖進(jìn)行處理。為了確保保持傳輸速率, 當(dāng)?shù)谝环栞敵鰯?shù)據(jù)被讀出時,第二OFDM符號處理必須開始。這時,輸 入模式在第二緩沖上初始化,并且該過程重復(fù)。在FFT模式中,第一 OFDM 符號同樣地通過第一緩沖進(jìn)行處理。然而,因為輸入數(shù)據(jù)是連續(xù)的,第二OFDM符號立即在第二緩沖上開始。假設(shè)給定處理速率,確保在第二 OFDM 符號完全寫入之前完成第一 OFDM符號蝶形運算和輸出操作。圖5示出了 用于FFT和IFFT處理的存儲模式重疊。如果處理速率沒有高到足以確保 所示的時序,存儲結(jié)構(gòu)將需要用于各個模式的專用緩沖,或在所示實例種 需要三個緩沖。
圖4的存儲結(jié)構(gòu)的另一個特征是在緩沖內(nèi)處理數(shù)據(jù)以支持64點和128 點運算的數(shù)據(jù)處理方式。各個緩沖的大小是針對最大128個條目的情況設(shè) 置的,但是該緩存被設(shè)置為2x64即兩個并列的64條目區(qū),而不是1x128 即一個128條目區(qū)。順序?qū)懭胼斎霐?shù)據(jù),使得被64分割的條目被寫到相同 可尋址位置的兩個相鄰半?yún)^(qū)中,即,第65個條目占用與第0個條目或(/, /+64)相同地址的后一半地址。例如,如果各條目是1字節(jié)(byte)寬, 并且各個可尋址位置是1字(word)寬,即兩字節(jié)寬,則項目/可以寫到 字的高位字節(jié)中,項目/+64可以寫到相同字的低位字節(jié)中。為了滿足實現(xiàn) 和性能的需要,可以使用其它條目大小。在字可尋址存儲器情況中,緩沖 字節(jié)-寫使能允許這種設(shè)計假設(shè),因為如這里所說明的在64點和128點運
算中一次性讀出整個項目對(/,/+64),所以該假設(shè)是為64點和128點兩種 運算重用控制邏輯的關(guān)鍵,其中緩沖字節(jié)-寫使能提供了特殊尋址模式,在 該模式中只寫入字可尋址存儲器位置中的一個字節(jié)而不干擾其它字節(jié)。在 基2蝶形運算中,分解操作將被64分割的數(shù)據(jù)對進(jìn)行組合。使兩組并行可 用允許在單個循環(huán)或總計64個循環(huán)中執(zhí)行蝶形運算。在基4蝶形運算中, 對于64點運算需要4次存取,但是在128點FFT情況中,讀取操作為兩個 64點運算提供數(shù)據(jù)。這種并行存取意味著第二個64點運算不會帶來任何附 加延遲。對于只是64點的運算,只需忽略條目64-127中的數(shù)據(jù)。
這種存儲器結(jié)構(gòu)描述了單個數(shù)據(jù)流所需的特征。對于N個并行流,該 結(jié)構(gòu)應(yīng)當(dāng)復(fù)制N次。
對應(yīng)三種存儲模式存在三種尋址模式寫輸入,蝶形存取(讀取或?qū)?入),讀輸出。如先前所述,所有地址的生成獨立于N,即并行流的數(shù)目。 所有處理流共享相同的尋址邏輯。
寫輸入是按次序有序的。盡管如此,接口支持不同條件以匹配運算(正 向或逆向)和階次(64點或128點)。在分組接收期間,輸入按次序抵達(dá)而與階次無關(guān),每次一個采樣。接收模式匹配正向運算,因此在這種情況下,
從索引0到63順序地將輸入寫入到低位存儲對。在128點模式中,寫輸入 繼續(xù),再次從索引0到63,但是寫入相同存儲器緩沖的高位存儲對中。對 于64點模式,輸入再次寫入到低位存儲對,但是寫入其它緩沖。在分組發(fā) 送期間,或在逆運算期間,假設(shè)在128點模式中數(shù)據(jù)可以成對獲得。這樣, 對于從索引0到63的各個循環(huán)寫入全部存儲對。在64點模式中,只寫入 低位存儲對。
對于蝶形存取,創(chuàng)建簡化控制邏輯以便在不工作時生成地址,而不使 用LUT來存儲用于基2和基4級的尋址次序。首先考慮基4運算,64點 FFT需要3級每級具有16個蝶形運算。對在DIF算法的各級中的尋址次序 仔細(xì)檢查之后,緩沖地址僅僅是對模64計數(shù)器(6比特)的重新排序。在 第一級中,到各個蝶形運算的4個輸入被16分割。通過按照[1:0][5:2]重新 排列計數(shù)器比特,順序計數(shù)產(chǎn)生數(shù)值0, 16, 32, 48, 1, 17, 33, 49, ...15, 31, 47, 63。在第二級中,4個輸入被4分割。按照[5:4][1:0][3:2]重新排列 計數(shù)器比特產(chǎn)生數(shù)值0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, ...51, 55, 59, 63。在第三和終級中,4個輸入是順序的,所以計 數(shù)器比特不重新排列。
基2運算包括具有被64分割的輸入的64個蝶形運算。假定先前所描 述的緩沖存儲對,基2尋址能夠使用任意隨機(jī)順序,因為各個讀取提供了 已經(jīng)被64分割的兩個輸入。為了簡化起見,順序匹配基4運算的第一級。 所以不論FFT階次(64或128),在一個6比特計數(shù)器內(nèi)包含所有尋址。
讀輸出需要特殊處理。盡管在適當(dāng)?shù)奈恢猛瓿苫幚恚窃摶幚?按照反比特順序產(chǎn)生輸出。因此,輸出尋址必須將索引重新排列。對于所 需的輸出順序,只需要從[5:0]到[1:0][3:2][5:4]對地址比特進(jìn)行比特交換。 對于128點運算,同時輸出存儲對。在按64分割輸入時,蝶形運算產(chǎn)生順 序?qū)ψ鳛檩敵?。?4點模式中,輸出控制只是不觸發(fā)用于高位存儲對的輸 出有效。這適合于64點和128點無縫處理。
旋轉(zhuǎn)因子取決于處理的基和級。對于基2級,旋轉(zhuǎn)因子順序位于128 點單位圓周圍,如圖6所示,或者是Wnl28其中n=0...63。對于第一基4 級,旋轉(zhuǎn)因子也是順序的,但是在64點單位圓周圍以4個為一組,或者是
12Wnk64其中n=0...15且k=0...3。對于第二基4級,旋轉(zhuǎn)因子也是以4個為 一組,但是在16點單位圓周圍,或者是Wnkl6其中n=0...3且kK)...3。 在最后的基4級中,旋轉(zhuǎn)因子全部是l。
該示例性實施例選擇使用混合模尋址和部分査找表(LUT)方法來在 不工作時生成旋轉(zhuǎn)因子,而不是將全部系數(shù)存儲到LUT中。使用128點單 位圓作為參考(參見圖6),各個象限內(nèi)的余弦值和正弦值相互為鏡像復(fù)制, 并且在給定象限內(nèi)的數(shù)值還能夠圍繞中心點進(jìn)行鏡像。因此,部分LUT僅 需要存儲半個象限的"x"和"y"值,或128/4/2+1 = 17個條目(第17個 條目是對數(shù)值在周圍進(jìn)行鏡像的中心點)。后面的圖6示出了二分之一個象 限如何圍繞單位圓映射到余弦值和正弦值。
如此對至少一個實施例的若干方面進(jìn)行了描述,應(yīng)當(dāng)注意,各種變體、 修改和改進(jìn)對本領(lǐng)域技術(shù)人員而言是顯而易見的。這些變體、修改和改進(jìn) 旨在作為本公開的一部分,并且旨在屬于本公開的精神和范圍內(nèi)。
權(quán)利要求
1、一種用于執(zhí)行快速傅立葉變換或快速傅立葉逆變換的處理器,包括基2蝶形結(jié)構(gòu);和基4蝶形結(jié)構(gòu)。
2、 如權(quán)利要求1所述的處理器,其中將輸入耦合到所述基2蝶形結(jié)構(gòu)以及將所述基2蝶形結(jié)構(gòu)的輸出耦合到所述基4蝶形結(jié)構(gòu)的輸入。
3、 如權(quán)利要求2所述的處理器,還包括耦合到所述基4蝶形結(jié)構(gòu)的輸 入的替代輸入,從而根據(jù)所選擇的輸入,所述處理器能夠執(zhí)行兩種不同分 辨率的快速傅立葉變換。
4、 如權(quán)利要求1所述的處理器,還包括GPAP接口。
5、 一種執(zhí)行快速傅立葉變換或快速傅立葉逆變換的方法,包括選擇性地對輸入數(shù)據(jù)流執(zhí)行基2蝶形運算;以及選擇性地對由所述基2蝶形運算和所述輸入數(shù)據(jù)流生成的其中一個結(jié) 果執(zhí)行基4蝶形運算。
6、 一種用于執(zhí)行快速傅立葉變換或快速傅立葉逆變換的設(shè)備,包括 用于選擇性地對輸入數(shù)據(jù)流執(zhí)行基2蝶形運算的裝置;以及用于選擇性地對由所述基2蝶形運算和所述輸入數(shù)據(jù)流生成的其中一 個結(jié)果執(zhí)行基4蝶形運算的裝置。
7、 一種包括快速傅立葉逆變換模塊的、用于發(fā)送信息的通信設(shè)備,包括具有輸入和輸出的基2蝶形結(jié)構(gòu);具有輸入的基4蝶形結(jié)構(gòu),所述輸入耦合到所述基2蝶形結(jié)構(gòu)的輸出;以及復(fù)用器,交替地將數(shù)據(jù)流耦合到所述基2蝶形結(jié)構(gòu)的輸入或所述基4 蝶形結(jié)構(gòu)的輸入,從而根據(jù)所選擇的輸入,所述模塊能夠執(zhí)行兩種不同分 辨率的快速傅立葉逆變換。
8、 一種包括快速傅立葉變換模塊的、用于接收信息的通信設(shè)備,包括: 具有輸入和輸出的基2蝶形結(jié)構(gòu);具有輸入的基4蝶形結(jié)構(gòu),所述基4蝶形結(jié)構(gòu)的輸入耦合到所述基2 蝶形結(jié)構(gòu)的輸出;以及復(fù)用器,交替地將數(shù)據(jù)流耦合到所述基2蝶形結(jié)構(gòu)的輸入或所述基4 蝶形結(jié)構(gòu)的輸入,從而根據(jù)所選擇的輸入,所述模塊能夠執(zhí)行兩種不同分 辨率的快速傅立葉變換。
全文摘要
一種用于執(zhí)行快速傅立葉變換或快速傅立葉逆變換的處理器包括基2蝶形結(jié)構(gòu)和基4蝶形結(jié)構(gòu)。一種執(zhí)行快速傅立葉變換和快速傅立葉逆變換的方法包括選擇性地對輸入數(shù)據(jù)流執(zhí)行基2蝶形運算;以及選擇性地對由基2蝶形運算和輸入數(shù)據(jù)流生成的其中一個結(jié)果執(zhí)行基4蝶形運算。一種用于執(zhí)行快速傅立葉變換或快速傅立葉逆變換的設(shè)備包括用于選擇性地對輸入數(shù)據(jù)流執(zhí)行基2蝶形運算的裝置;以及用于選擇性地對由基2蝶形運算和輸入數(shù)據(jù)流生成的其中一個結(jié)果執(zhí)行基4蝶形運算的裝置。一種包括快速傅立葉逆變換模塊和快速傅立葉變換模塊的用于發(fā)送或接收信息的通信設(shè)備包括具有輸入和輸出的基2蝶形結(jié)構(gòu);具有輸入的基4蝶形結(jié)構(gòu),該輸入耦合到所述基2蝶形結(jié)構(gòu)的輸出;以及復(fù)用器,交替地將數(shù)據(jù)流耦合到所述基2蝶形結(jié)構(gòu)的輸入或所述基4蝶形結(jié)構(gòu)的輸入,從而根據(jù)所選擇的輸入,該模塊能夠執(zhí)行兩種不同分辨率的快速傅立葉逆變換或快速傅立葉變換。
文檔編號G06F17/14GK101454772SQ200780015253
公開日2009年6月10日 申請日期2007年4月27日 優(yōu)先權(quán)日2006年4月28日
發(fā)明者G·W·施 申請人:高通股份有限公司