專利名稱:基于fpga的脈沖壓縮優化方法
技術領域:
本發明屬于數字信號處理技術領域,特別涉及一種脈沖壓縮方法,可應用于雷達實時信號處理系統設計。
背景技術:
自20世紀50年代末以來,隨著飛行技術的快速發展,飛機、導彈、人造衛星等飛行設備均采用雷達作為控制和探測的方法之一,同時在雷達的作用距離、距離分辨率、測量精度等性能方面提出了越來越嚴格的要求。根據雷達信號處理理論,在普通脈沖雷達中,作用距離和距離分辨率之間存在著不可調和的矛盾。而脈沖雷達壓縮體制很好的解決了這一矛盾,因此現在脈沖壓縮技術在雷達、聲納等系統中得到了廣泛的應用。以前,國內的數字脈壓系統大部分都是采用DSP作為核心處理芯片,并且為了達到提高處理速度的要求,大多數情況下同時使用多塊DSP進行運算,不過這種做法的缺點就是系統結構復雜,功耗大,效率低,很難滿足現代雷達的要求。因此,隨著現代電子技術的快速發展,用硬件數字電路來實現脈沖壓縮成為一種必然趨勢,它能夠解決使用DSP系統時所呈現出來的問題,而微電子技術的蓬勃發展也為用硬件實現各種信號處理算法提供了有力支持。現場可編程門陣列FPGA是一種可由用戶編程來實現所需邏輯功能的數字集成電路器件,它實現算法的性能指標在一定程度上取決于用戶的算法設計和實現方案。早先, FPGA的出現只是為了取代傳統的數字邏輯電路,但隨著它易于實現并行運算等優良性能越來越明顯,使用FPGA來實現各種信號處理算法已經逐漸成為一種發展趨勢。現在,國內已經出現了以FPGA作為核心處理芯片的脈沖壓縮方法,如《計算機工程》2008年2月第4期中的《基于FPGA的高速數字脈沖壓縮》一文,該文提出的脈沖壓縮方法有兩個要點,第一是通過設計通用的蝶形處理單元來完成FFT和IFFT處理,第二是預先將參考函數存儲在FPGA內部的存儲單元中。這種方法具有實時性強、處理結構簡單、功耗低的技術特點。但是,此方法中依然存在著處理速度慢、占用資源多、不能對連續輸入的脈沖信號進行處理的缺點,這些缺點都極大的限制了現有方法的廣泛運用。
發明內容
本發明的目的在于克服上述已有技術的不足,提供一種基于FPGA的脈沖壓縮優化方法,以減少占用資源,提高對連續輸入的脈沖信號的處理速度。實現上述目的的技術關鍵是構造“位反序”序列,實時生成參考函數,使用此參考函數對脈沖回波數據進行匹配濾波來完成脈沖壓縮過程,其具體步驟包括如下(1)在FPGA中存入正弦表和余弦表,以備后續的查表使用;(2)對脈沖回波數據進行FFT處理,將處理結果緩存在FPGA的FIFO緩存器中,同時生成一列遞增序列a = (0,1,2,3,……,N-1),其中N為脈沖回波數據的點數;(3)對生成的遞增序列a進行位反序操作,即首先將遞增序列a中的所有元素都用
3二進制表示,然后按如下方法生成過渡序列f 讓遞增序列a中所有元素的最高位作為過渡序列f中相應元素的第一位,次高位作為第二位,依此類推,從而得到過渡序列f,再從過渡序列f的所有元素中減去N/2,得到“位反序”序列b = (-N/2,0,-N/4,……,Ν/2-1);(4)將“位反序”序列b與產生脈沖回波數據的參數相乘得到匹配參數序列C,再用查表法求得匹配參數序列c的正弦值和余弦值,構成脈沖壓縮需要的參考函數,其中正弦值為參考函數的虛部,余弦值為參考函數的實部,并將該參考函數緩存在FPGA的FIFO緩存器中;(5)從FIFO緩存器中將參考函數與對脈沖回波數據進行FFT處理的結果同時讀取出來,將兩者的對應元素相乘,再將相乘后的數據進行IFFT處理,該IFFT處理后的結果即為脈沖壓縮的結果。本發明具有以下優點1)本發明中所包含的FFT和IFFT處理均通過調用FPGA中的IP核來實現,并設置為Variable Streaming模式,在此模式下,相鄰脈沖回波數據可以連續的輸入FFT和IFFT 模塊而無需等待時間,極大的提高了整個脈沖壓縮模塊對連續輸入的脈沖信號的處理速度。2)本發明由于將FPGA中的FFT模塊設置為正序輸入、反序輸出的工作方式,將 IFFT模塊設置為反序輸入、正序輸出的工作方式,省去了數據位序調整的過程,一方面節省 IP核占用的FPGA存儲資源,另一方面提高了運算的效率。3)本發明摒棄了現有技術中將參考函數預先存入FPGA中的方式,而采用實時生成的方式獲得,這樣只需要兩個很小的FIFO緩沖器就可實現參考函數與FFT輸出數據之間的同步,極大的節省了脈沖壓縮模塊所占用的存儲資源。仿真結果表明,采用本發明所述的優化設計方法對4096點的脈沖回波數據做脈沖壓縮處理,其中脈沖回波數據和參考函數都量化成16位,則整個脈沖壓縮模塊占用的存儲資源為452. 83Kbit,其中FFT處理占162Kbit,參考函數相乘處理占32Kbit,IFFT處理占258. 83Kbit ;若采用現有技術中的設計方法,則整個距離脈沖壓縮模塊占用存儲資源為956. 38Kbit,其中FFT處理占414. 19Kbit,參考函數相乘處理占128Kbit, IFFT處理占 414. 19Kbit。由此可見,采用本發明所述的優化設計方法可以大幅度節省脈沖壓縮模塊所占用的存儲資源。
圖1是本發明的總流程圖;圖2是本發明中的參考函數生成子流程圖;圖3是本發明仿真使用的脈沖回波數據圖;圖4是本發明對圖3進行脈沖壓縮處理的仿真結果具體實施例方式下面結合附圖對本發明做進一步的具體描述。參照圖1,本發明的具體實現步驟如下步驟1將正弦表和余弦表存入FPGA中。
4
首先創建正弦表和余弦表。在Matlab軟件中產生一列角度序列e = (0,1/1024, 2/1024,……,2 π ),其中角度序列e共包含1024個元素,相鄰元素之間的間隔為1/1024, 求出序列e的正弦值和余弦值,并分別保存成兩個數據文件,則正弦值構成的數據文件即為正弦表,余弦值構成的數據文件即為余弦表。然后調用FPGA中的兩個ROM存儲器,并用生成好的正弦表和余弦表分別對兩個 ROM存儲器進行初始化,這樣在往FPGA中加載程序時正弦表和余弦表就會自動存入FPGA內部。步驟2對脈沖回波數據進行FFT處理,同時生成一列遞增序列。脈沖回波數據分實部、虛部兩路進入脈沖壓縮模塊,這時應確保兩路數據同步且連續,若不能保證兩路數據同步且連續,則將數據先存入FPGA中兩個深度較小的FIFO緩沖器進行緩沖,然后從兩個FIFO緩沖器中同時讀取脈沖回波數據的實部和虛部并送入FFT模塊;FFT模塊對脈沖回波數據進行FFT處理,即快速傅里葉變換,它的作用就是把脈沖回波數據從時域變換的頻域,得到脈沖回波數據的頻譜,FFT模塊通過調用FPGA中的IP核來實現,即將IP核的模式設置為Variable Mreaming模式,工作方式設置為正序輸入、反序輸出,在這種工作方式下,脈沖回波數據送入FFT模塊后,只需要經過幾十個時鐘周期的間隔,FFT模塊就開始輸出處理結果,中間間隔的時鐘周期個數會由于脈沖回波數據數據量的不同而發生變化,范圍在0到100之間;將FFT模塊的處理結果緩存在FPGA的FIFO緩存器中,同時調用FPGA中的16個寄存器組成一個16位寄存器變量X,其中變量χ的每一位都對應一個寄存器,并設置寄存器變量χ的初值為0,然后對變量χ每過一個時鐘周期進行加1操作,其中時鐘為整個脈沖壓縮處理的工作時鐘,這樣就生成一列遞增序列a = (0,1,2,3,……,N-1),其中N為脈沖回波數據的點數。 步驟3生成“位反序”序列。參照圖2,“位反序”序列是通過對步驟2中生成的遞增序列a進行位反序操作來生成,具體實現如下3. 1)調用FPGA中的16個寄存器組成一個16位寄存器變量y,其中寄存器變量y 的每一位都對應一個寄存器,表示為y W]、y[l]、……、y[15],同理,步驟2中寄存器變量 χ每一位對應的寄存器,表示為χW]、χ[1]、……、χ[15];3. 2)用寄存器變量χ對應的16個寄存器給寄存器變量y對應的16個寄存器進行賦值,即y W] =x[15]、y[l] =x[14]、……、y[15] = χ W],這樣就完成了過渡序列f的生成過程,即讓遞增序列a中所有元素的最高位作為過渡序列f中相應元素的第一位,次高位作為第二位,依此類推;3. 3)調用FPGA中的一個減法器,以過渡序列f為被減數,以常數N/2為減數,完成從過渡序列f的所有元素中減去N/2,則減法器的輸出結果即為“位反序”序列b。步驟4生成參考函數4. 1)調用FPGA中的一個乘法器,以“位反序”序列b為被乘數,以產生脈沖回波數據的參數為乘數,完成兩者相乘,則乘法器的輸出結果為匹配參數序列c ;4. 2)調用FPGA中的一個乘法器,以匹配參數序列c和常數10 分別作為被乘數和乘數,完成兩者相乘,并輸出相乘后結果;4. 3)調用FPGA中的11個寄存器組成一個11位寄存器變量z,其中寄存器變量ζ 的每一位都對應一個寄存器,表示為40]、ζ [1]、……、z[10],讓z[10]等于4.2)中相乘后結果的最高位,讓ζ
ζ [9]等于4. 2)中相乘后結果的低十位,則生成了尋址序列d;4. 4)以尋址序列d中的元素為地址,從存儲在FPGA的正弦表和余弦表中找到對應值,即為匹配參數序列c的正弦值和余弦值,它們構成脈沖壓縮需要的參考函數,其中正弦值為參考函數的虛部,余弦值為參考函數的實部,并將該參考函數緩存在FPGA的FIFO緩存器中。步驟5獲取脈沖壓縮的結果首先,從FIFO緩存器中將參考函數與對脈沖回波數據進行FFT處理的結果同時讀取出來,并調用FPGA中的一個乘法器,以參考函數和FFT處理的結果分別作為被乘數和乘數,完成兩者的對應元素相乘操作;然后,將乘法器的輸出結果送入IFFT模塊,IFFT模塊通過調用FPGA中的IP核來實現,即將IP核的模式設置為Variable Streaming模式,工作方式設置為反序輸入、正序輸出,在這種工作方式下,脈沖回波數據送入IFFT模塊后,只需要經過幾十個時鐘周期的間隔,IFFT模塊就開始輸出處理結果,中間間隔的時鐘周期個數會由于脈沖回波數據數據量的不同而發生變化,范圍在0到100之間,IFFT模塊對乘法器的輸出結果進行IFFT處理, 即逆傅里葉變換,該逆傅里葉變換的作用就是把IFFT模塊的輸入數據從頻域變換的時域, 得到IFFT處理的結果,該IFFT處理的結果即為脈沖壓縮的結果。本發明的效果可以通過以下實測進一步說明圖3所示為脈沖回波數據圖,圖3 (a)為脈沖回波數據的實部,圖3 (b)為脈沖回波數據的虛部,說明脈沖回波數據是一個線性調頻信號。對圖3所示脈沖回波數據進行脈沖壓縮處理,結果如圖4,其中圖4 (a)是脈沖壓縮結果的時域波形,該時域波形是一個尖峰,說明本發明所述脈沖壓縮方法可以實現,圖4(b) 是脈沖壓縮結果經過插值后的波形圖,其中第一旁瓣達到了 -13. 2dB,這說明脈沖壓縮的效果良好。可見,本發明中所述脈沖壓縮方法是可以實現并取得良好效果的。
權利要求
1.一種基于FPGA的脈沖壓縮優化方法,包括如下步驟(1)在FPGA中存入正弦表和余弦表,以備后續的查表使用;(2)對脈沖回波數據進行FFT處理,將處理結果緩存在FPGA的FIFO緩存器中,同時生成一列遞增序列a = (0,1,2,3,……,N-1),其中N為脈沖回波數據的點數;(3)對生成的遞增序列a進行位反序操作,即首先將遞增序列a中的所有元素都用二進制表示,然后按如下方法生成過渡序列f 讓遞增序列a中所有元素的最高位作為過渡序列f中相應元素的第一位,次高位作為第二位,依此類推,從而得到過渡序列f,再從過渡序列f的所有元素中減去N/2,得到“位反序”序列b = (-N/2,0,-N/4,……,Ν/2-1);(4)將“位反序”序列b與產生脈沖回波數據的參數相乘得到匹配參數序列c,再用查表法求得匹配參數序列c的正弦值和余弦值,構成脈沖壓縮需要的參考函數,其中正弦值為參考函數的虛部,余弦值為參考函數的實部,并將該參考函數緩存在FPGA的FIFO緩存器中;(5)從FIFO緩存器中將參考函數與對脈沖回波數據進行FFT處理的結果同時讀取出來,將兩者的對應元素相乘,再將相乘后的數據進行IFFT處理,該IFFT處理后的結果即為脈沖壓縮的結果。
2.根據權利要求1所述的脈沖壓縮優化方法,其中步驟( 所述的對脈沖回波數據進行FFT處理,是通過調用FPGA中的IP核,并將FFT模塊的模式設置為Variable Streaming 模式,工作方式設置為正序輸入和反序輸出來實現。
3.根據權利要求1所述的脈沖壓縮優化方法,其中步驟(4)所述的用查表法求得匹配參數序列c的正弦值和余弦值,按如下步驟求解首先,將匹配參數序列c中的所有元素乘以1024,用二進制表示,并提取所有元素的最高位和低十位生成尋址序列d ;然后,以尋址序列d中的元素為地址,從存儲在FPGA的正弦表和余弦表中找到對應值, 即為匹配參數序列c的正弦值和余弦值。
4.根據權利要求1所述的脈沖壓縮優化方法,其中步驟( 所述的將相乘后的數據進行IFFT處理,是通過調用FPGA中的IP核,并將IFFT模塊的模式設置為Variable Streaming模式,工作方式設置為反序輸入和正序輸出來實現。
全文摘要
本發明公開了一種基于FPGA的脈沖壓縮優化方法,主要解決了現有方法資源占用過多,不能對連續輸入的脈沖信號進行處理的問題。其實現過程為首先將正弦表和余弦表存入FPGA中;然后對脈沖回波數據進行FFT處理,同時生成一列遞增序列;其次對遞增序列進行“位反序”操作,生成“位反序”序列;再將“位反序”序列與產生脈沖回波數據的參數相乘得到匹配參數序列,并用查表法求得匹配參數序列的正弦值和余弦值,構成參考函數;最后將參考函數與FFT處理結果相乘,并對相乘結果進行IFFT處理,IFFT處理結果即為脈沖壓縮的結果。本發明大大節省存儲資源,并提高了對連續輸入脈沖信號的處理速度,可用于在航空航天進行距離向脈沖壓縮和方位向脈沖壓縮。
文檔編號G01S7/32GK102353940SQ20111015631
公開日2012年2月15日 申請日期2011年6月10日 優先權日2011年6月10日
發明者李學仕, 梁毅, 王一鳴, 邢孟道, 陳凱, 陳皓 申請人:西安電子科技大學