專利名稱:一種無需重新排序的16點wfta處理器和方法
技術(shù)領域:
本發(fā)明涉及數(shù)字信號處理領域,特別涉及一種無需重新排序的小點數(shù)Winograd快速傅里葉變換算法(Winograd Fourier Transform Algorithm, WFTA)的實現(xiàn)方法。
背景技術(shù):
隨著無線通信業(yè)務的不斷增長,可利用的頻譜資源日益緊張。為了提高頻譜利用率和通信質(zhì)量,現(xiàn)代無線通信系統(tǒng)廣泛采用對頻率選擇性衰落具有較強免疫力的正交頻分復用(Orthogonal Frequency Duplex Multiplexing, 0FDM)技術(shù)。OFDM 技術(shù)的核心是FFT。FFT的點數(shù)分為2的冪次和非2冪次兩種。點數(shù)是2的冪次的FFT算法和實現(xiàn)比較成熟。相比之下,非2冪次點數(shù)的FFT更為靈活,近年來在DRM、DTMB, LTE系統(tǒng)中開始得到應用。
因此,非2冪次點數(shù)FFT的算法和實現(xiàn)值得深入研究。目前,素因子算法(Prime Factor Algorithm, PFA)是最有效的非2冪次FFT,它采用嵌套多維結(jié)構(gòu),能有效降低計算復雜度。對于N點非2冪次FFT,假設N可分解為s個兩兩互素因子的乘積,即N=N1N^N- N點PFA的基本原理是,把一維大點數(shù)FFT映射成s維小點數(shù)FFT,第i (i=l, 2,...,s)維FFT進行N / Ni次Ni點小點數(shù)FFT。小點數(shù)FFT可借助于Cooley-Tukey算法、WFTA以及其它高效算法。在某些情況下,PFA需要重新排序。根據(jù)在計算過程中所處的位置,重新排序分為預擾亂和后擾亂。不考慮Ni (i = I, 2,…,s)點FFT的內(nèi)部機制,如果第i維FFT無需重新排序,那么它是同址的;否則,它是變址的,重新排序是在隊點序列內(nèi)進行的,預擾亂和后擾亂分別在Ni點FFT之前和之后執(zhí)行。類似地,不考慮每維FFT的內(nèi)部機制,如果N點PFA整體上無需重新排序,那么它是同序的;否則,它是變序的,重新排序是在N點序列內(nèi)進行的,預擾亂和后擾亂分別在第一維FFT開始前和最后一維FFT結(jié)束后執(zhí)行。這樣,PFA理論上可分為4種變址變序、變址同序、同址同序和同址變序。目前,PFA要么是變址同序的,要么是同址變序的,不可避免地引入了重新排序操作。眾所周知,重新排序意味著必須增加一級緩沖區(qū),需要消耗較多的存儲器資源,會增加硬件成本。此外,重新排序還會降低運算速度,增加控制的復雜度。與同址變序PFA相比,變址同序PFA消耗較少的存儲器資源,兩者重新排序的總延時完全相同,都是N個時鐘周期,因此,變址同序PFA更可取。
發(fā)明內(nèi)容
針對PFA的現(xiàn)有實現(xiàn)方案中存在的需要重新排序這一技術(shù)缺點,本發(fā)明提供了無需重新排序的16點WFTA處理器。當N點非2冪次FFT采用變址同序PFA實現(xiàn)時,如果N的某一互素因子Ni=Ie (i=l, 2,…,s),那么使用本專利無需對第i維FFT重新排序。為了去除第i維16點FFT的重新排序操作,需要修改常規(guī)的16點WFTA。常規(guī)的16點WFTA的對角矩陣是固定不變的,本發(fā)明將對角矩陣對角線上的各元素表示成角度參數(shù)0=2 Ji / 16*〈N / 16>16的函數(shù),其中,〈N / 16>16表示對N / 16取模16操作。對于不同的N,修改的16點WFTA的對角矩陣不盡相同。
對于第i維FFT,需進行N / 16次無需重新排序的16點WFTA,無需重新排序,簡化了控制邏輯,共節(jié)約了 N / 16*16=N個時鐘周期,提高了運算速度,存儲器消耗減少了一半,降低了硬件成本。
關(guān)于本發(fā)明的優(yōu)點與精神可通過接下來的發(fā)明詳述及附圖得到進一步的了解。
圖1是常規(guī)的16點WFTA處理器的功能框圖2是輸入矩陣I的具體構(gòu)成;
圖3是輸出矩陣O的具體構(gòu)成;
圖4是對角矩陣D對角線上的具體構(gòu)成;
圖5是預擾亂的16點WFTA處理器的結(jié)構(gòu)示意圖6是后擾亂的16點WFTA處理器的結(jié)構(gòu)示意圖7是無需重新排序的16點WFTA處理器的功能框圖8是可變對角矩陣A對角線上的具體構(gòu)成。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明,但不作為對本發(fā)明的限定。
N點序列X (η)的FFT為
權(quán)利要求
1.一種無需重新排序的16點Winograd快速傅里葉變換處理器,它嵌套于s維的N點變址同序素因子算法,其中,N=N1N^Ns,任意兩個不同因子Ni和Nj互素,i = I, 2, ···, s,j=l, 2,…,s,當某一因子Ni=Ie時,所述處理器可用于去除N點變址同序素因子算法第i維FFT的重新排序操作,其特征在于,所述處理器包括 復數(shù)乘法器M1 M3,它們完成矩陣與向量的乘法運算; 輸入矩陣I,它通過復數(shù)乘法器M1與輸入向量V相乘得到向量P ; 可變對角矩陣A,它通過復數(shù)乘法器M2與向量P相乘得到向量q ; 輸出矩陣0,它通過復數(shù)乘法器M3與向量q相乘得到輸出向量V。
2.如權(quán)利要求I所述的16點Winograd快速傅里葉變換處理器,其特征在于,所述輸入矩陣I和輸出矩陣O與常規(guī)的16點Winograd快速傅里葉變換處理器相同,而對角矩陣由常規(guī)的常數(shù)矩陣修改為可變矩陣A。
3.如權(quán)利要求I所述的16點Winograd快速傅里葉變換處理器,其特征在于,所述可變對角矩陣A對角線上的各元素是角度參數(shù)θ=2π / 16*〈Ν / 16>16的函數(shù),其中,〈N /16>16表不對N / 16取模16操作。
4.一種去除N點變址同序素因子算法第i維FFT重新排序操作的16點Winograd快速傅里葉變換處理方法,其中,N=N1N^ Ns,任意兩個不同因子Ni和Nj互素,i = 1,2,…,S,j=l, 2,…,s,隊=16,其特征在于,所述處理方法包括以下步驟 (1)根據(jù)N確定角度參數(shù)θ=2π/ 16*〈Ν / 16>16的具體取值,在此基礎上初始化可變對角矩陣A對角線上各元素的數(shù)值,使A變?yōu)槌?shù),初始化變量1=0,其中,OS 1〈Ν / 16,〈N / 16>16表示對N / 16取模16操作; (2)從輸入序列χ[η]中讀取16個數(shù)據(jù),它們的索引是n=〈N/ 16*m+16*l>N,它們構(gòu)成向量V,其中,O≤m〈16,〈N / 16*m+16*l>N表示對N / 16*m+16*l取模N操作; (3)通過復數(shù)乘法器M1,輸入矩陣I與向量V相乘,得到向量P; (4)通過復數(shù)乘法器M2,可變對角矩陣A與向量P相乘,得到向量q; (5)通過復數(shù)乘法器M3,輸出矩陣O與向量q相乘,得到向量V; (6)將向量V中的16個數(shù)據(jù)依次寫入到輸出序列X[k]中,寫入的索引與讀取的索引完全相同,仍然是k=〈N / 16*m+16*l>N ; (7)以I為步長遞增改變I的取值,重復步驟(2)16),直到完成N/16次無需重新排序的 16 點 WFTA。
全文摘要
本發(fā)明涉及一種無需重新排序的16點WFTA處理器,其特征在于,所述處理器主要由輸入矩陣I、可變對角矩陣A、輸出矩陣O和復數(shù)乘法器M1~M3四部分組成。輸入矩陣I通過復數(shù)乘法器M1與輸入向量v相乘得到向量p,可變對角矩陣A通過復數(shù)乘法器M2與向量p相乘得到向量q,輸出矩陣O通過復數(shù)乘法器M3與向量q相乘得到輸出向量V。本發(fā)明去除了N點變址同序素因子算法中16點WFTA涉及的重新排序操作,簡化了控制邏輯,提高了運算速度,節(jié)約了存儲器消耗,降低了硬件成本。
文檔編號G06F17/14GK102982006SQ20121043607
公開日2013年3月20日 申請日期2012年11月5日 優(yōu)先權(quán)日2012年11月5日
發(fā)明者張鵬, 蔡超時, 蔣藍祥 申請人:蘇州威士達信息科技有限公司