- 相關(guān)推薦
基于FPGA的快速并行FFT及其在空間太陽(yáng)望遠(yuǎn)鏡圖像鎖定系統(tǒng)中的應(yīng)
摘要:在空間太陽(yáng)望遠(yuǎn)鏡的在軌高速數(shù)據(jù)處理中,運(yùn)算時(shí)間是影響系統(tǒng)性能的重要環(huán)節(jié)之一。利用FPGA豐富的邏輯單元實(shí)現(xiàn)快速傅里葉變換(FFT),解決 了在軌實(shí)時(shí)大數(shù)據(jù)量圖像處理與航天級(jí)DSP運(yùn)算速度不足之間的矛盾;利用溢出監(jiān)測(cè)移位結(jié)構(gòu)解決了定點(diǎn)運(yùn)算的動(dòng)態(tài)范圍問題。經(jīng)過實(shí)驗(yàn)驗(yàn)證,各項(xiàng)指標(biāo)均達(dá)到了設(shè)計(jì)要求。空間太陽(yáng)望遠(yuǎn)鏡項(xiàng)目是我國(guó)太陽(yáng)物理學(xué)家為了實(shí)現(xiàn)對(duì)太陽(yáng)的高分辨率觀測(cè)而提出的科學(xué)計(jì)劃。它可以得到空間分辨率為0.1"的向量磁圖和0.5"的X射線圖像,實(shí)現(xiàn)這樣高的觀測(cè)精度的前提就是采用高精度的姿態(tài)控制系統(tǒng)和高精度的相關(guān)跟蹤系統(tǒng)。從整個(gè)系統(tǒng)來看,相關(guān)運(yùn)算所需的時(shí)間成為限制系統(tǒng)性能能否提高的一個(gè)重要環(huán)節(jié)。
目前,國(guó)際國(guó)內(nèi)相關(guān)計(jì)算比較通用的實(shí)現(xiàn)方法有兩種:用高速DSP或者專用(FFT)處理芯片。用DSP完成相關(guān)計(jì)算(關(guān)鍵是FFT)受到航天級(jí)DSP性能的限制,現(xiàn)有的航天級(jí)DSP(如ADSP21020)計(jì)算一個(gè)32×32點(diǎn)8bit的二維FFT所用時(shí)間需要1.5ms以上,遠(yuǎn)遠(yuǎn)不能滿足系統(tǒng)設(shè)計(jì)要求;而現(xiàn)有的FFT處理芯片在處理速度、系統(tǒng)兼容性、抗輻射能力等方面不能滿足空間太陽(yáng)望遠(yuǎn)鏡所提出的要求。
為克服這一矛盾,本文利用FPGA資源豐富、易于實(shí)現(xiàn)并行流水的特點(diǎn)設(shè)計(jì)專用的FFT處理芯片來完成復(fù)雜的、大量的數(shù)據(jù)處理;并通過在運(yùn)算中作溢出監(jiān)測(cè)來保證定點(diǎn)運(yùn)算的精度,從而大大縮短系統(tǒng)的響應(yīng)時(shí)間,將極大地提高空間太陽(yáng)望遠(yuǎn)鏡的在軌實(shí)時(shí)圖像處理能力;同時(shí)由于FPGA具有抗輻射能力,可以提高系統(tǒng)的可靠性,其在航天遙測(cè)遙感和星載高速數(shù)據(jù)處理等方面將有廣泛的應(yīng)用前景。
1 算法構(gòu)成
1.1 FFT算法選擇
提高FFT速度的兩個(gè)主要途徑是采用流水結(jié)構(gòu)和并行運(yùn)算[1]。采用高基數(shù)結(jié)構(gòu)也可以提高速度,只是用FPGA實(shí)現(xiàn)時(shí)必須綜合考慮系統(tǒng)要求、結(jié)構(gòu)特點(diǎn)及片內(nèi)資源。針對(duì)本系統(tǒng)自身特點(diǎn),這里按時(shí)間抽選算法進(jìn)行分析。由于32不滿足N=4m,所以32點(diǎn)FFT算法不能采用基-4 FFT運(yùn)算。當(dāng)詳細(xì)分析基-2蝶形圖時(shí),有些蝶形運(yùn)算并不需要做乘法,例如等[2];對(duì)于32點(diǎn)DIT-FFT,一共80個(gè)蝶形運(yùn)算,這種結(jié)構(gòu)就有46個(gè),極大地降低了運(yùn)算復(fù)雜度。在一維FFT計(jì)算效率提高的基礎(chǔ)上對(duì)二維FFT采用最常用的行列算法[3],綜合各項(xiàng)指標(biāo)本系統(tǒng)采用基-2 DIT行列算法。
1.2 算術(shù)運(yùn)算方案
本系統(tǒng)是針對(duì)32×32點(diǎn)16bit的二維圖像進(jìn)行快速傅里葉變換(FFT),設(shè)計(jì)要求運(yùn)算在0.5ms之內(nèi)完成,所以采用定點(diǎn)運(yùn)算更符合系統(tǒng)對(duì)時(shí)間的要求。對(duì)于定點(diǎn)運(yùn)算,必須用定比例的方法防止溢出,即必須解決動(dòng)態(tài)范圍問題。下面對(duì)其進(jìn)行理論分析:
若{x(n)}是-N點(diǎn)序列,其DFT為{X(K)},由Parseval定理得[4]:
由式(1)可知變換結(jié)果的均方值是輸入序列均方值的N倍。考慮基-2算法的第m級(jí)蝶形運(yùn)算,用Xm(i)、Xm(j)表示原來的復(fù)數(shù),則新的一對(duì)復(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í)數(shù)或復(fù)數(shù))復(fù)級(jí)都增加(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ù)組的最大模是非減的。所以,對(duì)于DITFFT,其每一級(jí)的蝶形運(yùn)算之后數(shù)值都會(huì)增加1 (2的平方根)≈2.414倍。在每一次運(yùn)算完成之后,須將結(jié)果右移2bits以滿足要求。
2 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)原理如圖1所示,整個(gè)FFT運(yùn)算處理單元分為三部分:存儲(chǔ)單元(兩個(gè)輸入/運(yùn)算存儲(chǔ)器、一個(gè)輸出存儲(chǔ)器及旋轉(zhuǎn)因子存儲(chǔ)器)、蝶形運(yùn)算單元、地址產(chǎn)生器。
2.1 存儲(chǔ)器
本系統(tǒng)實(shí)時(shí)接收前端CCD相機(jī)的圖像。為保證CCD相機(jī)采集圖像的準(zhǔn)確率,圖像的每一行、每一幀之間都必須有一定的時(shí)間間隔,故采用兩個(gè)存儲(chǔ)單元作為輸入數(shù)據(jù)和中間數(shù)據(jù)的暫存單元(如圖1所示),以節(jié)省時(shí)間實(shí)現(xiàn)實(shí)時(shí)處理。當(dāng)系統(tǒng)工作時(shí),將圖像存入存儲(chǔ)器、計(jì)算上一次采集的圖像、將存儲(chǔ)器中的結(jié)果輸出,這三個(gè)工作同時(shí)進(jìn)行,用簡(jiǎn)單的流水方式減少存儲(chǔ)數(shù)據(jù)所需的時(shí)間。旋轉(zhuǎn)因子則預(yù)先存儲(chǔ)在器件的內(nèi)置ROM中。根據(jù)級(jí)數(shù)不同選用不同的因子。
2.2 蝶形運(yùn)算單元
一個(gè)基-2蝶形運(yùn)算由一個(gè)復(fù)乘和兩個(gè)復(fù)加(減)組成,采用完全并行運(yùn)算,進(jìn)一步分解為四個(gè)實(shí)數(shù)乘法,六個(gè)實(shí)數(shù)加(減)法,分三級(jí)并行完成,加上前后輸入輸出的數(shù)據(jù)鎖存,共需要6個(gè)時(shí)鐘周期。32點(diǎn)的FFT需要16×5=80個(gè)基-2的蝶形運(yùn)算,一幅圖像一共是32行32列,不考慮不需要做乘法的蝶形
【基于FPGA的快速并行FFT及其在空間太陽(yáng)望遠(yuǎn)鏡圖像鎖定系統(tǒng)中的應(yīng)】相關(guān)文章:
基于web的異地并行設(shè)計(jì)與制造系統(tǒng)研究06-02
談智能決策支持系統(tǒng)及其在林業(yè)中的應(yīng)用研究08-21
OFDM技術(shù)研究及其系統(tǒng)仿真05-11
紡織企業(yè)快速報(bào)價(jià)系統(tǒng)開發(fā)05-11
智能控制及其在機(jī)電一體化系統(tǒng)中的應(yīng)用(通用5篇)05-23
基于PLC的斷路器型式試驗(yàn)系統(tǒng)設(shè)計(jì)03-10
目標(biāo)規(guī)劃及其在經(jīng)濟(jì)中的應(yīng)用05-11
可視化遠(yuǎn)程會(huì)商系統(tǒng)及其維護(hù)09-19
《家族》中苦難敘事的意義及其限度的闡述05-11