文獻標識碼: B
文章編號: 0258-7998(2011)08-090-04
多頻連續波雷達是一種新體制雷達,能夠同時發射多個頻率的連續波正弦信號對多個目標的速度、加速度、距離、方位角、俯仰角等多組參數目標進行探測。具有設備簡單、體積小、重量輕、功耗低等優點[1]。
對于連續波體制雷達,目標參數多、信號處理的實時性強是其最顯著的特點。海量的回波數據使得存儲操作變得非常困難,并且也不易進行數據分析。數據的實時采集壓縮技術可以解決這一問題。由于雷達信號較為敏感,在大多數情況下雷達信號都需要先記錄,再事后取證、分析,所以只能采用實時無損壓縮。因此,要求多頻連續波雷達數據采集系統信號處理實時性好,處理數據量大,在追求目標采集測量精度的同時降低信號處理算法的復雜度,利于工程實現。
當前有很多壓縮與解壓縮方法都是基于軟件實現的,都是對數據進行后期處理。這種方法執行速度慢,耗費大量的CPU資源。采用硬件實現數據的實時無損壓縮能夠將高速信號變成緩變信號進行傳輸,降低通信的信道容量,提高數據的可靠性。在雷達信號數據采集系統中,完成數據的海量存儲并提高總線的數據傳輸速度應采用硬件實現數據的實時無損壓縮。
1 數據壓縮算法比較
數據壓縮算法有不同的分類方法,根據壓縮算法是否可逆可以分為可逆壓縮與不可逆壓縮。其中可逆壓縮也叫無失真編碼或無損壓縮。不可逆壓縮叫做失真編碼或有損壓縮。由于人的感覺器官對于圖片、聲音或視頻中的某些信息的丟失難以察覺,一般采用有損壓縮算法可以節約大量的存儲空間。主要有預測編碼、多分辨率編碼、分型圖形編碼等。無損壓縮算法主要有哈夫曼編碼、算術編碼、游程編碼和LZ編碼等[2]。其中哈夫曼編碼與算術編碼均根據源數據發生的概率進行編碼,需要對壓縮數據進行統計,處理過程緩慢,實時性差;游程編碼只有在字符連續出現4次以上才能獲得比較好的壓縮效果,不適用于壓縮雷達回波信號。LZ編碼是基于字典的模式,用單個代碼代替字符串,數據流式輸入,對數據源無分塊要求,實時效果好,解壓完全可逆。LZ編碼包括LZ77、LZ78和LZW(Lempel-Ziv-Welch Encoding)。本文根據雷達回波數據的壓縮要求選用LZW無損壓縮算法。
2 雷達數據采集系統硬件實現
本文介紹的多頻連續波雷達數據采集系統中16路模擬信號經過放大、跟隨、濾波處理后經高速模擬電子開關進入高速ADC,輸出16 bit數字量。數字量的緩存與處理由采集處理模塊中的采集控制邏輯(FPGA)實現。壓縮后的數據在主控模塊的控制下經高速系統總線寫入數據存儲模塊中的存儲器陣列。原理框圖如圖1所示。
3 基于FPGA的LZW算法設計
3.1 LZW數據壓縮算法
LZW數據壓縮算法是一種新穎的壓縮方法,具有實時性,壓縮效率高,可對不同的數據流進行自適應壓縮,對于緩變、重復性高的數據流,隨著數據量的增大, 壓縮效率能顯著提高。LZW算法有三個重要的對象:數據流(CharStream)、編碼流(CodeStream)和編譯表(String Table)。在編碼時,數據流是輸入對象,編碼流是輸出對象。數據流是指被壓縮數據,編碼流是指壓縮后輸出的代碼流,編譯表存儲的是數據的索引號,相同塊的數據只輸出第一塊的索引號,從而實現數據的壓縮。
LZW壓縮算法的基本原理是提取出待壓縮數據中的不同字符,基于這些字符創建一個編譯表,然后用編譯表中的字符索引替代原始數據中的相應字符,從而減少原始數據的大小。其中編譯表不是事先創建好的,而是根據原始文件數據動態創建的。
LZW壓縮算法的基本思想是建立一個串表,將輸入字符串映射成定長的碼字輸出,通常碼長設置為12 bit,也可設置為15 bit或者18 bit。串表具有“前綴性”:假設任何一個字符串P和某一個字符S組成一個字符串PS,若PS在串表中,則S為P的擴展, P為S的前綴。字符串表是動態生成的,編碼前先將其初始化,使其包含所有的單字符串。在壓縮過程中,串表中不斷產生壓縮信息的新字符串,存儲新字符串時也保存新字符串PS的前綴P相對應的碼字。在解壓縮過程中,解碼器可根據編碼字恢復出同樣的字符串表,解出編碼數據流[3-4]。
3.2 FPGA模塊化設計
FPGA具有運行速率快,邏輯資源豐富,片內RAM資源豐富,通用性好等特點。用FPGA實現LZW算法需要解決以下幾個關鍵問題[5-6]:(1)字典的生成。通常采用FPGA片內存儲單元生成RAM; (2)字典的維護與更新:在壓縮過程中,對于一個新的字符串要在對字典進行查找后,根據字典中是否已經存在來決定是否更新字典,這一過程必須利用FPGA片內邏輯單元完成,因而過于復雜的字典需要耗費大量邏輯單元,不宜采用FPGA模塊化設計;(3)壓縮編碼流的處理:由于壓縮算法改變了原始數據的編碼格式,需要在壓縮過程中添加一些標識符,使得在解壓縮過程中能夠完全還原原始數據。并且在壓縮編碼輸出數據時,需要根據存儲器件或傳輸總線的數據位寬度進行重新編碼。
在雷達信號的采集系統中,信號采集與處理的控制時序是保證數據正確傳輸的關鍵。大多數雷達數據的信號處理都采用流水線的數據處理方式,如圖2所示。
雷達數據通過采集系統的高速A/D采集進入到存儲模塊時需要向控制器件發出中斷信號,再將數據寫入到存儲器中等待信號處理模塊對雷達數據進行分析、壓縮處理[7]。這種發出中斷信號的流水線采集方式由于受到采集數據周期長的限制,不利于數據的實時壓縮,必然導致數據總線實時傳輸速率的降低,不能滿足待采集信號量日益增大的要求。
為節約FPGA的I/O引腳,縮小系統體積,本文所設計的采集系統首先將高速ADC轉換后的16 bit數字量分高8 bit和低8 bit寫入FPGA內的數據緩存模塊,時序控制模塊完成將緩存數據依次送入LZW算法模塊及各模塊之間的時序控制操作,壓縮后的數據再經過數據寬度轉化模塊寫入到系統總線。
由于本系統需要大量的片內的Block RAM構成數據緩存模塊和字典存儲模塊,因此采用Xilinx公司的Virtex-E系列的XCV400E,該器件具有豐富的RAM資源,共有40個Block RAM,每個Block RAM存儲容量為4 096 bit。Block RAM可以用作FPGA片上和片外緩沖的FIFO,高速并行訪問的緩沖存儲器和總線寬度轉換器等。設計選用的是雙口RAM,每個端口都有獨立的控制信號,并且每個端口的數據總線寬度可以獨立配置。在本文設計的采集系統中數據緩存模塊及數據寬度轉換模塊選用雙口RAM,對于字典存儲模塊選用單口RAM構成。FPGA片內集成功能模塊如圖3所示。
由圖3可知,FPGA主控邏輯內部主要有以下四個模塊。
(1)輸入緩存模塊:該模塊由FPGA片內集成的2個高速FIFO構成,數據采用循環寫入方式,最大限度地實現數據的實時處理。
(2)時序控制模塊:完成對數據緩存模塊的讀寫操作和為其他模塊提供時序控制信號。
(3)壓縮算法實現模塊:實現字典的初始化,字符串查找、判斷、更新,輸入數據流的編碼,輸出代碼生成等功能;
(4)字典存儲模塊:用于存放字典數據信息。
在字典存儲模塊中選用20片Block RAM并聯構成20 bit數據寬度、4 K深度的字典存儲區。每個存儲區存放20 bit寬度字符,包含兩部分:頭部為12 bit的前綴字符P,尾部為8 bit的當前字符S。輸出為12 bit編碼。
(5)數據寬度轉換模塊:將壓縮后的12 bit編碼數據轉換為與系統背板總線對應的16 bit數據寬度。
設計中采用把4個雙口RAM并行連接構成16 bit數據寬度、1 K深度的高速FIFO。壓縮后的12 bit輸出碼流經過數據寬度轉換模塊組合成16 bit數據寫入系統總線。
3.3 LZW算法工作流程
本文所設計的采集系統借鑒了流水線采集方式狀態機實現簡單的優點,算法采用VHDL語言實現有限狀態機,壓縮算法流程如圖4所示。
狀態機首先完成初始化過程,物理地址000H~0FFH分別存放對應的0~255。初始化完成后,狀態機進入壓縮編碼循環,讀入當前字符,若該字符與字典中的某個字符匹配,再讀入下一字符;若不匹配,把該字符加入到當前字符串中,輸出前綴的字典指針到輸出碼流。反復執行該過程,直到編碼結束。
以字符串流97,24,1,97,24,232,1,255,97,24,232,46……為例,表1給出LZW壓縮算法的處理過程。輸出碼流為061,018,061,100,0E8,001,0FF,0E8……,其中字典指針及輸出碼流均以16進制表示。
3.4 測試結果分析
本文設計的多頻連續波雷達數據采集系統中的控制邏輯采用Xilinx公司的Virtex-E系列FPGA器件XCV400E,系統時鐘頻率100 MHz,分別選取三種不同類型的雷達數據幀進行壓縮算法測試,如表2所示。其中數據幀1為1 MB的雷達視頻回波文本文件數據,雜波信號較多;數據幀2為5 MB的雷達視頻回波文本文件數據,雜波信號較少;數據幀3為10 MB的二進制雷達數據。
由測試結果可以看出,LZW算法對于雜波信號較少的緩變雷達回波信號的壓縮效果最好。對于雜波較多的數據實現無損壓縮可進一步對LZW算法進行優化。例如固化初始化過程,可以節約壓縮時間和簡化控制時序;或是對于出現頻率高的字符,記憶其字典指針及出現位置,不必每次都從字典的起始處開始查,簡化算法的復雜度。
本文介紹了基于FPGA的LZW算法在雷達回波信號壓縮中的應用,利用FPGA內部豐富的Block RAM資源,在片內集成高速數據緩存及字典存儲模塊實現對海量雷達數據的實時采集、壓縮處理。算法通過采用VHDL語言有限狀態機實現,可移植性強,并可在線升級。該算法已成功應用于某飛行測試實驗中。
參考文獻
[1] 戴奉周,馮維婷,沈福民.數字多頻連續波雷達信號處理中的關鍵算法[J]. 雷達科學與技術, 2005,6(3):177-180.
[2] SALOMON D.數據壓縮原理與應用[M].吳樂南,等,譯.北京:電子工業出版社, 2003.
[3] 藍波,林小竹,籍俊偉.一種改進的LZW算法在圖像編碼中的應用[J].計算機工程與科學,2006,28(6):55-57.
[4] 郭曉巖,郝永勝. LZW無損壓縮算法在計 算機取證中的應用研究[J].測控技術,2006,25(11):64-67.
[5] LON M B, LEE J F, JAN G E. A lossless data compression anddecompression algorithm and its hardware architecture[J].IEEE Trans,VLSI. 2006,14(9):925-935.
[6] 陳晉敏,黃春明,周軍. 激光雷達數據無損壓縮的FPGA實現[J].計算機測量與控制,2007,15(1):100-102.
[7] 尹志勇,焦新泉,任勇峰.雷達視頻回波信號實時采集、壓縮轉發裝置[J].計算機測量與控制,2010,18(2):479-481.