空間太陽望遠鏡圖像鎖定系統(tǒng)中的應(yīng)用
目前,國際國內(nèi)相關(guān)計算比較通用的實現(xiàn)方法有兩種:用高速DSP或者專用(FFT)處理芯片。用DSP完成相關(guān)計算(關(guān)鍵是FFT)受到航天級DSP性能的限制,現(xiàn)有的航天級DSP(如ADSP21020)計算一個32×32點8bit的二維FFT所用時間需要1.5ms以上,遠遠不能滿足系統(tǒng)設(shè)計要求;而現(xiàn)有的FFT處理芯片在處理速度、系統(tǒng)兼容性、抗輻射能力等方面不能滿足空間太陽望遠鏡所提出的要求。
為克服這一矛盾,本文利用FPGA資源豐富、易于實現(xiàn)并行流水的特點設(shè)計專用的FFT處理芯片來完成復(fù)雜的、大量的數(shù)據(jù)處理;并通過在運算中作溢出監(jiān)測來保證定點運算的精度,從而大大縮短系統(tǒng)的響應(yīng)時間,將極大地提高空間太陽望遠鏡的在軌實時圖像處理能力;同時由于FPGA具有抗輻射能力,可以提高系統(tǒng)的可靠性,其在航天遙測遙感和星載高速數(shù)據(jù)處理等方面將有廣泛的應(yīng)用前景。
1 算法構(gòu)成
1.1 FFT算法選擇
提高FFT速度的兩個主要途徑是采用流水結(jié)構(gòu)和并行運算[1]。采用高基數(shù)結(jié)構(gòu)也可以提高速度,只是用FPGA實現(xiàn)時必須綜合考慮系統(tǒng)要求、結(jié)構(gòu)特點及片內(nèi)資源。針對本系統(tǒng)自身特點,這里按時間抽選算法進行分析。由于32不滿足N=4m,所以32點FFT算法不能采用基-4 FFT運算。當(dāng)詳細分析基-2蝶形圖時,有些蝶形運算并不需要做乘法,例如等[2];對于32點DIT-FFT,一共80個蝶形運算,這種結(jié)構(gòu)就有46個,極大地降低了運算復(fù)雜度。在一維FFT計算效率提高的基礎(chǔ)上對二維FFT采用最常用的行列算法[3],綜合各項指標(biāo)本系統(tǒng)采用基-2 DIT行列算法。
1.2 算術(shù)運算方案
本系統(tǒng)是針對32×32點16bit的二維圖像進行快速傅里葉變換(FFT),設(shè)計要求運算在0.5ms之內(nèi)完成,所以采用定點運算更符合系統(tǒng)對時間的要求。對于定點運算,必須用定比例的方法防止溢出,即必須解決動態(tài)范圍問題。下面對其進行理論分析:
若{x(n)}是-N點序列,其DFT為{X(K)},由Parseval定理得[4]:
由式(1)可知變換結(jié)果的均方值是輸入序列均方值的N倍??紤]基-2算法的第m級蝶形運算,用Xm(i)、Xm(j)表示原來的復(fù)數(shù),則新的一對復(fù)數(shù)Xm+1(i)、Xm+1(j)為:
Xm+1(i)=Xm(i)+Xm(j)×W (2)
Xm+1(j)=Xm(i)-Xm(j)×W
其中,W為旋轉(zhuǎn)因子。首先,考慮復(fù)數(shù)的均方程根值。由(2)式可得:
因此,從均方根意義上看,數(shù)據(jù)(實數(shù)或復(fù)數(shù))復(fù)級都增加(2的平方根)倍。其次,再考慮復(fù)數(shù)的最大模。由(2)式可以證明[5]。
max{|Xm(i)|,|Xm(j)|}≤max{|Xm+1(i)|,|Xm+1(j)|}≤2max{|Xm(i)|,|Xm(j)|}
因此,復(fù)數(shù)數(shù)組的最大模是非減的。所以,對于DITFFT,其每一級的蝶形運算之后數(shù)值都會增加1+(2的平方根)≈2.414倍。在每一次運算完成之后,須將結(jié)果右移2bits以滿足要求。
評論