摘" 要: 輻射定標技術(shù)是定量化遙感的關(guān)鍵環(huán)節(jié),實時在軌絕對輻射定標已經(jīng)成為在軌遙感數(shù)據(jù)實時智能處理的重要步驟之一。然而當(dāng)前主流的星上定標、場地定標、交叉定標的定標算法以線性擬合方法為主,雖然計算簡單,但是誤差較大。文中提出一種基于雙指數(shù)函數(shù)的絕對輻射定標方法,可有效提升定標計算精度,同時進行了FPGA硬件實現(xiàn)。針對輸入數(shù)據(jù)數(shù)值超出Cordic計算模塊的輸入范圍情況,提出對輸入數(shù)值進行右移位實現(xiàn)整數(shù)除法操作以避免超范圍的方法,并對輸出結(jié)果進行多級自乘法運算實現(xiàn)了等效計算。通過FPGA仿真和在板運行,結(jié)果表明,當(dāng)輸入Cordic模塊的數(shù)據(jù)小數(shù)位位寬設(shè)置為20 bit時,硬件計算的相對誤差較小,僅0.030 3%。系統(tǒng)時鐘工作在200 MHz時,處理能力達到2×108 f/s,滿足實時應(yīng)用要求。
關(guān)鍵詞: 絕對輻射定標; 定量化遙感; 雙指數(shù)函數(shù); Cordic; FPGA; 多級自乘法運算
中圖分類號: TN709?34; TP751.1" " " " " " " " "文獻標識碼: A" " " " " " " " " " " 文章編號: 1004?373X(2025)03?0149?06
Bi?exponential based absolute radiometric calibration
and FPGA design and implementation
LIU Youji1, SONG Beibei1, LI Bengbeng2, GAO Pan1, SUN Wenfang2
(1. School of Information Engineering, Chang’an University, Xi’an 710021, China;
2. School of Aerospace Science and Technology, Xidian University, Xi’an 710126, China)
Abstract: Radiometric calibration technology is a key step in quantitative remote sensing, and real?time on?orbit absolute radiometric calibration has become one of the important steps in real?time intelligent processing of on?orbit remote sensing data. However, the current mainstream calibration algorithms of on?orbit calibration, site calibration and cross?calibration are mainly based on the linear fitting method. The computation process of the method is simple, but its error is large. In this paper, an absolute radiometric calibration method based on double exponential function is proposed. The method can improve the accuracy of the calibration calculation effectively, as well as carry out the FPGA hardware implementation. In view of the fact that the input data value exceeds the input range of Cordic calculation module, a method of right shifting the input value to realize integer division operation for fear of exceeding the range is proposed, and the output result is subjected to multi?level self?multiplication to realize the equivalent calculation. The results of the FPGA simulation and on?board operation show that when the decimal bit width of the data input to the Cordic module is set to 20 bit, the relative error of the hardware calculation is small, only 0.030 3%. When the system clock works at 200 MHz, the processing capacity reaches 2×108 f/s, which meets the real?time application requirements.
Keywords: absolute radiometric calibration; quantitative remote sensing; double exponential function; Cordic; FPGA; multi?level self?multiplication operation
0" 引" 言
近幾十年來,我國已經(jīng)發(fā)射了超過60顆的民用對地觀測衛(wèi)星,形成了多個對地觀測衛(wèi)星體系,為農(nóng)業(yè)、氣象、測繪、環(huán)保等眾多領(lǐng)域提供了大量的觀測數(shù)據(jù)[1]。光學(xué)遙感衛(wèi)星載荷輻射定標對于遙感數(shù)據(jù)定量化應(yīng)用至關(guān)重要[2]。在軌衛(wèi)星光學(xué)遙感探測系統(tǒng)的輻射定標主要包含相對輻射定標和絕對輻射定標兩種。相對輻射定標是為了糾正傳感器不同探元之間的響應(yīng)差異,絕對輻射定標是為了將無量綱的圖像DN(Digital Number)值(遙感影像像元亮度值,記錄地物的灰度值)轉(zhuǎn)換成光學(xué)傳感器的入射輻射量或者溫度等信息,并建立遙感相機輸出信號值與輸入輻射量或溫度之間的函數(shù)關(guān)系。絕對輻射定標一般包括發(fā)射前定標和發(fā)射后的在軌定標。雖然發(fā)射前的實驗室定標能夠使用已知的輻射源,具有檢查和解決發(fā)射前遙感載荷異常的優(yōu)點,但在發(fā)射后的實際情況下,光學(xué)遙感載荷會受到振動和元器件老化等諸多因素的影響,無法保證傳感器探測的長期準確性[3?4]。因此,常態(tài)化的在軌絕對輻射定標對于保證遙感數(shù)據(jù)質(zhì)量具有重要作用。
目前已知的在軌輻射定標技術(shù)有星上定標、場地定標、交叉定標。星上定標利用定標燈光源、自然輻射源、黑體定標源以及太陽漫反射板等星載定標設(shè)備定標,具有高精度、高頻次的優(yōu)點。場地定標通過衛(wèi)星過境時測量的地表和大氣的參數(shù)與DN值擬合獲得絕對定標所需的系數(shù),主要包括輻照度基法、反射率基法和輻亮度基法。交叉定標利用已經(jīng)定標且精度較高的衛(wèi)星作為參考星對其他未定標的衛(wèi)星進行定標[5?6]。無論是星上定標、場地定標還是交叉定標,目前大多數(shù)采用兩點線性校正法、分段線性校正法進行定標參數(shù)計算。兩點線性校正法操作和計算簡單,但是誤差較大。同時,兩點法假設(shè)的是探元的響應(yīng)曲線在響應(yīng)范圍內(nèi)是線性的,然而一般情況下并非如此。因此,一般考慮采用的是分段的兩點定標法,即分段線性法,其將探元的響應(yīng)曲線合理地分成多個子段,每一段都近似地看成是線性的響應(yīng)[7?10]。分段線性校正法能較好地擬合實際像元響應(yīng)曲線,但是隨著分段段數(shù)增加,定標參數(shù)的計算量和存儲量也隨之線性增加。為此,本文提出了一種雙指數(shù)全范圍定標方法,在使用較少的參數(shù)情況下可獲得較高的計算精度,并進行了FPGA設(shè)計和加速計算,實現(xiàn)了遙感數(shù)據(jù)絕對輻射定標的實時處理。
1" 基于雙指數(shù)擬合的絕對輻射定標方法
考慮到地表溫度主要處于243.15(-30 ℃)~323.15 (50 ℃)K的范圍,因此從243.15~323.15 K,每隔10 K給標準輻射源設(shè)置一個溫度點,利用長波紅外相機(12位采樣精度)測得每個溫度點情況下探元DN值的平均值,如表1所示。
分別采用兩點線性擬合法[T1(DN)=a?DN+b],多項式擬合法[T2(DN)=a0+a1?DN+a2?DN2],以及雙指數(shù)擬合法[T3(DN)=c1eb1?DN+c2eb2?DN]對表1測量數(shù)據(jù)進行曲線擬合,擬合曲線對比見圖1,相對擬合誤差分別為0.791%、1.96%、0.52%。因此雙指數(shù)擬合法具有最好的擬合結(jié)果,其中,[c1]=283,[b1]=[5.26×10-5],[c2]=-92.68,[b2=-1.798×10-3]。
2" 基于FPGA的絕對輻射定標方法設(shè)計
2.1" 總體方案設(shè)計
利用雙指數(shù)定標方法進行絕對輻射定標,其組成為[T=c1eb1?DN+c2eb2?DN]。其中,[b1]、[b2]、[c1]、[c2]均為常量系數(shù)。絕對輻射定標FPGA實現(xiàn)的總體設(shè)計圖如圖2所示。
1) 首先輸入DN值,DN值的范圍在[0,212-1],因此輸入數(shù)據(jù)的位寬為12 bit。
2) 在使用雙指數(shù)函數(shù)進行絕對輻射計算時,指數(shù)項的輸入分別為[b1?DN]、[b2?DN]。設(shè)定[b1]、[b2]為常數(shù),再與DN值分別進行相乘。在FPGA設(shè)計中采用一個有符號數(shù)的乘法器進行乘法計算。
3) 利用技術(shù)成熟的CORDIC IP核進行指數(shù)計算,分別得到[eb1?DN]、[eb2?DN]。
4) 采用乘法器對指數(shù)計算結(jié)果分別與系數(shù)[a1]、[a2]進行相乘,通過設(shè)置不同的小數(shù)位的位寬,可以獲得不同的計算精度。
5) 用加法器相加得到最后的結(jié)果。
2.2" 基于CORDIC的指數(shù)計算
2.2.1" CORDIC指數(shù)計算原理
CORDIC又名坐標旋轉(zhuǎn)數(shù)字計算方法,其主要原理是通過不斷地旋轉(zhuǎn)角度迭代來逼近計算的角度,計算中只涉及到加減法、查找表和移位操作[11?13]。本文采用CORDIC算法中的雙曲線系統(tǒng)進行指數(shù)計算。
[ex=cosh(x)+sinh(x)] (1)
圖3為雙曲系統(tǒng)的矢量旋轉(zhuǎn)圖,向量[OP]與[x]半軸的夾角為[α],[OQ]與[x]半軸的夾角為[β]。將向量[OP]繞原點[O]逆時針旋轉(zhuǎn)[θ]角得到向量[OQ]。因此,[P]點和[Q]點的坐標可以分別表示為:
[P:x1=cosh(α)y1=sinh(α)Q:x2=cosh(β)=cosh(α+θ)y2=sinh(β)=sinh(α+θ)] (2)
式中[θ]為目標旋轉(zhuǎn)角。
再根據(jù)雙曲旋轉(zhuǎn)公式,將式(2)展開:
[x2=cosh(α+θ)=cosh(α)?cosh(θ)+sinh(α)?sinh(θ)y2=sinh(α+θ)=sinh(α)?cosh(θ)+cosh(α)?sinh(θ)] (3)
再將[P]點代入式(3)中,得到式(4):
[x2=x1?cosh(θ)+y1?sinh(θ)=cosh(θ)?(x1+y1?tanh(θ))y2=x1?sinh(θ)+y1?cosh(θ)=cosh(θ)?(y1+x1?tanh(θ))] (4)
CORDIC算法的核心就是使用迭代的方法,每次旋轉(zhuǎn)一小角度來逼近最終的目標角度,于是可以將[θ]拆分為[θi]的組合。假設(shè)每次旋轉(zhuǎn)的方向用[di]來表示,[di=1]表示逆時針旋轉(zhuǎn),[di=-1]表示順時針旋轉(zhuǎn)。因此,[θ=i=1ndiθi]。FPGA在設(shè)計上容易通過移位操作來實現(xiàn)乘2和除2計算,[tanh(θi)=2-i],即有[θi=atanh(2-i)]。采用旋轉(zhuǎn)模式進行迭代計算[14],其過程如下:
[xi+1=cosh(θi)?(xi+di?yi?2-i)yi+1=cosh(θi)?(yi+di?xi?2-i)zi+1=zi-di?θi] (5)
式中[zi+1]表示第[i]次旋轉(zhuǎn)之后剩余的角度。通過[N]次迭代之后,就可得到最終的[(xθ,yθ)]。
2.2.2" 基于FPGA的CORDIC計算
為了使硬件資源和計算速度達到最佳平衡,以及更加方便快捷的設(shè)計,采用CORDIC IP核進行指數(shù)計算。首先將CORDIC IP核函數(shù)設(shè)置為sinh和cosh,利用面積換取速度的思想,選擇并行處理的架構(gòu),并將流水線設(shè)置為最優(yōu),以盡可能多地使用流水線級數(shù)從而加快計算速度[15]。輸入數(shù)據(jù)和輸出數(shù)據(jù)位寬相同,格式均設(shè)置為有符號小數(shù),最高位為符號位。對于輸入數(shù)據(jù),整數(shù)位有兩位,其余為小數(shù)位,而對于輸出數(shù)據(jù),其整數(shù)位僅一位。角度系數(shù)設(shè)置為以弧度為單位,計算的取整模式設(shè)置為四舍五入。
然而使用CORDIC IP計算雙指數(shù)函數(shù)的難點在于CORDIC IP核要求輸入數(shù)據(jù)的數(shù)值范圍在[-14π,14π],但存在[DN∈0,4 095]與[b2]相乘后超出該范圍的情況。為此,針對性地提出了一種避免輸入數(shù)值超出允許范圍的設(shè)計方法。
當(dāng)[b2?DN]超出輸入范圍時,將其平均等分成[n]個滿足輸入范圍的數(shù)值[w?DN],即[b2?DN=n?w?DN]??紤]到FPGA實現(xiàn)除法計算復(fù)雜度高,于是當(dāng)[DN∈(400,800]]時,[n]取值為2;當(dāng)[DN∈(800,1 500]]時,[n]取值為4;當(dāng)[DN∈(1 500,3 000]]時,[n]取值為8;而當(dāng)[DN∈(3 000,4 095]]時,[n]取值為16。然后直接采用移位操作便能實現(xiàn)等分除法處理,有效降低了計算硬件資源消耗。又因為[eb2?DN=en?w?DN=i=1new?DN],所以將計算得到的指數(shù)結(jié)果[ew?DN]進行[n]次自相乘就能得到[eb2?DN]。在FPGA設(shè)計時,先將[b2]進行移位操作再與DN值進行相乘,然后根據(jù)等分參數(shù)[n]取值4、8、16,分別設(shè)置2、3、4級流水線計算[n]次自相乘,有效增加了計算處理速度。改進后的設(shè)計方案如圖4所示。
CORDIC IP核輸出[cosh(x)]和[sinh(x)]的計算數(shù)值,最后將[sinh(x)]和[cosh(x)]用一個有符號數(shù)的加法器進行加法計算便可得到[ex]。
3" 實驗結(jié)果與分析
3.1" 軟硬件計算誤差分析
使用Vivado 2018.3按照圖4提出的改進方法進行FPGA程序設(shè)計,綜合得到的RTL結(jié)構(gòu)如圖5所示。
導(dǎo)出FPGA仿真文件計算出的結(jié)果,與Matlab仿真結(jié)果進行比較,得到不同DN值下的相對計算誤差。圖6分別給出了輸入數(shù)據(jù)小數(shù)位位寬從17~20 bit的相對誤差結(jié)果比較。
從圖6中可以看出,F(xiàn)PGA仿真的結(jié)果與Matlab仿真的結(jié)果之間的相對誤差與DN值呈高度線性關(guān)系。當(dāng)DN值較小時,指數(shù)輸入的值也很小,此時指數(shù)計算的誤差較小。
而當(dāng)DN值越來越大時,指數(shù)的輸入值也隨之增大,指數(shù)計算誤差也隨之增大。
3.2" FPGA硬件資源與時序分析
將設(shè)計的FPGA程序綜合成bit文件運行在Xilinx公司的XCZU9EG FPGA芯片上,系統(tǒng)運行時鐘為200 MHz。在FPGA工程中加入ILA核,通過ILA核實時抓取在板計算結(jié)果,并與Matlab仿真結(jié)果進行比較。表2分別給出了輸入數(shù)據(jù)小數(shù)位位寬從17~20 bit的硬件資源消耗和平均相對誤差結(jié)果比較。
從表2中可以看出整體方案所使用的各資源用量相對較小。同時可以看出隨著小數(shù)位位寬的增大,LUT、FF、BRAM資源消耗在小幅增加,而LUTRAM消耗保持不變。當(dāng)小數(shù)位位寬增加時,平均相對誤差也越來越小,當(dāng)輸入數(shù)據(jù)的小數(shù)位位寬達到20 bit時平均相對誤差最小。小數(shù)位位寬越大,計算精度越高,隨之必然會帶來硬件資源消耗的增加。
表3展示了小數(shù)位位寬從17~20 bit之間不同的時序情況。其中:WNS表示最差負時序裕量;TNS表示總的負時序裕量;WHS表示最差保持時序裕量;THS表示總的保持時序裕量。WNS、TNS、WHS、THS均為正值,表示時序正常,沒有時序違例。
4" 結(jié)" 論
本文通過軟件模擬仿真實驗驗證了雙指數(shù)絕對輻射定標高精度擬合優(yōu)勢,并進行了FPGA設(shè)計和實現(xiàn)。實驗結(jié)果表明,增加小數(shù)位位寬可以保證計算精度,但同時小幅增加了對硬件資源的消耗,在20 bit的小數(shù)位位寬時達到精度和資源消耗的權(quán)衡。近幾年,農(nóng)業(yè)、氣象、環(huán)保等用戶對紅外光譜圖像的定量化應(yīng)用逐步增加,因此對于定標精度的需求也越來越高。本文提出的方法保證了輻射定標精度的同時,消耗硬件資源總體較小,從而提高了系統(tǒng)的效率和性能?;陔p指數(shù)的絕對輻射定標方法在對地觀測遙感衛(wèi)星的星上在軌處理中具有潛在的應(yīng)用前景。
參考文獻
[1] 馬靈玲,王寧,高彩霞,等.光學(xué)遙感衛(wèi)星在軌絕對輻射定標:進展與趨勢[J].遙感學(xué)報,2023,27(5):1061?1087.
[2] 高海亮,顧行發(fā),余濤,等.星載光學(xué)遙感器可見近紅外通道輻射定標研究進展[J].遙感信息,2010(4):117?128.
[3] 張玉環(huán).HJ1?CCD交叉輻射定標[D].青島:山東科技大學(xué),2012.
[4] 滿益云,陳世平.光學(xué)遙感衛(wèi)星在軌星上絕對輻射定標的研究進展[J].中國空間科學(xué)技術(shù),2022,42(6):12?22.
[5] 劉李,顧行發(fā),余濤,等.HJ?1B衛(wèi)星熱紅外通道在軌場地定標與驗證[J].紅外與激光工程,2012,41(5):1119?1125.
[6] 孫珂,傅俏燕,亓學(xué)勇.HJ?1B衛(wèi)星IRS傳感器熱紅外通道交叉標定[J].紅外與激光工程,2010,39(5):785?790.
[7] 呂原,叢明煜,趙旖旎,等.紅外相機實時絕對輻射定標技術(shù)研究[J].紅外與激光工程,2022,51(7):106?119.
[8] 王海燕,于晉,李照洲.星載紅外相機相對定標算法研究[J].航天返回與遙感,2009,30(2):44?49.
[9] 趙艷華,李云飛,王浩.長波紅外相機真空輻射定標試驗不同狀態(tài)影響研究[C]//第八屆高分辨率對地觀測學(xué)術(shù)年會論文集.北京:北京空間機電研究所,2022:843?854.
[10] 楊詞銀,張建萍.一種中波紅外相機的定標[C]//中國光學(xué)學(xué)會.中國光學(xué)學(xué)會2010年光學(xué)大會論文集.天津:中國科學(xué)院長春光學(xué)精密機械與物理研究所,2010:3943?3947.
[11] 牟勝梅,李兆剛.一種面向FPGA的指/對數(shù)函數(shù)求值算法[J].計算機工程與應(yīng)用,2011,47(33):59?61.
[12] REKHA R, MENON K P. FPGA implementation of exponential function using cordic IP core for extended input range [C]// 3rd IEEE International Conference on Recent Trends in Electronics, Information amp; Communication Technology (RTEICT). New York: IEEE, 2018: 597?600.
[13] ZHANG W Y, ZHANG C, NIU L T, et al. An efficient FPGA design for fixed?point exponential calculation [C]// 2022 IEEE International Conference on Integrated Circuits, Technologies and Applications (ICTA). New York: IEEE, 2022: 44?45.
[14] 姚亞峰,楊金岷,周群群,等.高精度低消耗CORDIC算法設(shè)計[J].湖南大學(xué)學(xué)報(自然科學(xué)版),2023,50(12):69?75.
[15] 張華軍,趙金,叢吉吉.CORDIC在基于FPGA的神經(jīng)網(wǎng)絡(luò)設(shè)計中的應(yīng)用[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2009,37(6):36?39.
[16] 姚源,劉齊悅.大口徑中波紅外輻射特性測量系統(tǒng)標定[J].電子設(shè)計工程,2022,30(2):115?119.