- 相關推薦
基于FPGA的快速并行FFT及其在空間太陽望遠鏡圖像鎖定系統中的應
摘要:在空間太陽望遠鏡的在軌高速數據處理中,運算時間是影響系統性能的重要環節之一。利用FPGA豐富的邏輯單元實現快速傅里葉變換(FFT),解決 了在軌實時大數據量圖像處理與航天級DSP運算速度不足之間的矛盾;利用溢出監測移位結構解決了定點運算的動態范圍問題。經過實驗驗證,各項指標均達到了設計要求。空間太陽望遠鏡項目是我國太陽物理學家為了實現對太陽的高分辨率觀測而提出的科學計劃。它可以得到空間分辨率為0.1"的向量磁圖和0.5"的X射線圖像,實現這樣高的觀測精度的前提就是采用高精度的姿態控制系統和高精度的相關跟蹤系統。從整個系統來看,相關運算所需的時間成為限制系統性能能否提高的一個重要環節。
目前,國際國內相關計算比較通用的實現方法有兩種:用高速DSP或者專用(FFT)處理芯片。用DSP完成相關計算(關鍵是FFT)受到航天級DSP性能的限制,現有的航天級DSP(如ADSP21020)計算一個32×32點8bit的二維FFT所用時間需要1.5ms以上,遠遠不能滿足系統設計要求;而現有的FFT處理芯片在處理速度、系統兼容性、抗輻射能力等方面不能滿足空間太陽望遠鏡所提出的要求。
為克服這一矛盾,本文利用FPGA資源豐富、易于實現并行流水的特點設計專用的FFT處理芯片來完成復雜的、大量的數據處理;并通過在運算中作溢出監測來保證定點運算的精度,從而大大縮短系統的響應時間,將極大地提高空間太陽望遠鏡的在軌實時圖像處理能力;同時由于FPGA具有抗輻射能力,可以提高系統的可靠性,其在航天遙測遙感和星載高速數據處理等方面將有廣泛的應用前景。
1 算法構成
1.1 FFT算法選擇
提高FFT速度的兩個主要途徑是采用流水結構和并行運算[1]。采用高基數結構也可以提高速度,只是用FPGA實現時必須綜合考慮系統要求、結構特點及片內資源。針對本系統自身特點,這里按時間抽選算法進行分析。由于32不滿足N=4m,所以32點FFT算法不能采用基-4 FFT運算。當詳細分析基-2蝶形圖時,有些蝶形運算并不需要做乘法,例如等[2];對于32點DIT-FFT,一共80個蝶形運算,這種結構就有46個,極大地降低了運算復雜度。在一維FFT計算效率提高的基礎上對二維FFT采用最常用的行列算法[3],綜合各項指標本系統采用基-2 DIT行列算法。
1.2 算術運算方案
本系統是針對32×32點16bit的二維圖像進行快速傅里葉變換(FFT),設計要求運算在0.5ms之內完成,所以采用定點運算更符合系統對時間的要求。對于定點運算,必須用定比例的方法防止溢出,即必須解決動態范圍問題。下面對其進行理論分析:
若{x(n)}是-N點序列,其DFT為{X(K)},由Parseval定理得[4]:
由式(1)可知變換結果的均方值是輸入序列均方值的N倍。考慮基-2算法的第m級蝶形運算,用Xm(i)、Xm(j)表示原來的復數,則新的一對復數Xm 1(i)、Xm 1(j)為:
Xm 1(i)=Xm(i) Xm(j)×W (2)
Xm 1(j)=Xm(i)-Xm(j)×W
其中,W為旋轉因子。首先,考慮復數的均方程根值。由(2)式可得:
因此,從均方根意義上看,數據(實數或復數)復級都增加(2的平方根)倍。其次,再考慮復數的最大模。由(2)式可以證明[5]。
max{|Xm(i)|,|Xm(j)|}≤max{|Xm 1(i)|,|Xm 1(j)|}≤2max{|Xm(i)|,|Xm(j)|}
因此,復數數組的最大模是非減的。所以,對于DITFFT,其每一級的蝶形運算之后數值都會增加1 (2的平方根)≈2.414倍。在每一次運算完成之后,須將結果右移2bits以滿足要求。
2 系統實現
系統原理如圖1所示,整個FFT運算處理單元分為三部分:存儲單元(兩個輸入/運算存儲器、一個輸出存儲器及旋轉因子存儲器)、蝶形運算單元、地址產生器。
2.1 存儲器
本系統實時接收前端CCD相機的圖像。為保證CCD相機采集圖像的準確率,圖像的每一行、每一幀之間都必須有一定的時間間隔,故采用兩個存儲單元作為輸入數據和中間數據的暫存單元(如圖1所示),以節省時間實現實時處理。當系統工作時,將圖像存入存儲器、計算上一次采集的圖像、將存儲器中的結果輸出,這三個工作同時進行,用簡單的流水方式減少存儲數據所需的時間。旋轉因子則預先存儲在器件的內置ROM中。根據級數不同選用不同的因子。
2.2 蝶形運算單元
一個基-2蝶形運算由一個復乘和兩個復加(減)組成,采用完全并行運算,進一步分解為四個實數乘法,六個實數加(減)法,分三級并行完成,加上前后輸入輸出的數據鎖存,共需要6個時鐘周期。32點的FFT需要16×5=80個基-2的蝶形運算,一幅圖像一共是32行32列,不考慮不需要做乘法的蝶形
【基于FPGA的快速并行FFT及其在空間太陽望遠鏡圖像鎖定系統中的應】相關文章:
基于FPGA的快速傅立葉變換03-19
固定幾何結構的FFT算法及其FPGA實現03-18
基于Cyclone系列FPGA的1024點FFT算法的實現03-07
基于FPGA的前端圖像采集卡的設計11-22
基于圖像處理的數字測色系統03-07