一種基于實時性處理的混合基fft方法
【專利摘要】本發明公開了一種基于實時性處理的混合基FFT方法,適用于FFT點數滿足級數為s=s1+s2的情況。第一步根據實時性的要求,將輸入數據分配到r2個存儲器中,每個存儲器深度為第二步,采用流水方法讀取多個存儲器,對r2個N′點進行DFT運算;在讀取過程中,第n+1個存儲器讀取時序延后第n個存儲器;第三步,采用并行方法對多個存儲器讀取,對N′個r2點進行DFT運算。本發明基于原位存儲、輸入數據順序、單蝶形單元,且保證實時性的條件下,消除額外運算,針對多存儲器采用流水和并行的訪問方式,達到了實時性的設計要求。
【專利說明】一種基于實時性處理的混合基FFT方法
【技術領域】
[0001]本發明屬于數字信號處理【技術領域】,涉及一種基于實時性處理的混合基FFT方法。
【背景技術】
[0002]隨著數字信號處理技術和大規模集成電路的發展,FFT (快速傅里葉變換)算法的重要性不言而喻,廣泛應用于各種科學工程領域,如雷達、聲納、通信等,同時對小型化和實時性等的要求越來越高。
[0003]計算FFT時,常用的算法是基-2FFT和基-4FFT,點數限制在2的冪次方或4的冪次方,這樣限制了其點數的可選擇范圍。對于某些應用,比如SAR (合成孔徑雷達)信號處理中,尤其是在聚束模式下,由于處理時間和面積的限制,不能將每個處理的點數都擴展至滿足基-2或基-4FFT算法,尤其對于大點數的FFT,否則會延長計算時間以及消耗更多的存儲空間。[0004]在各種各樣的FFT處理器中,一般采用兩種結構:流水結構和基于存儲的結構。當對大點數進行處理時,流水結構比基于存儲結構會占用更多的資源,導致面積和功耗增加。因此近些年來,針對大點數FFT的實現,基于存儲結構得到越來越廣泛的需求。而為了占用最少的存儲資源,通常采用原位存儲算法,該方法是將FFT蝶形單元的輸出存儲到與輸入數據讀取的地址一致的存儲空間內。不過,原位存儲結構處理時間長,實時性不高。為滿足實時性的要求,通常會將輸入數據分配到多個存儲器中,這樣可以同時對進入蝶形單元的數據進行讀取/存儲。
[0005]目前關于多存儲器分配數據的方法常用的有以下三種:(I)采用多個取模操作對數據進行分配,該方法針對固定基FFT ; (2)采用一個取模操作對數據進行分配,該方法可用于混合基中;(3)采用異或門實現多存儲的分配,該方法主要應用于基-2和基-4FFT中。這三種方法中都存在額外的運算,即取模或異或操作,都會消耗額外的資源,因此解決這一問題是必要的。
【發明內容】
[0006]本發明的目的是為了克服已有技術的缺陷,在基于原位存儲、輸入數據順序、單蝶形單元(在本發明中由于是基-1Vr2FFT的形式,雖然有兩個蝶形處理單元,即基I1和基_r2,但是可以將兩個合并稱為單碟形單元,是與多蝶形相對,多蝶形是指多個基I1和基_r2單元),且保證實時性的條件下,提出一種混合基FFT方法,不需要限定FFT點數必須滿足2或4的冪指數要求,無需取模/異或操作運算,達到實時處理的目的。
[0007]本發明是通過下述技術方案實現的:
[0008]該方法適用于FFT點數滿足N = η'' X 、級數為s=s1+s2的情況;其中,1ι,r2分
別為兩個不同的基,S1, S2為兩個基分別對應的冪指數;設定;
[0009]步驟一、根據實時性的要求,將輸入數據分配到多個存儲器中;[0010]選定存儲器的個數為m=r2,則每個存儲器的存儲深度為
【權利要求】
1.一種基于實時性處理的混合基FFT方法,其特征在于,該方法適用于FFT點數滿足N = /f X if、級數為S=S1+S2的情況;其中,r1; r2分別為兩個不同的基,S1, S2為兩個基分別對應的冪指數;設定; 該方法包括如下步驟: 步驟一、對輸入的數據序列x(n)進行存儲器的分配:選定存儲器的個數為m=r2,則每個存儲器的存儲深度為= r;1 x/f 4 ;將數據序列 的序號η分解為n = T2Xi^n2, ^n2表示存儲器的編號,Ii1表示存儲器的深度,然后對η個數據序列X (η)進行分配; 步驟二、采用流水方法讀取多個存儲器,對r2個N'點進行DFT運算:設r2個存儲器依次用Mtl, M1,...M7..!來表示;按存儲器編號依次從各存儲器中按照原位計算的地址規律讀出r'個操作數;其中,r' e (r1; r2);當前級做基_r2蝶形運算時,r' =r2,做基-!T1蝶形運算時,r' =A ;具體操作如下:(1)首先按照時鐘周期,在每個時鐘周期從Mtl讀取一個操作數,共讀取r'個;在從Mtl讀取操作數的同時,在M0延遲一個時鐘的情況下從M1開始讀操作數,在M1延遲一個時鐘的情況下從虬開始讀操作數,以此類推,在延遲一個時鐘的情況下從My1開始讀操作數; (2)每當從同一個存儲器讀取的操作數湊齊r'個后,這r'個操作數后經第一緩存單元并行進入蝶形單元進行運算,得出r'個并行輸出數據,再經第二緩存單元串行寫入對應存儲器的相應地址,從而完成每個存儲器的第一級的第一個蝶形運算; (3)重復步驟(1)~(2)(N' /r' )_1次,每個存儲器的N'點數據完成第一級剩下的(N' Ix' )-1次蝶形運算;在此過程中,Mtl的第二次蝶形處理的r'個操作數是在延遲一個時鐘情況下獲得的; (4)重復步驟(1)~(3)s-2次,則得到每個存儲器的N'點FFT運算; 步驟三、采用并行方法對多個存儲器讀取,對N'個1*2點進行DFT運算: 每個時鐘周期從r2個存儲器的同一個地址讀取一個操作數,共r2個,并行進入蝶形單元中進行基_r2的蝶形運算,共N,次;蝶形單元的并行輸出數據按照原位存儲方法并行存儲到相應的存儲器的相應地址中; 至此,整個N點FFT運算完成。
【文檔編號】G06F12/02GK103544111SQ201310465130
【公開日】2014年1月29日 申請日期:2013年10月8日 優先權日:2013年10月8日
【發明者】陳禾, 馬翠梅, 于文月, 謝宜壯, 龍騰 申請人:北京理工大學