用于顯著改進(jìn)微控制器中fft性能的新穎方法
【專利說明】用于顯著改進(jìn)微控制器中FFT性能的新穎方法
【背景技術(shù)】
[0001] 離散傅里葉變換(DFT)在例如頻譜分析、頻域濾波以及多相變換的各種應(yīng)用中的 數(shù)字信號處理中扮演重要角色。為了實施DFT,庫利和圖基(Cooley&Turkey)在二十世紀(jì) 六十年代提出了快速傅里葉變換(FFT)算法。所提出的FFT算法包括使用基-2蝶形運算。
【發(fā)明內(nèi)容】
[0002] 本文中揭示了用于改進(jìn)快速傅里葉變換(FFT)算法的效率的各種系統(tǒng)和方法。 在一些實施例中,一種方法包含通過控制單元從存儲器組中接收N個輸入項;基于合并的 基-2蝶形運算通過控制單元在N個輸入項上執(zhí)行FFT計算;將計算出的N個項存儲到存儲 器組中??刂茊卧?jīng)配置以使用合并的基-2蝶形來跨越兩個連續(xù)級在四個輸入項上處理 FFT運算。
[0003] 根據(jù)至少一些實施例,一種系統(tǒng)包含存儲器組和控制單元??刂茊卧?jīng)配置以通 過在N個輸入項上執(zhí)行FFT計算而基于合并的基-2蝶形運算執(zhí)行FFT計算,并且訪問存儲 器組(l/2Xlog 2N) X (10Xlog2N)次。
[0004] 根據(jù)另外的其他實施例,一種處理器包含存儲器組和控制邏輯。耦合到存儲器組 的控制邏輯經(jīng)配置以使用合并的基-2蝶形運算在N個輸入項上執(zhí)行FFT計算。
【附圖說明】
[0005] 為了詳細(xì)描述本發(fā)明的示例性實施例,現(xiàn)將參考附圖,其中:
[0006] 圖1根據(jù)各種實施例示出用于快速傅里葉變換運算的基_2蝶形運算的信號流圖。
[0007]圖2根據(jù)各種實施例示出用于快速傅里葉變換運算的合并的基-2蝶形運算的信 號流圖。
[0008] 圖3根據(jù)各種實施例示出用于快速傅里葉變換運算的系統(tǒng)的方框圖。
[0009] 圖4根據(jù)各種實施例圖解地說明用于16個輸入項上的快速傅里葉變換運算的合 并的基_2蝶形運算的實例。
[0010] 圖5根據(jù)各種實施例示出用于實施合并的基-2蝶形運算的方法的流程圖。
[0011] 符號以及命名法
[0012] 特定的術(shù)語在整個以下說明書和權(quán)利要求書中被用來指代特定的系統(tǒng)組件。如 所屬領(lǐng)域的技術(shù)人員將理解的,多家公司可以通過不同的名稱來指代組件。此文檔并不意 圖區(qū)分開名稱不同而功能相同的組件。在以下討論中并且在權(quán)利要求書中,術(shù)語"包含"和 "包括"以一種開放式方式使用,并且因此應(yīng)解釋為意味著"包含,但不限于……"。此外,術(shù) 語"耦合"或"耦接"意圖意味著間接或直接的電氣連接。因此,如果第一裝置耦合到第二 裝置,那么該連接可能通過直接電氣連接,或者通過經(jīng)由其他裝置和連接的間接電氣連接。
【具體實施方式】
[0013] 以下論述針對本發(fā)明的各實施例。雖然這些實施例中的一者或多者可能是優(yōu)選 的,但是不應(yīng)將所揭示的實施例解釋為限制本發(fā)明(包含權(quán)利要求書)的范圍或者以其他 方式作為限制本發(fā)明(包含權(quán)利要求書)的范圍來使用。此外,所屬領(lǐng)域的技術(shù)人員將理 解以下描述具有廣泛的應(yīng)用,并且任何實施例的論述僅意味著該實施例示例性的論述,而 并非意圖暗示將本發(fā)明(包含權(quán)利要求書)的范圍限制于該實施例。
[0014] 離散傅里葉變換(DFT)在例如頻譜分析、頻域濾波以及多相變換的各種應(yīng)用中的 數(shù)字信號處理中扮演重要角色。DFT通過以奈奎斯特頻率(Nyquist frequency)或高于 奈奎斯特頻率的頻率對模擬信號進(jìn)行采樣而將模擬信號轉(zhuǎn)換成一系列離散信號,這意味著 DFT通常涉及大量運算和存儲器操作,并且因此其計算效率不高。為了解決計算問題,快速 傅里葉變換(FFT)以及快速傅里葉變換逆變換(IFFT)已被開發(fā)并且提供高效算法來利用 DFT。
[0015] 多年來,由于此類微控制器的低成本,在低端微控制器(MCU)中實施FFT或IFFT 變得非??扇?。低成本微控制器通常不具有專用FFT加速硬件,這部分地導(dǎo)致了其低成本。 因此,需要基于軟件的實施方案來運算FFT或IFFT。軟件方法不需要專用FFT加速硬件。 為了實現(xiàn)高效的基于軟件的算法,微控制器的指令集架構(gòu)(ISA)被使用。通過使用ISA來 實施FFT或IFFT運算可能會由于長時延和高功耗而引起識別微控制器中的存儲器參考的 效率問題。因此,通常為了確定用于操縱FFT或IFFT運算的ISA的效率,可以考慮兩個因 素。一個因素是ISA訪問存儲器組需要花費多少循環(huán)。另一因素是通過使用ISA可以多高 效地識別特定輸入項的存儲器參考。
[0016] 本發(fā)明的實施例通過用于微控制器的ISA提高在裝置(例如,微控制器)中實施 FFT的效率。本文所述的優(yōu)選ISA包含多個指令,其用于減少訪問存儲器組的循環(huán),并且使 微控制器更有效地識別存儲器參考,由此在指出存儲在存儲器組中的項的地址時避免冗余 循環(huán)浪費。這兩者都將如下詳細(xì)地進(jìn)行闡述。
[0017]DFT將模擬信號轉(zhuǎn)換成一系列離散數(shù)字信號。DFT可以計算為:
[0018]
【主權(quán)項】
1. 一種方法,其包括: 通過控制單元從存儲器組接收N個輸入項; 基于合并的基-2蝶形運算通過所述控制單元在N個輸入項上執(zhí)行快速傅里葉變換即 FFT計算; 將計算出的N個項存儲到所述存儲器組中;并且 其中所述控制單元經(jīng)配置W使用合并的基-2蝶形來跨越兩個連續(xù)級在四個輸入項上 處理FFT運算。
2. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括通過所述控制單元訪問所述存儲器組 (l/2Xlog2N) X (l〇Xlog2腳次W接收N個輸入項和旋轉(zhuǎn)因子,并且存儲N個計算出的項。
3. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括通過所述控制單元執(zhí)行第一指令,其中 所述第一指令包括: 將兩個輸入項從所述存儲器組加載到所述控制單元的寄存器中;W及 使用存儲在所述存儲器組中的旋轉(zhuǎn)因子在所述兩個輸入項上執(zhí)行基-2蝶形運算,W 產(chǎn)生兩個輸出蝶形值。
4. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括通過所述控制單元執(zhí)行第二指令,其中 所述第二指令包括: 使用存儲在所述存儲器組中的旋轉(zhuǎn)因子在從所述控制單元的寄存器中讀取的兩個輸 入項上執(zhí)行基-2蝶形運算,W產(chǎn)生兩個輸出蝶形值。
5. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括通過所述控制邏輯跨越兩個連續(xù)級執(zhí)行 合并的基-2蝶形運算的單元,W產(chǎn)生四個輸出蝶形值作為接下來兩個連續(xù)級處的蝶形運 算的輸入項。
6. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括通過所述控制單元執(zhí)行運算回路,所述 運算回路在兩個連續(xù)級處對合并的基-2蝶形運算的單元進(jìn)行l(wèi)ogsN次迭代。
7. -種系統(tǒng),其包括: 存儲器組;W及 控制單元,所述控制單元經(jīng)配置W通過在N個輸入項上執(zhí)行FFT計算而基于 合并的基-2蝶形運算執(zhí)行快速傅里葉變換即FFT計算,并且訪問所述存儲器組 (l/2Xlog2N) X (l〇Xlog2腳次。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述控制單元經(jīng)配置W執(zhí)行第一指令,所述第一 指令使所述控制單元: 將兩個輸入項從所述存儲器組加載到所述控制單元的寄存器中;W及 使用存儲在所述存儲器組中的旋轉(zhuǎn)因子在兩個輸入項上執(zhí)行基-2蝶形運算,W產(chǎn)生 兩個輸出蝶形值。
9. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述控制單元經(jīng)配置W執(zhí)行第二指令,所述第二 指令使所述控制單元: 使用存儲在所述存儲器組中的旋轉(zhuǎn)因子在從所述控制單元的寄存器中讀取的兩個輸 入項上執(zhí)行基-2蝶形運算,W產(chǎn)生兩個輸出蝶形值。
10. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述控制單元在兩個連續(xù)級處執(zhí)行合并的基-2 蝶形運算的單元,并且產(chǎn)生四個輸出蝶形值作為在接下來兩個連續(xù)級處的蝶形運算的輸入 項。
11. 根據(jù)權(quán)利要求10所述的系統(tǒng),其中合并的基-2蝶形運算的一個單元包括四個 基-2蝶形運算。
12. 根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述控制單元執(zhí)行運算回路,所述運算回路在 兩個連續(xù)級處對合并的基-2蝶形運算的單元進(jìn)行l(wèi)ogsN次迭代。
13. -種處理器,其包括: 存儲器組;W及 禪合到所述存儲器組的控制邏輯,所述控制邏輯經(jīng)配置W使用合并的基-2蝶形運算 在N個輸入項上執(zhí)行快速傅里葉變換即FFT計算; 其中所述控制單元訪問所述存儲器組W檢索用于所述合并的基-2蝶形運算的輸入 項;并且 其中所述控制單元從所述控制單元中的寄存器中檢索用于所述合并的基-2蝶形運算 的輸入項。
14. 根據(jù)權(quán)利要求13所述的處理器,其中所述控制單元通過訪問所述存儲器組 (1/2 X 1〇拓腳X (10 X log2腳次而基于合并的基-2蝶形運算在N個輸入項上執(zhí)行FFT計算。
15. 根據(jù)權(quán)利要求13所述的處理器,其中所述控制單元經(jīng)配置W執(zhí)行指令,其中所述 指令包括: 通過所述控制單元將兩個輸入項從所述存儲器組加載到所述控制單元的寄存器中; 使用存儲在所述存儲器組中的旋轉(zhuǎn)因子通過所述控制單元在兩個輸入項上執(zhí)行基-2 蝶形運算,W產(chǎn)生兩個輸出蝶形值;W及 使用存儲在所述存儲器組中的旋轉(zhuǎn)因子通過所述控制單元在從所述控制單元的寄存 器中讀取的兩個輸入項上執(zhí)行基-2蝶形運算,W產(chǎn)生兩個輸出蝶形值。
16. 根據(jù)權(quán)利要求13所述的處理器,其中所述控制單元跨越兩個連續(xù)級在四個輸入項 上執(zhí)行合并的基-2蝶形運算的單元,并且產(chǎn)生四個輸出蝶形值作為在接下來兩個連續(xù)級 處的蝶形運算的輸入項。
【專利摘要】一種系統(tǒng)包含存儲器組和控制單元。控制單元經(jīng)配置以通過在N個輸入項上執(zhí)行FFT計算而基于合并的基-2蝶形運算來執(zhí)行FFT計算,并且訪問存儲器組(1/2×log2N)×(10×log2N)次。
【IPC分類】G06F17-14
【公開號】CN104572578
【申請?zhí)枴緾N201410541540
【發(fā)明人】P·查德赫里, A·特薩洛咯
【申請人】德克薩斯儀器股份有限公司
【公開日】2015年4月29日
【申請日】2014年10月14日
【公告號】US20150113030