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