基于DSP的高分辨SAR多普勒調(diào)頻率的估算
2 DSP編程實現(xiàn)
在實測數(shù)據(jù)的Matlab處理中,MD算法流程實現(xiàn)如圖3所示。為了使多普勒調(diào)頻率估計精度滿足實際的需要,通常需要用估計出的多普勒調(diào)頻率作為調(diào)頻率參考值從對距離脈壓數(shù)據(jù)做方位脈壓,然后重復(fù)子孔徑相關(guān)等后面的步驟,得出更精確的調(diào)頻率值。一般重復(fù)3次即可,次數(shù)越多越精確,但是考慮的成像效果以及實時性的要求,3次重復(fù)就可以得出滿意的結(jié)果。這里n為所選取的最大的能量和數(shù)量,這里選64即可以滿足要求。
文中選用ADI公司的TSs-20lS高性能數(shù)字信號處理器在運算能力、與外部通信能力及在大內(nèi)存設(shè)計等方面都優(yōu)于其它類型的處理芯片。其主要特點有:(1)內(nèi)部時鐘頻率最高為600 MHz,指令周期1.67 ns(在此系統(tǒng)中內(nèi)部核時鐘采用500 MHz,指令周期為2 ns),24 MB的片內(nèi)DRAM存儲器,分為6個4 MB的存儲器塊,每個塊包含128 000個32位字,每個塊內(nèi)存連接著交叉線通過它自身的緩沖和一個128 000 kB的4-Way緩沖器;(2)芯片內(nèi)包含兩個運算模塊(X-ComputeBlocks,Y-Compute Blocks),每個模塊包括一個整數(shù)ALU、一個乘法器、一個移位器和一個寄存器組(32-word)和一個通信邏輯單元。其中,ALU用于尋址和指針操作;(3)4條128 bit的總線提供高的帶寬連接內(nèi)部存儲塊。擴展端口包含主機端口、SDRAM控制器、靜態(tài)管線接口、4個DMA通道。4個LVDS連接端口(每一個都連接2個DMA通道),支持8片DSP共享總線的片上仲裁,無需其它邏輯。IEEE 1149.1兼容的JTAG測試端口用于片上仿真。外部端口的DMA傳輸速率可達1 GB/s,每個鏈路口的DMA傳輸速率可達1 GB/s,共計5 GB/s的外部I/O能力。而且,ADSP-TFS201S的靜態(tài)超標(biāo)量結(jié)構(gòu)使其每周期能夠執(zhí)行多達4條指令、24個16位定點運算和6個浮點運算;4條相互獨立的內(nèi)部數(shù)據(jù)總線(128位),每條連接到6個4 MB的內(nèi)部存儲器塊。提供了4 bit的數(shù)據(jù)、指令I(lǐng)/O訪問和33.6 GB/s的內(nèi)部存儲器帶寬。因此運行在500 MHz時,ADSP-TS201S的可以提供48億次40位的MAC運算或者12億次的80位MAC運算。雷達成像中用到了大量的FFT運算,TS201在計算。FFT時速度很快。例如,運行在500 MHz時,做1 024點的FFT只需18.8μs。ADSP-TS201S有豐富的內(nèi)部存儲資源,而且也特別適合于并行計算,組成高速并行處理器。這對于高分辨SAR實時成像系統(tǒng)而言非常有利。
在此實時成像中的多普勒調(diào)頻率估計中,數(shù)據(jù)塊為512×4 096(方位向和距離向)個復(fù)數(shù)。分別按照并且需要計算16個調(diào)頻率值,即按距離單元分為16個子數(shù)據(jù)塊,每個塊為512×256個復(fù)數(shù)。為保證計算精度,一個復(fù)數(shù)占2×32 bit的存儲單元,即實部虛部各占一個4 bit單元。
由于數(shù)據(jù)從SDRAM讀到內(nèi)部存儲器中需要很多機器周期,在此時計算塊就會處于空閑狀態(tài),不利于提高運行速度和執(zhí)行效率,所以在實際計算時,采用如圖4所示的流程來提高效率。圖4中,相同的箭頭表示同時交換數(shù)據(jù)。當(dāng)計算塊在計算內(nèi)部存儲區(qū)1的數(shù)據(jù)時,內(nèi)部存儲區(qū)2通過TS-201S的DMA模塊直接和SDRAM交換數(shù)據(jù)。當(dāng)計算完內(nèi)部存儲區(qū)1的數(shù)據(jù)時,計算塊就直接計算內(nèi)部存儲區(qū)2的數(shù)據(jù),同時內(nèi)部存儲區(qū)1通過 TS-201S的DMA模塊直接和SDRAM交換數(shù)據(jù),此時計算塊一直處于滿負荷狀態(tài),不用為等待數(shù)據(jù)而變得空閑,這種運算方式即所謂的“乒乓”方式。在使用DSP實現(xiàn)算法流程時,按方位向求能量和、方位脈壓及子孔徑相關(guān)的運算量最大,重點在這幾方面進行優(yōu)化。
在按方位向取能量和的計算中,512個復(fù)數(shù)先取模再平方再求和,大概需要2 500多個機器周期,而從SDRAM中讀取這512個數(shù)據(jù)需要1 200多個周期,因為512個復(fù)數(shù)相當(dāng)于1 024個實數(shù),并且DMA大約為一個周期傳送一個數(shù)據(jù)。按照“乒乓”方式計算,相當(dāng)于沒有讀取數(shù)據(jù)的時間,所以速度的提升是十分明顯的。為了能夠更加充分的利用計算塊,在計算塊和內(nèi)部存儲區(qū)之間也采用了類似的“乒乓”方式。在運算量極大的按方位向求能量和中,一個計算數(shù)據(jù)塊512×2中有512個復(fù)數(shù)。其中,一個復(fù)數(shù)的模的平方需要計算兩次乘法(每次乘法需要兩個機器周期)和一次加法(一個機器周期),總和還需要512次加法,所以總共要計算大約3 500多個機器周期。所有的16個多普勒調(diào)頻率估計,僅在計算能量和就需要約3 500×4 096多個機器周期,所以用盡可能少的機器周期來完成這個計算顯得尤為重要。充分利用TS-201S處理器中計算塊內(nèi)部有兩個并行的獨立計算模塊X-Compute Blocks和Y-Compute Blocks,而且每個計算模塊都有一個乘法器和加法器,則同時讀取兩個復(fù)數(shù)分別到兩個計算模塊中,然后在寄存器中選一個作為和的存放地,初始為0,以及兩個作為平方后的存放寄存器。先計算實部的平方(2個周期),再做虛部的平方以及將實部的平方與和寄存器相加存到和寄存器中(2個周期),讀取下兩個復(fù)數(shù)(1個周期),實部平方的計算及上一組數(shù)據(jù)的虛部平方與和寄存器相加并存放(2個周期),在做虛部平方及實部平方與和寄存器相加并存放(2個周期),依此類推,直到所有的復(fù)數(shù)計算完畢。從中可以看出,大約需要5個周期就可以計算兩個復(fù)數(shù),全部計算完成大概需要2 500多個周期,與3 500多個周期相比還是節(jié)省了很多。
評論