摘要:提出了一種基于最優(yōu)搜索的稀疏傅里葉變換(SFT)的并行實現(xiàn)設(shè)計。首先將輸入信號分為并行N組,分別進行快速傅里葉變換(FFT),實現(xiàn)信號頻率分量的取模處理,然后通過排序搜索獲得。經(jīng)驗證,相較于FFTW,當信號長度大于524 288時,執(zhí)行時間會有更好的表現(xiàn);相較于正交匹配算法及其他SFT的FPGA實現(xiàn),其系統(tǒng)的復雜度降低了。
?
0引言
稀疏傅里葉變換(Sparse Fourier Transform, SFT)是一種新的算法框架,也是快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)在處理稀疏頻譜信號上的延伸。2003年AYDINER A A等人提出了針對頻域稀疏信號的傅里葉變換基本思想[1]。對于頻域稀疏信號來說,其頻譜可以通過其多級子集頻譜獲得。之后,IWEN M A等人從壓縮感知得到啟發(fā),將采樣和頻率估計整合到快速傅里葉變換并提出了經(jīng)典SFT框架[2]。之后SFT廣泛運用于稀疏頻譜信號(諸如音頻信號、醫(yī)學圖像信號)的處理以及頻譜感知領(lǐng)域[3]。大量的SFT算法被提出,它們多利用經(jīng)典的頻率估計算法通過亞奈奎斯特采樣點的子集的傅立葉變換重構(gòu)稀疏頻點[4]。但由于經(jīng)典SFT的亞奈奎斯特率樣本是通過多次采樣獲得的,因此,經(jīng)典SFT 不可能代替 FFT來處理實時信號,比如雷達信號等。
2010年以來,一種并行結(jié)構(gòu)的SFT算法受到了廣泛的關(guān)注[5]。并行SFT首先通過并行下采樣,采集計算所需的所有時域數(shù)據(jù),然后再通過FFT,通過亞線性頻譜估計方法獲得信號的稀疏頻率及其幅值。由于該類方法以并行取代迭代獲得頻譜估計所需的所有信息,因此可以實時處理各種頻域稀疏信號,使得經(jīng)典SFT得到了改善。基于此,參考文獻[6]~[8]探討了稀疏傅里葉變換在GPU以及多核CPU上的實現(xiàn)方式。這些研究顯示,基于GPU加速的實現(xiàn)方案運行速度要顯著高于基于CPU的實現(xiàn)方案。然而,基于GPU的實現(xiàn)方案都存在主存儲區(qū)與GPU存儲區(qū)的連接交互問題,因此數(shù)據(jù)間的正常流動不能得到更好的促進。
為解決GPU的數(shù)據(jù)并行處理的局限性,本文研究SFT的并行算法并在FPGA上對其進行實現(xiàn),同時應用中國余數(shù)定理(CRT)的基本原理對信號進行重構(gòu)。相較于傳統(tǒng)的SFT,本文的方法可以極大地降低系統(tǒng)的復雜度,減少了硬件的開銷。本文,首先介紹SFT的并行框架,然后討論SFT的FPGA實現(xiàn)架構(gòu),最后從仿真結(jié)果以及硬件實現(xiàn)兩方面對系統(tǒng)進行評估。
1SFT并行算法
SFT并行算法主要由下采樣、頻率估計、幅度估計三個部分組成。在下采樣過程中,將輸信號劃分為N個組,每個組的采樣因子分別為σ1,σ2,…,σN。利用中國余數(shù)定理(Chinese Residue Theorem,CRT)進行頻率以及幅度的估計,設(shè)定各組的采樣因子兩兩互質(zhì)。
并行SFT算法從L個采樣樣點中重構(gòu)2 K算個參數(shù),其中包括K個時延參數(shù)以及K個幅度參數(shù)。重構(gòu)法的具體計算步驟如下:首先,設(shè)采樣通道數(shù)為N,每個通道的采樣點數(shù)分別為qi,i=1,2,…,N。計算X~=M*X,其中M為下采樣矩陣,X為采樣樣本。之后,對X~進行DFT變換,得到X^=DFT(X~)。按幅度從大到小對X^向量中的值進行排序,計算hk:
hk=kthMAX|X^j|,k∈[0,K](1)
其中K為指定的重構(gòu)信號的參數(shù)。得到hk之后則可通過求余運算獲取余數(shù)信息r1,khk的位置modq1。通過并行查詢的方式搜索余數(shù)的最優(yōu)解:
tminmint∈[0,qj]|hk-X^t*q1+r1,k|,j∈[2,N](2)
rj,k=r1,k+tmin*q1modqj,j∈[2,N](3)
利用CRT通過r1,b,…,rN,b重構(gòu)時延參數(shù)τk,幅度估計參數(shù)可由公式(4)和 (5)得出:
x=real(hk)|τk
y=imag(hk)|τk(4)
ak=|x+iy|(5)
2SFT主要部分的FPGA實現(xiàn)
本文考慮使用MATLAB Simulink工具構(gòu)建SFT采樣算法的FPGA實現(xiàn)架構(gòu)。圖1展示了當采樣通道數(shù)N=3時的SFT并行結(jié)構(gòu),其主要包括下采樣、頻率估計、幅度估計三個部分。
如圖1所示,頻率估計與幅度估計共用部分相同的硬件結(jié)構(gòu),信號在經(jīng)過下采樣之后,通過FFT運算得到復數(shù)的輸出信號,為了對該復數(shù)信號進行排序,將該復數(shù)信號取模后送入排序網(wǎng)絡,由于每個通道送入排序網(wǎng)絡的點數(shù)不同,排序網(wǎng)絡的結(jié)構(gòu)會稍有差異。在利用CRT估計信號的幅度和頻率之前,需要對信號進行求余、求最優(yōu)解等運算。其中,最優(yōu)解運算的核心是排序網(wǎng)絡,利用排序網(wǎng)絡的思想求取輸入信號的最大值以及獲取排序后的信號在原輸入信號中的位置;CRT模塊由一些加法器和乘法器組成。
輸入信號經(jīng)過多路選擇器獲得下采樣信號,所以該部分主要研究下采樣信號的頻率估計以及幅度估計,頻率估計包括最優(yōu)解模塊以及CRT重構(gòu)模塊。另外,硬件構(gòu)成部門還包含了存儲和控制單元,各通道采樣因子數(shù)ql、參數(shù)t、排序位置信息等都在存儲單元中保存,控制單元產(chǎn)生地址值來執(zhí)行讀寫存儲器的操作,并輸出必要的控制信號來初始化運算模塊。
在本設(shè)計中,設(shè)定信號長度N=223,參數(shù)個數(shù)K,采樣通道數(shù)M=3,其中,各個通道的采樣點分別為q1,q2,q3;q1,q2,q3兩兩互質(zhì)且乘積大于信號長度N,因此,通過中國余數(shù)定理可由q1+q2+q3個采樣點數(shù)獲取原始信號所有的信息,降低了幅度以及頻率估計時所需的采樣點數(shù)。下面介紹各個主要功能模塊的設(shè)計。
2.1頻率估計
2.1.1最優(yōu)解模塊實現(xiàn)架構(gòu)
頻率估計模塊的核心部分在于最優(yōu)解的獲得,最優(yōu)解實現(xiàn)架構(gòu)如圖2所示。圖中X^t*q1+r1,k可由采樣樣本經(jīng)過多路選擇器MUX獲得,根據(jù)t的取值不同,可以得到多個定點采樣的樣點值。當排序網(wǎng)絡為三輸入結(jié)構(gòu)時,r1,k代表排序網(wǎng)圖2最優(yōu)解模塊架構(gòu)絡模塊中獲得的k1,1,k1,2,k1,3對應位置信息數(shù)據(jù)對q1取余所得的值。t的取值范圍為0~qj,j=2,3,其中當j=2時,q2=4,同樣地,有q3=5;兩種情況下只有t值的變化導致定點采樣的樣點值的變化,而其對應的模塊架構(gòu)是相同的,所以這里僅對j=2時的情況加以分析。
根據(jù)排序網(wǎng)絡結(jié)構(gòu),需要的輸入數(shù)據(jù)有兩組,一組為需要排序的數(shù)據(jù),以便求得最小值,另外一組則為數(shù)據(jù)對應的位置信息t。這樣在排序網(wǎng)絡求取完最小值后可以直接獲取相應的t值而不需要進行其他的運算處理。為此,將需要排序的數(shù)據(jù)并行導入排序網(wǎng)絡的數(shù)據(jù)輸入接口,將對應的位置信息t值也并行導入排序網(wǎng)絡的位置信息接口。
如圖3所示,原有輸入的3路信號序號為1,2,3。該模塊實現(xiàn)對這3路信號進行從大到小的排序,并獲得排序后的信號在原序列中的序號,即取位。圖3顯示了3輸入結(jié)構(gòu)的排序圖,4輸入乃至更多輸入結(jié)構(gòu)圖原理相同,圖中比較器的輸出作為多路選擇器的sel選擇端輸入,利用比較器以及多路選擇器的硬件電路連接實現(xiàn)邏輯上的比較選擇排序。k1,1,k1,2,k1,3為3輸入信號經(jīng)過排序網(wǎng)絡的輸出信號,有k1,1>k1,2>k1,3。k1,1_loc,k1,2_loc,k1,3_loc分別記錄了k1,1,k1,2,k1,3在原序列中的位置。同時將位置信息存儲到位置信息存儲器中。
2.1.2CRT模塊架構(gòu)
最優(yōu)解模塊輸出一組余數(shù)信息的集合,利用中國余數(shù)定理可以輕易地通過一組累加求和運算獲取頻率集合,進一步便可獲取時延參數(shù)τk。由中國余數(shù)定理可以得到如下方程組:
x≡r1(modq1)
x≡r2(modq2)
x≡rn(modqn) (6)
其中ri(i=1,2,…,n)為頻率點的集合,qi(i=1,2,…,n)為采樣點數(shù)的集合。假設(shè)Q為q1到qn的乘積,并設(shè)Qi=Q/qi,i∈{1,2,…,n},ti為Qi模qi的數(shù)論倒數(shù),則有:
x=∑ni=1ritiQi(7)
圖4顯示了一個頻率點的CRT重構(gòu)模塊架構(gòu)。
2.2幅度估計
幅度估計中,利用CRT重構(gòu)模塊中獲取的頻率集合w1,w2分別與L1,L2作求余運算,以此為基礎(chǔ)求得hk,利用前面式(4)和式(5)可求得原始信號的幅度估計。其中頻率集合w1,w2由CRT模塊獲得,圖5中求余的作用為頻率集合w1,w2分別對采樣點數(shù)L1,L2作求余運算。輸入序列xl、稀疏度值、采樣通道數(shù)、每個通道的采樣點數(shù)存儲在寄存器中供乘法器調(diào)用。利用排序網(wǎng)絡分別求得輸入信號實部與虛部的最大值,再對其進行取模則可得到幅度值的估計。幅度估計的模型如圖5所示,其中,排序網(wǎng)絡為4輸入結(jié)構(gòu)。
3結(jié)果分析以及性能評估
為評估該算法框架的有效性,將其與FFTW做對比,F(xiàn)FTW是一個快速計算離散傅里葉變換的庫,這個庫可以在多核CPU以及GPU上運行。分別考慮稀疏度k恒定為1 000時信號長度的變化對執(zhí)行時間的影響,以及信號長度N恒定為223時稀疏度的變化對執(zhí)行時間的影響,比較結(jié)果如圖6所示。
將本文討論的稀疏傅里葉變換采樣框架與已知的OMP算法框架作性能上的對比,實現(xiàn)了信號長度N=32,參數(shù)個數(shù)K=2以及采樣點數(shù)的采樣框架。其中,使用RAM塊實現(xiàn)所有所需的向量、常數(shù)或矩陣的存儲。將OMP架構(gòu)[9]以及SFT架構(gòu)[10]在同樣的平臺下做了實現(xiàn)來與本文算法架構(gòu)進行對比,其結(jié)果如表1所示。
相較于OMP架構(gòu),本文提出架構(gòu)大大減少了DSP48E以及所需寄存器的數(shù)量。相較于文獻[10]提出的SFT架構(gòu),本文架構(gòu)依舊能夠有良好的表現(xiàn)。
4結(jié)論
本文提出了SFT的FPGA并行實現(xiàn)方案,使用Simulink中的XSG開發(fā)工具構(gòu)建FPGA實現(xiàn)框架。對獨立功能塊的并行化處理可以大大減少執(zhí)行時間。之后對FPGA上的硬件實現(xiàn)進行了評估,相對于FFTW的實現(xiàn)方案,在采樣點數(shù)的量級足夠大時,提高了系統(tǒng)運行速度,降低了計算所需的時間;相對于其他OMP等算法的FPGA實現(xiàn)方案,減少了資源的消耗,降低了系統(tǒng)的復雜度。
評論
查看更多