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