基于FPGA雷達(dá)成像方位脈沖壓縮系統(tǒng)的設(shè)計
合成孔徑雷達(dá)成像算法中較為成熟和應(yīng)用廣泛的算法主要有距離-多普勒(R-D)算法和線性調(diào)頻變標(biāo)(CS)算法。R-D算法復(fù)雜度相對較低,運(yùn)算比較簡單,雖然其成像質(zhì)量并不高,但是相比對穩(wěn)定性、存儲空間、功耗與實(shí)時性要求都很高的實(shí)時SAR成像系統(tǒng),其應(yīng)用十分廣泛。在整個有距離-多普勒(R-D)算法中方位脈沖壓縮系統(tǒng)是設(shè)計的關(guān)鍵。隨著FPGA芯片突飛猛進(jìn)的發(fā)展,實(shí)時雷達(dá)成像方位脈沖壓縮系統(tǒng)在FPGA上實(shí)現(xiàn)變成了可能。
1 脈沖壓縮及方位脈沖壓縮系統(tǒng)的結(jié)構(gòu)
1.1 脈沖壓縮的基本原理
實(shí)現(xiàn)脈沖壓縮必須滿足兩個條件:一是發(fā)射脈沖必須具有非線性的相位譜并且其脈沖寬度與有效頻譜寬度的乘積》1;二是接收機(jī)中必須具有一個壓縮網(wǎng)絡(luò),其相頻特性應(yīng)與發(fā)射信號實(shí)現(xiàn)“共軛匹配”。線性調(diào)頻信號又稱為Chirp信號,是廣泛應(yīng)用在信號處理領(lǐng)域的一種脈沖壓縮信號。線性調(diào)頻信號是具有矩形包絡(luò)的寬脈沖信號,其特點(diǎn)是具有二次型的非線性相位譜和線性頻率譜,即頻率具有線性特性。一維線性調(diào)頻信號的表達(dá)式為
其中,t為時間變量,T為線性調(diào)頻脈沖寬度,f0為載頻頻率,k為調(diào)頻斜率。信號的相位函數(shù)和頻譜函數(shù)為
由式(2)可知,信號的調(diào)頻斜率與時間成線性關(guān)系。
由于線性調(diào)頻信號的以上特點(diǎn),線性調(diào)頻信號適合實(shí)現(xiàn)脈沖壓縮,是一種典型的脈沖壓縮方法:首先線性調(diào)頻脈沖的相位譜是非線性的,具有較大的時間帶寬積;其次匹配濾波器是在輸入為確知信號加白噪聲的情況下,得到最大輸出信噪比的傳遞網(wǎng)絡(luò),滿足壓縮網(wǎng)絡(luò)的條件。因此,采用匹配濾波器對信號進(jìn)行濾波,得到輸出信號最大的信噪比。
對線性調(diào)頻信號進(jìn)行脈沖壓縮的基本原理可以總結(jié)為:對寬脈沖線性調(diào)頻信號進(jìn)行匹配濾波處理,使其能量集中,成為窄脈沖信號,從而獲得線性調(diào)頻信號大時間帶寬積所對應(yīng)的高分辨率。線形調(diào)頻信號脈沖壓縮具體實(shí)現(xiàn)是先把一維線性調(diào)頻信號從時域轉(zhuǎn)換到頻域,再求其對應(yīng)匹配濾波器的傳遞函數(shù)。匹配濾波器脈沖響應(yīng)是信號的時間鏡像復(fù)共軛,其時域表達(dá)式為
h(t)=C·s*(t-t0) (3)
根據(jù)駐定相位原理,可以得到匹配濾波器的傳遞函數(shù)為
線性調(diào)頻信號經(jīng)過匹配濾波器完成脈沖壓縮過程,輸出表達(dá)式為
1.2 方位脈沖壓縮系統(tǒng)的結(jié)構(gòu)
實(shí)現(xiàn)R-D算法中方位脈沖壓縮的思路是先將信號經(jīng)過FFT變換到頻域,然后與匹配函數(shù)經(jīng)過FFT后的結(jié)果進(jìn)行匹配相乘,再經(jīng)過IFFT得到壓縮好的脈沖。在FPGA上實(shí)現(xiàn)時,應(yīng)該包括輸入\輸出數(shù)據(jù)控制模塊、FFT\IFFT模塊、匹配函數(shù)運(yùn)算模塊、匹配相乘模塊。數(shù)據(jù)流及各個模塊的相互關(guān)系,如圖1所示。
距離脈沖壓縮的數(shù)據(jù)先進(jìn)入輸入數(shù)據(jù)控制模塊,送入FFT運(yùn)算模塊,同時匹配函數(shù)運(yùn)算模塊進(jìn)行工作,輸出計算好的匹配函數(shù),與FFT的輸出結(jié)果同時送到匹配相乘模塊中,相乘后的結(jié)果送入IFFT模塊中,最后將IFFT的結(jié)果經(jīng)輸出數(shù)據(jù)控制模塊進(jìn)行輸出。
2 方位脈沖壓縮系統(tǒng)的FPGA設(shè)計
2.1 輸入/輸出控制模塊
輸入數(shù)據(jù)控制模塊的主要作用是將數(shù)據(jù)送入FFT模塊,同時給出FFT模塊所需的控制信號,例如數(shù)據(jù)有效信號。數(shù)據(jù)流入數(shù)據(jù)控制模塊時要做好緩存工作,保證其與FFT控制信號同步進(jìn)入FFT模塊。為了節(jié)省FPGA的資源,可以把相同功能的模塊,如FFT/IFFT,進(jìn)行復(fù)用。若FFT與IFFT模塊復(fù)用,則應(yīng)在輸入模塊中加入狀態(tài)機(jī)來進(jìn)行控制。狀態(tài)1為無任何原始數(shù)據(jù)輸入并且無IFFT運(yùn)算的數(shù)據(jù)輸入的狀態(tài);狀態(tài)2為僅有原始數(shù)據(jù)輸入而無IFFF運(yùn)算的數(shù)據(jù)輸入的狀態(tài);狀態(tài)3為無原始數(shù)據(jù)輸入但是有進(jìn)行IFFT運(yùn)算的數(shù)據(jù)輸入的狀態(tài)。狀態(tài)機(jī)僅需要原始數(shù)據(jù)有效的使能信號與匹配相乘后數(shù)據(jù)有效的使能信號來進(jìn)行控制即可。狀態(tài)1代表了整個系統(tǒng)處于等待數(shù)據(jù)輸入初始化的工作狀態(tài)。狀態(tài)2代表了原始數(shù)據(jù)進(jìn)行FFT運(yùn)算的工作狀態(tài)。狀態(tài)3代表了匹配相乘后數(shù)據(jù)進(jìn)行IFFT的工作狀態(tài)。
在FFT模塊與IFFT模塊復(fù)用的結(jié)構(gòu)中,輸出控制模塊的作用是當(dāng)匹配相乘的數(shù)據(jù)到來時,將其送入輸入數(shù)據(jù)控制模塊,再由輸入數(shù)據(jù)控制模塊送入FFT模塊去完成IFFT運(yùn)算;當(dāng)計算出IFFT的結(jié)果時,輸出數(shù)據(jù)控制模塊直接將結(jié)果輸出。實(shí)現(xiàn)上述功能,只需使用狀態(tài)機(jī)即可,其工作原理與輸入數(shù)據(jù)控制模塊中的狀態(tài)機(jī)類似
2.2 FFT/IFFT模塊
在FFF/IFFT模塊的設(shè)計上,為了提高設(shè)計的性能,增加設(shè)計的靈活性,采用Altera公司于2005年4月推出的版本號為2.1.3的FFT的IPcore進(jìn)行FFT和IFFT運(yùn)算。該IP core是一個高性能、高度參數(shù)化的,執(zhí)行正向復(fù)數(shù)FFT與反向復(fù)數(shù)IFFT的FFT處理器。
2.3 匹配函數(shù)運(yùn)算模塊
方位壓縮的匹配函數(shù)為匹配函數(shù)再經(jīng)過FFT變換到頻域。在FPGA實(shí)現(xiàn)時要把模擬參量量化成離散的數(shù)字參量來進(jìn)行處理。其中γm(RB),RB以雷達(dá)到場景中心線的距離Rs為參考進(jìn)行數(shù)字量化,即每一個距離單元的RB=Rs+n deltaR,則RB相對每一個距離單元為常數(shù)。慢時間tm以脈沖重復(fù)時間1/PRF進(jìn)行數(shù)字量化,相對于每一個方位單元為常數(shù)。在設(shè)計時,由于γm(RB)對于同一個距離單元來說為常數(shù),所以可以把不同距離單元的γm(RB)按一定順序存入一個ROM中,在處理不同的距離單元時讀取相對應(yīng)的γm(RB)。αr(tm)實(shí)現(xiàn)時用漢明窗。對于exp()采用CORDIC算法生成sin,cos來進(jìn)行實(shí)現(xiàn)。若一個距離單元nan有個采樣點(diǎn),則向量由于PRF為常數(shù),所以僅需設(shè)計一個產(chǎn)生向量[-nan/2:nan/2-1]2的模塊,即每個時鐘周期送出向量[-nan/2:nan/2-1]2中的一個數(shù)。匹配函數(shù)運(yùn)算模塊的框圖,如圖2所示。
賬 CORDIC模塊的實(shí)現(xiàn)是匹配函數(shù)運(yùn)算模塊設(shè)計的重點(diǎn)。CORDIC(Coordinate Rotation Digital Com-puter算法即坐標(biāo)旋轉(zhuǎn)數(shù)字計算方法。主要用于三角函數(shù)、雙曲線、指數(shù)、對數(shù)的計算。CORDIC模塊采用18級流水線結(jié)構(gòu)來實(shí)現(xiàn),如圖3所示。18級寄存器組中下一級寄存器中的輸入數(shù)據(jù)是上一級寄存器的輸出數(shù)據(jù)進(jìn)行移位后相加或減組合得到的。進(jìn)行加運(yùn)算還是減運(yùn)算完全由控制模塊控制??刂颇K的輸入就是整個CORDIC模塊的輸入,即要進(jìn)行sin,cos計算的角度э1??刂颇K也采用流水線結(jié)構(gòu)與18級寄存器組一一對應(yīng),達(dá)到對各級流水線的控制。18級流水線設(shè)計需要18個時鐘周期來獲取第一個計算結(jié)果,而只需要一個時鐘周期來獲取隨后的計算結(jié)果。流水線結(jié)構(gòu)的特點(diǎn)非常適合應(yīng)用于方位脈沖壓縮匹配函數(shù)運(yùn)算的設(shè)計:首先,實(shí)時成像需要很高的數(shù)據(jù)吞吐量,這與流水線結(jié)構(gòu)的優(yōu)勢相符合;其次距離單元的數(shù)據(jù)是隨著時鐘依次進(jìn)入運(yùn)算模塊的,即一個時鐘周期讀人一個距離單元的數(shù)據(jù),這與流水線結(jié)構(gòu)的特點(diǎn)十分的吻合。采用流水線結(jié)構(gòu)實(shí)現(xiàn)CORDIC算法,可以使匹配函數(shù)的數(shù)據(jù)在每個周期逐個輸出,僅做好同步工作,使匹配函數(shù)的數(shù)據(jù)與距離脈沖壓縮結(jié)果對應(yīng)匹配相乘即可。
2.4 匹配相乘模塊
匹配相乘模塊主要完成的工作,是把距離脈沖壓縮的數(shù)據(jù)經(jīng)FFT后的結(jié)果與匹配函數(shù)對應(yīng)相乘,再把相乘的結(jié)果送出。匹配相乘模塊的核心是復(fù)數(shù)乘法器。復(fù)數(shù)乘法器是由4個普通乘法器和兩個加法器組成。假設(shè)完成(a+bi)×(c+di)的操作,先分別計算a×c,a×d,b×c,b×d這4個實(shí)數(shù)與實(shí)數(shù)的乘法運(yùn)算,再把減法運(yùn)算a×c-b×d結(jié)果作為復(fù)數(shù)乘法器輸出的實(shí)部,加法運(yùn)算a×d+b×c的結(jié)果作為復(fù)數(shù)乘法器輸出的虛部。
對數(shù)據(jù)的同步也是設(shè)計的重點(diǎn)。因?yàn)榫嚯x脈沖壓縮經(jīng)FFT后的數(shù)據(jù)與匹配函數(shù)的數(shù)據(jù)并不是同時進(jìn)入匹配相乘模塊。距離脈沖壓縮經(jīng)FFT后的數(shù)據(jù)較先進(jìn)入,主要是因?yàn)槠ヅ浜瘮?shù)運(yùn)算的CORDIC采用流水線結(jié)構(gòu),需要18個時鐘周期來獲取第一個計算結(jié)果而產(chǎn)生匹配函數(shù)數(shù)據(jù)的延遲。所以應(yīng)該對匹配相乘模塊對距離脈沖壓縮經(jīng)FFT后的數(shù)據(jù)進(jìn)行緩沖。緩沖采用FIFO模塊來實(shí)現(xiàn)。FIFO可以采用自帶的IP core。
3 波形仿真與性能分析
驗(yàn)證方法采用比對的方法,即單個目標(biāo)點(diǎn)的仿真數(shù)據(jù)分別進(jìn)行理論方位脈沖壓縮仿真和基于FPGA的方位脈沖壓縮仿真,并將得到的仿真結(jié)果進(jìn)行比對。仿真數(shù)據(jù)中一個距離單元的點(diǎn)數(shù)為16 384點(diǎn)。驗(yàn)證過程是首先在。Matlab軟件環(huán)境下對單個點(diǎn)目標(biāo)的一個距離單元進(jìn)行方位脈沖壓縮的仿真,即理論仿真,然后再在Modelsim環(huán)境下對該距離單元進(jìn)行方位脈沖壓縮的FPGA仿真,并將得到的結(jié)果與Matlab下得到的理論結(jié)果進(jìn)行比較。其比較的波形,如圖4所示。
選用Ahera公司芯片EP2S130F780C5進(jìn)行測試。穩(wěn)定工作時時鐘頻率可以達(dá)到150 MHz。
4 結(jié)束語
方位脈沖壓縮系統(tǒng)是這個R-D算法在FPGA實(shí)現(xiàn)的關(guān)鍵。文中給出的方案通過實(shí)驗(yàn)驗(yàn)證能夠達(dá)到設(shè)計的要求。實(shí)驗(yàn)表明,隨著可編程器件規(guī)模、速度的不斷提高,采用FPGA實(shí)現(xiàn)高速數(shù)字信號處理的算法具有可行性和優(yōu)越性。