中國電子科技集團(tuán)公司第二十研究所 赫煒亮
在雷達(dá)信號處理中,為了同時獲得大的脈沖寬度和帶寬,提高距離分辨能力和速度分辨能力,在雷達(dá)發(fā)射端使用線性調(diào)頻信號,在接收端用匹配濾波器對回波進(jìn)行脈沖壓縮處理。本文提出了用FPGA進(jìn)行脈沖壓縮截位的改進(jìn)方法,該方法能盡可能減少信號處理精度損失,并在實(shí)際工程中得到了應(yīng)用。
FPGA按照頻域濾波的方式實(shí)現(xiàn)脈沖壓縮,首先將理論計算的匹配濾波系數(shù)FFT值保存在ROM中,然后對輸入線性調(diào)頻信號做傅里葉變換,并將變換后的結(jié)果與系數(shù)相乘,最后做逆傅里葉變換,得到脈沖壓縮的結(jié)果。因IP核輸出位寬大于輸入的位寬,而FPGA數(shù)據(jù)流位寬固定為32位(虛部和實(shí)部各16位,最高位為符號位),因此,在每一步驟結(jié)束都需要進(jìn)行截位操作,然后將截位后的32位結(jié)果輸入下一級IP核,如圖1所示。
圖1 FPGA實(shí)現(xiàn)脈沖壓縮的過程
截位操作會帶來無法避免的精度損失,而FPGA實(shí)現(xiàn)脈沖壓縮時進(jìn)行了三次截位,導(dǎo)致輸出結(jié)果出現(xiàn)了無法忽略的誤差,在某型雷達(dá)的信號處理中表現(xiàn)為信噪比不穩(wěn)定,易出現(xiàn)漏檢、錯檢的情況。
FPGA數(shù)據(jù)流的位寬是固定的,因此脈沖壓縮時必須進(jìn)行截位。為了減少精度損失,應(yīng)盡可能減少截位的次數(shù),由此提出一種新的截位方式,即將輸入信號的FFT值直接與匹配系數(shù)相乘,然后進(jìn)行IFFT操作,對最終輸出結(jié)果進(jìn)行一次截位,實(shí)現(xiàn)脈沖壓縮。如圖2所示。
圖2 改進(jìn)后的FPGA實(shí)現(xiàn)脈沖壓縮的過程
改進(jìn)后的計算方式只進(jìn)行了一次截位操作,可以將精度損失降到最低。但這種方式會增加FPGA程序的資源占用量。在雷達(dá)實(shí)際應(yīng)用中,以獲得盡可能準(zhǔn)確的探測結(jié)果為第一要求,因信號處理損失過多有效信息是不能接受的,因此,在FPGA內(nèi)部資源足夠豐富的情況下,應(yīng)該使用改進(jìn)截位后的脈沖壓縮算法。
圖4 FFT后結(jié)果對比
用matlab生成脈沖寬度T為6us、采樣率fs為30MHz、帶寬B為20MHz的線性調(diào)頻信號,如圖3所示,該信號為某型雷達(dá)實(shí)際使用波形,具有分析價值。用該信號作為matlab程序的輸入,同時將該信號的實(shí)部和虛部分別按215-1進(jìn)行歸一化,作為FPGA程序的輸入,將匹配系數(shù)按215-1歸一化后保存至FPGA的ROM中,進(jìn)行仿真,并保存每一步計算的結(jié)果,進(jìn)行對比。
圖3 仿真用理論線性調(diào)頻信號
FPGA的FFT核配置配置后顯示輸入虛部[31:16]和實(shí)部[15:0]的格式是fix16_15,輸出虛部[58:32]和實(shí)部[26:0]的格式是fix27_15,可以發(fā)現(xiàn)輸出有效數(shù)據(jù)長度為實(shí)部和虛部各27位,且輸入輸出的小數(shù)位均為15,因此不會因格式產(chǎn)生幅度差。FPGA輸入時進(jìn)行了歸一化,相當(dāng)于擴(kuò)大了215-1倍,將FPGA輸出FFT結(jié)果除以該值,然后與matlab計算的FFT結(jié)果進(jìn)行對比,如圖4所示。
在FPGA中,將FFT的輸出直接送至復(fù)數(shù)乘法器,與匹配系數(shù)相乘。配置后的乘法器IP核顯示輸入1的虛部[58:32]和實(shí)部[26:0]的格式為fix27_0,輸入2的虛部[31:16]和實(shí)部[15:0]的格式為fix16_0,輸出虛部[72:40]和實(shí)部[32:0]的格式是fix33_0??梢园l(fā)現(xiàn)輸入和輸出數(shù)據(jù)的小數(shù)位都是0,不會因格式產(chǎn)生幅度差。同時,因FFT輸出與真值相比,擴(kuò)大了215-1倍。匹配系數(shù)也是擴(kuò)大了215-1后作為輸入,因此,將FPGA乘系數(shù)的結(jié)果除以(215-1)2,然后與matlab計算結(jié)果進(jìn)行對比,如圖5所示。
圖5 乘濾波系數(shù)后的結(jié)果對比
在FPGA中,將乘法器輸出值送至FFT核進(jìn)行IFFT操作,配置后的IP核顯示輸入虛部[72:40]和實(shí)部[32:0]的格式是fix33_32,輸出虛部[91:48]和實(shí)部[43:0]的格式是fix44_32,可以發(fā)現(xiàn),輸入和輸出數(shù)據(jù)的小數(shù)位都是32,所以不會產(chǎn)生因格式產(chǎn)生的幅度差。因乘法器輸出與真值相比,擴(kuò)大了(215-1)2倍,將FPGA輸出FFT結(jié)果除以該值,然后與matlab計算的FFT結(jié)果進(jìn)行對比,如圖6所示。
圖6 IFFT后的結(jié)果對比
可以發(fā)現(xiàn),用matlab處理的結(jié)果和FPGA處理結(jié)果相比,二者基本吻合,表明通過最后截位的方式,計算得到的脈沖壓縮結(jié)果可靠。
FPGA的處理位寬為32位,因此,需要將真值進(jìn)行歸一化。脈沖壓縮比為時寬帶寬積,因匹配系數(shù)乘了海明窗,實(shí)際壓縮比約為時寬帶寬積的一半,將真值除以該值,然后乘以215-1,進(jìn)行歸一化。因此,F(xiàn)PGA的IFFT輸出結(jié)果與最終結(jié)果關(guān)系為:
結(jié)論:改進(jìn)后的脈沖壓縮方式實(shí)現(xiàn)了盡可能減少因截位產(chǎn)生精度損失的目標(biāo),并將此方式實(shí)際應(yīng)用在了某型跟蹤雷達(dá)的信號處理中,取得了預(yù)期的成果。