中國電子科技集團公司第二十研究所 赫煒亮
在雷達信號處理中,為了同時獲得大的脈沖寬度和帶寬,提高距離分辨能力和速度分辨能力,在雷達發射端使用線性調頻信號,在接收端用匹配濾波器對回波進行脈沖壓縮處理。本文提出了用FPGA進行脈沖壓縮截位的改進方法,該方法能盡可能減少信號處理精度損失,并在實際工程中得到了應用。
FPGA按照頻域濾波的方式實現脈沖壓縮,首先將理論計算的匹配濾波系數FFT值保存在ROM中,然后對輸入線性調頻信號做傅里葉變換,并將變換后的結果與系數相乘,最后做逆傅里葉變換,得到脈沖壓縮的結果。因IP核輸出位寬大于輸入的位寬,而FPGA數據流位寬固定為32位(虛部和實部各16位,最高位為符號位),因此,在每一步驟結束都需要進行截位操作,然后將截位后的32位結果輸入下一級IP核,如圖1所示。

圖1 FPGA實現脈沖壓縮的過程
截位操作會帶來無法避免的精度損失,而FPGA實現脈沖壓縮時進行了三次截位,導致輸出結果出現了無法忽略的誤差,在某型雷達的信號處理中表現為信噪比不穩定,易出現漏檢、錯檢的情況。
FPGA數據流的位寬是固定的,因此脈沖壓縮時必須進行截位。為了減少精度損失,應盡可能減少截位的次數,由此提出一種新的截位方式,即將輸入信號的FFT值直接與匹配系數相乘,然后進行IFFT操作,對最終輸出結果進行一次截位,實現脈沖壓縮。如圖2所示。

圖2 改進后的FPGA實現脈沖壓縮的過程
改進后的計算方式只進行了一次截位操作,可以將精度損失降到最低。但這種方式會增加FPGA程序的資源占用量。在雷達實際應用中,以獲得盡可能準確的探測結果為第一要求,因信號處理損失過多有效信息是不能接受的,因此,在FPGA內部資源足夠豐富的情況下,應該使用改進截位后的脈沖壓縮算法。

圖4 FFT后結果對比
用matlab生成脈沖寬度T為6us、采樣率fs為30MHz、帶寬B為20MHz的線性調頻信號,如圖3所示,該信號為某型雷達實際使用波形,具有分析價值。用該信號作為matlab程序的輸入,同時將該信號的實部和虛部分別按215-1進行歸一化,作為FPGA程序的輸入,將匹配系數按215-1歸一化后保存至FPGA的ROM中,進行仿真,并保存每一步計算的結果,進行對比。

圖3 仿真用理論線性調頻信號
FPGA的FFT核配置配置后顯示輸入虛部[31:16]和實部[15:0]的格式是fix16_15,輸出虛部[58:32]和實部[26:0]的格式是fix27_15,可以發現輸出有效數據長度為實部和虛部各27位,且輸入輸出的小數位均為15,因此不會因格式產生幅度差。FPGA輸入時進行了歸一化,相當于擴大了215-1倍,將FPGA輸出FFT結果除以該值,然后與matlab計算的FFT結果進行對比,如圖4所示。
在FPGA中,將FFT的輸出直接送至復數乘法器,與匹配系數相乘。配置后的乘法器IP核顯示輸入1的虛部[58:32]和實部[26:0]的格式為fix27_0,輸入2的虛部[31:16]和實部[15:0]的格式為fix16_0,輸出虛部[72:40]和實部[32:0]的格式是fix33_0。可以發現輸入和輸出數據的小數位都是0,不會因格式產生幅度差。同時,因FFT輸出與真值相比,擴大了215-1倍。匹配系數也是擴大了215-1后作為輸入,因此,將FPGA乘系數的結果除以(215-1)2,然后與matlab計算結果進行對比,如圖5所示。

圖5 乘濾波系數后的結果對比
在FPGA中,將乘法器輸出值送至FFT核進行IFFT操作,配置后的IP核顯示輸入虛部[72:40]和實部[32:0]的格式是fix33_32,輸出虛部[91:48]和實部[43:0]的格式是fix44_32,可以發現,輸入和輸出數據的小數位都是32,所以不會產生因格式產生的幅度差。因乘法器輸出與真值相比,擴大了(215-1)2倍,將FPGA輸出FFT結果除以該值,然后與matlab計算的FFT結果進行對比,如圖6所示。

圖6 IFFT后的結果對比
可以發現,用matlab處理的結果和FPGA處理結果相比,二者基本吻合,表明通過最后截位的方式,計算得到的脈沖壓縮結果可靠。
FPGA的處理位寬為32位,因此,需要將真值進行歸一化。脈沖壓縮比為時寬帶寬積,因匹配系數乘了海明窗,實際壓縮比約為時寬帶寬積的一半,將真值除以該值,然后乘以215-1,進行歸一化。因此,FPGA的IFFT輸出結果與最終結果關系為:

結論:改進后的脈沖壓縮方式實現了盡可能減少因截位產生精度損失的目標,并將此方式實際應用在了某型跟蹤雷達的信號處理中,取得了預期的成果。