?
近年來,隨著現場可編程門陣列(FPGA)在雷達信號處理中的廣泛應用以及FPGA芯片技術的發展,為大家提供了一種較好解決數字脈壓的途徑。其中,利用IP核設計FPGA數字系統成為一種趨勢,這些知識產權核可以大大簡化FPGA的設計,加快設計速度,縮短研發周期,而且經過不斷的優化,IP核具有了更好的精度和更快的運算速度,實際的工程應用效果很好。
本文以此為出發點,對線性調頻信號的脈沖壓縮進行了研究,仿真,并提出了一種采用IP核設計脈沖壓縮的方法。
1 線性調頻信號的脈沖壓縮
1.1 脈沖壓縮的實現原理
脈沖壓縮可以采用“共軛濾波器對”的匹配濾波法和相關處理法。匹配濾波法對應于頻域相乘,相關處理法對應于時域卷積。依據傅里葉變換理論:時域卷積等效于頻域乘積。因此這兩種方法是等效的,只是一種方法在頻域實現,而另一種方法在時域實現。考慮到運算量,工程上一般采用頻域法,可以利用快速FFT算法提高計算速度,然后將雷達回波與匹配濾波系數的頻域響應相乘,再經過IFFT處理得到脈沖壓縮結果。匹配濾波系數只與發射信號有關,預先可知,一般預先算好。
1.2 線性調頻信號的脈沖壓縮
一般在時寬帶寬積BT>30時,可以近似認為線性調頻信號具有矩形振幅頻譜,因此其匹配濾波器也應該具有矩形帶通振幅特性。線性調頻信號的匹配濾波器的近似頻率特性可描述為:
?
可以看出,線性調頻的脈沖壓縮結果具有sine函數形狀。主瓣寬度為1/B,第一旁瓣電平約為-13.2 dB。如果是多目標環境,較大的旁瓣會埋沒附近的小目標信號,為了抑制旁瓣,可以采用加權技術。其實質就是對信號進行失配處理以抑制旁瓣,其副作用是使輸出信號的主瓣降低并展寬。
1.3 理論仿真
?
設匹配濾波器的輸入信號是線性調頻I/Q基帶信號,帶寬為40 MHz,采樣頻率為100 MHz,脈沖寬度為6μs,信號幅度為1,通過Matlab對其進行脈沖壓縮仿真。圖1中是輸入的I/Q基帶信號波形以及脈壓后的結果。從圖中可以看到脈壓后產生的窄脈沖,波形具有sine函數性質,除主瓣外,時間軸上還有延伸的一串副瓣;還可看出,經過海明加權后,第一副瓣比主瓣下降約40 dB,但主瓣寬度也有相應的展寬。如圖2所示。
2 脈沖壓縮系統設計
該系統的主要功能是對線性調頻I/Q基帶信號進行高速采集,然后在FPGA中實現線性調頻信號的脈沖壓縮,之后通過D/A變換器輸出脈壓結果,監測脈壓后的波形。
2.1 系統硬件平臺
該系統硬件平臺主要包括:差分驅動電路,A/D采集電路、FPGA電路、晶振等電路、電路結構框圖如圖3所示。
?
FPGA采用的是Xilinx公司的芯片XQ2V1000,其配置芯片為Xilinx公司的PROM芯片XQ18V04,以主動串行方式對FPGA進行上電配置。差分驅動電路選用ADI公司的AD8138,A/D、D/A電路分別為ADI公司的14位高速模/數轉換芯片ADS5500和14位高速數/模轉換芯片DAC5675A。硬件電路的設計注重細節:I/Q兩通道傳輸線設計時保證線長相等,使得I/Q時延帶來的相位誤差一致;采用DCI(DigitaUy Controlled Impe-dance)端接技術,在FPGA的每個bank上外接兩個參考電阻來對該bank的每個I/O管腳實現端接,減少外接電阻的數量,實現阻抗匹配,提高系統的穩定性;做好電源濾波,對元器件進行合理布局,布線,對模擬信號和數字信號進行有效隔離,減小信號間串擾。
2.2 軟件設計流程
?
整個脈沖壓縮處理在時間上是順序的,是典型的數據流驅動的系統,即先進行FFT,復乘然后是IFFT及FIFO輸出,脈沖壓縮的總時序關系見圖4。該系統實現1 024點的脈沖壓縮,算法上采用基于IP核的設計方法。主要用到了FFT核,乘法器核以及單口Block Memory核,這些IP核的應用及脈沖壓縮的具體實現如下所述。
2.2.1 FFT運算
對于長度為N的時域序列X(n)的離散傅里葉變換為X(k):
?
FFT算法主要是利用旋轉因子exp(-j2πnk/N)的周期性和對稱性的特點進行改進的算法,可以有效地減小運算量。Xilinx公司的FFT核利用Cooley-Tukey算法實現FFT/IFFT運算,最高支持216點長度的運算,可以實現流水線型、基4、基2三種結構,蝶形運算后可選擇對數據順序輸出還是倒序輸出,對IP核進行不同的配置,可以實現資源和運算速度的最優化。在此選用基4蝶形運算,對于1 024點數據,需要5級蝶形運算。
?
Xilinx公司的FFT核的參數通過GUI界面(見圖5)進行設置,可設置的參數包括FFT點數,運算實施方法,輸入數據位數等,設置完畢后點擊Generate可即時生成代碼。
硬件描述語言采用VHDL,使用時程序中要對器件初始化并進行定義,FFT核的器件定義語句見圖6。
?
2.2.2 匹配濾波系數產生
根據匹配濾波理論,對于一個確定的輸入信號,匹配濾波系數就是這個輸入信號的頻譜的復共軛,系數可以通過Matlab預先計算出來并以二進制的文件格式進行存儲。此處計算時可以進行加權處理,在系數中乘以窗函數即可。
通過Xilinx公司的單口Block Memory核,可以把Matlab產生的存儲文件加載進去。當程序運行時,根據使能控制信號,把匹配濾波系數數據(1 024點)依次讀取出來,送入乘法器進行后續運算。BlockMemory核的參數設置通過GUI界面進行,可即使生成代碼。
2.2.3 乘法運算
乘法運算部分完成FFT后數據與匹配濾波系數數據的復數乘法運算。根據復數的乘法規則。
(A+aj)(B+bj)=(AB-ab)+(Ab+aB)j
兩個復數的乘法運算實際上包括了4個實數的乘法運算,因此,此部分的設計用到了4個乘法器核。Xilinx公司的乘法器核支持補碼運算,可輸入A,B兩路數據,每路的輸入數據長度可達64 b。乘法器核的參數設置也是通過GUI界面進行,可即使生成代碼。
2.2.4 IFFT運算
IFFT運算的處理單元和FFT的處理單元采用相同的結構來實現。具體的實現方法是,在做IFFT運算前,先交換輸入數據的實部和虛部,然后送入FFT處理單元按照FFT結構進行運算,得到運算結果后,再對其實部和虛部進行交換,然后除以運算點數1 024,就可以得到IFFT后脈沖壓縮的運算結果。
2.3 工程軟件仿真
?
利用ModelSim仿真軟件首先對程序代碼進行時序功能仿真,完成邏輯的綜合與實現之后再進行布局布線后仿真,此時的仿真已基本接近真實情況。綜合后的仿真情況如圖7所示,仿真結果表明軟件運行正常,可實現線性調頻信號的脈沖壓縮。
2.4 測試數據分析
完成程序編制及仿真之后,把軟件加載至FPGA中進行全面測試。通過Chipscope軟件可以采集到A/D之后的I/Q線性調頻基帶信號數據以及經過FPGA處理后的脈壓數據,把A/D后采集到的數據放在Matlab中進行理想的脈沖壓縮,與實際FPGA的脈壓結果進行對比。從圖8中可以看出,兩種處理的結果是一致的,主副瓣比大約都在35 dB左右,主瓣寬度也基本相同。如圖8所示。
?
脈沖壓縮系統軟、硬件調試完畢之后,通過板上的D/A輸出可以直接監測脈沖壓縮后的I/Q信號波形,如圖9所示。
?
3 結語
本文主要介紹了一種利用FPGA IP核設計線性調頻信號脈沖壓縮的方法,通過各種仿真與實際測試表明脈沖壓縮結果正確。這種基于IP核的模塊化設計方法非常靈活,參數的設置和修改方便,大大縮減了設計的開發周期。需要注意的是,雖然IP核的內部結構和實現功能已經固定,但設計時也要結合算法原理和IP核的自身特點綜合考慮,對參數進行合理設置,以便獲得硬件資源和運算速度的最優化。
評論
查看更多