《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 多頻連續(xù)波雷達數(shù)據(jù)實時壓縮算法設計
多頻連續(xù)波雷達數(shù)據(jù)實時壓縮算法設計
來源:電子技術應用2011年第8期
劉 鑫1, 任勇峰2
1. 太原科技大學 電子信息工程學院,山西 太原030024; 2. 中北大學 電子測試國家重點實驗室,山西 太原030051
摘要: 隨著測試參數(shù)種類增加,測試環(huán)境越來越復雜,海量雷達數(shù)據(jù)與有限存儲容量之間的矛盾日益明顯,實時數(shù)據(jù)采集與壓縮技術可以緩解這一矛盾的加劇。雷達數(shù)據(jù)采集系統(tǒng)采取了基于FPGA的LZW實時無損壓縮算法。該算法能夠?qū)崿F(xiàn)追求采集信號精度的同時減低算法難度,已成功應用于某飛行測試實驗,性能指標滿足應用要求。
中圖分類號: TP274.2
文獻標識碼: B
文章編號: 0258-7998(2011)08-090-04
Real-time compression algorithm design of multi-frequency radar system
Liu Xin1,Ren Yongfeng2
1. College of Electronics and Information Engineering,Taiyuan University of Science and Technology,Taiyuan 030024,China; 2. National Key Laboratory for Electronic Measurement Tecnology, North University of China, Taiyuan 030051,China
Abstract: Recently, the test parameters are increasing fast and the environment of test is more and more complex. With the development of the contradiction between mass data of radar signal and data storage, the real-time data compression algorithm can solve the above problem. Real-time lossless compression algorithm LZW based on FPGA is applied in the radar data acquisition system. This algorithm can ensure the sample precision of radar system and simplify algorithm difficulty and, which has been applied in flight test experiment. The performance indexes meet the requirement.
Key words : data acquisition; LZW; FPGA; high-speed buffer


    多頻連續(xù)波雷達是一種新體制雷達,能夠同時發(fā)射多個頻率的連續(xù)波正弦信號對多個目標的速度、加速度、距離、方位角、俯仰角等多組參數(shù)目標進行探測。具有設備簡單、體積小、重量輕、功耗低等優(yōu)點[1]。
    對于連續(xù)波體制雷達,目標參數(shù)多、信號處理的實時性強是其最顯著的特點。海量的回波數(shù)據(jù)使得存儲操作變得非常困難,并且也不易進行數(shù)據(jù)分析。數(shù)據(jù)的實時采集壓縮技術可以解決這一問題。由于雷達信號較為敏感,在大多數(shù)情況下雷達信號都需要先記錄,再事后取證、分析,所以只能采用實時無損壓縮。因此,要求多頻連續(xù)波雷達數(shù)據(jù)采集系統(tǒng)信號處理實時性好,處理數(shù)據(jù)量大,在追求目標采集測量精度的同時降低信號處理算法的復雜度,利于工程實現(xiàn)。
  當前有很多壓縮與解壓縮方法都是基于軟件實現(xiàn)的,都是對數(shù)據(jù)進行后期處理。這種方法執(zhí)行速度慢,耗費大量的CPU資源。采用硬件實現(xiàn)數(shù)據(jù)的實時無損壓縮能夠?qū)⒏咚傩盘栕兂删徸冃盘栠M行傳輸,降低通信的信道容量,提高數(shù)據(jù)的可靠性。在雷達信號數(shù)據(jù)采集系統(tǒng)中,完成數(shù)據(jù)的海量存儲并提高總線的數(shù)據(jù)傳輸速度應采用硬件實現(xiàn)數(shù)據(jù)的實時無損壓縮。
1 數(shù)據(jù)壓縮算法比較
 數(shù)據(jù)壓縮算法有不同的分類方法,根據(jù)壓縮算法是否可逆可以分為可逆壓縮與不可逆壓縮。其中可逆壓縮也叫無失真編碼或無損壓縮。不可逆壓縮叫做失真編碼或有損壓縮。由于人的感覺器官對于圖片、聲音或視頻中的某些信息的丟失難以察覺,一般采用有損壓縮算法可以節(jié)約大量的存儲空間。主要有預測編碼、多分辨率編碼、分型圖形編碼等。無損壓縮算法主要有哈夫曼編碼、算術編碼、游程編碼和LZ編碼等[2]。其中哈夫曼編碼與算術編碼均根據(jù)源數(shù)據(jù)發(fā)生的概率進行編碼,需要對壓縮數(shù)據(jù)進行統(tǒng)計,處理過程緩慢,實時性差;游程編碼只有在字符連續(xù)出現(xiàn)4次以上才能獲得比較好的壓縮效果,不適用于壓縮雷達回波信號。LZ編碼是基于字典的模式,用單個代碼代替字符串,數(shù)據(jù)流式輸入,對數(shù)據(jù)源無分塊要求,實時效果好,解壓完全可逆。LZ編碼包括LZ77、LZ78和LZW(Lempel-Ziv-Welch Encoding)。本文根據(jù)雷達回波數(shù)據(jù)的壓縮要求選用LZW無損壓縮算法。
2 雷達數(shù)據(jù)采集系統(tǒng)硬件實現(xiàn)
 本文介紹的多頻連續(xù)波雷達數(shù)據(jù)采集系統(tǒng)中16路模擬信號經(jīng)過放大、跟隨、濾波處理后經(jīng)高速模擬電子開關進入高速ADC,輸出16 bit數(shù)字量。數(shù)字量的緩存與處理由采集處理模塊中的采集控制邏輯(FPGA)實現(xiàn)。壓縮后的數(shù)據(jù)在主控模塊的控制下經(jīng)高速系統(tǒng)總線寫入數(shù)據(jù)存儲模塊中的存儲器陣列。原理框圖如圖1所示。

3 基于FPGA的LZW算法設計

 


3.1 LZW數(shù)據(jù)壓縮算法

 LZW數(shù)據(jù)壓縮算法是一種新穎的壓縮方法,具有實時性,壓縮效率高,可對不同的數(shù)據(jù)流進行自適應壓縮,對于緩變、重復性高的數(shù)據(jù)流,隨著數(shù)據(jù)量的增大, 壓縮效率能顯著提高。LZW算法有三個重要的對象:數(shù)據(jù)流(CharStream)、編碼流(CodeStream)和編譯表(String Table)。在編碼時,數(shù)據(jù)流是輸入對象,編碼流是輸出對象。數(shù)據(jù)流是指被壓縮數(shù)據(jù),編碼流是指壓縮后輸出的代碼流,編譯表存儲的是數(shù)據(jù)的索引號,相同塊的數(shù)據(jù)只輸出第一塊的索引號,從而實現(xiàn)數(shù)據(jù)的壓縮。
  LZW壓縮算法的基本原理是提取出待壓縮數(shù)據(jù)中的不同字符,基于這些字符創(chuàng)建一個編譯表,然后用編譯表中的字符索引替代原始數(shù)據(jù)中的相應字符,從而減少原始數(shù)據(jù)的大小。其中編譯表不是事先創(chuàng)建好的,而是根據(jù)原始文件數(shù)據(jù)動態(tài)創(chuàng)建的。
 LZW壓縮算法的基本思想是建立一個串表,將輸入字符串映射成定長的碼字輸出,通常碼長設置為12 bit,也可設置為15 bit或者18 bit。串表具有“前綴性”:假設任何一個字符串P和某一個字符S組成一個字符串PS,若PS在串表中,則S為P的擴展, P為S的前綴。字符串表是動態(tài)生成的,編碼前先將其初始化,使其包含所有的單字符串。在壓縮過程中,串表中不斷產(chǎn)生壓縮信息的新字符串,存儲新字符串時也保存新字符串PS的前綴P相對應的碼字。在解壓縮過程中,解碼器可根據(jù)編碼字恢復出同樣的字符串表,解出編碼數(shù)據(jù)流[3-4]。
3.2 FPGA模塊化設計
 FPGA具有運行速率快,邏輯資源豐富,片內(nèi)RAM資源豐富,通用性好等特點。用FPGA實現(xiàn)LZW算法需要解決以下幾個關鍵問題[5-6]:(1)字典的生成。通常采用FPGA片內(nèi)存儲單元生成RAM; (2)字典的維護與更新:在壓縮過程中,對于一個新的字符串要在對字典進行查找后,根據(jù)字典中是否已經(jīng)存在來決定是否更新字典,這一過程必須利用FPGA片內(nèi)邏輯單元完成,因而過于復雜的字典需要耗費大量邏輯單元,不宜采用FPGA模塊化設計;(3)壓縮編碼流的處理:由于壓縮算法改變了原始數(shù)據(jù)的編碼格式,需要在壓縮過程中添加一些標識符,使得在解壓縮過程中能夠完全還原原始數(shù)據(jù)。并且在壓縮編碼輸出數(shù)據(jù)時,需要根據(jù)存儲器件或傳輸總線的數(shù)據(jù)位寬度進行重新編碼。
 在雷達信號的采集系統(tǒng)中,信號采集與處理的控制時序是保證數(shù)據(jù)正確傳輸?shù)年P鍵。大多數(shù)雷達數(shù)據(jù)的信號處理都采用流水線的數(shù)據(jù)處理方式,如圖2所示。

    雷達數(shù)據(jù)通過采集系統(tǒng)的高速A/D采集進入到存儲模塊時需要向控制器件發(fā)出中斷信號,再將數(shù)據(jù)寫入到存儲器中等待信號處理模塊對雷達數(shù)據(jù)進行分析、壓縮處理[7]。這種發(fā)出中斷信號的流水線采集方式由于受到采集數(shù)據(jù)周期長的限制,不利于數(shù)據(jù)的實時壓縮,必然導致數(shù)據(jù)總線實時傳輸速率的降低,不能滿足待采集信號量日益增大的要求。
 為節(jié)約FPGA的I/O引腳,縮小系統(tǒng)體積,本文所設計的采集系統(tǒng)首先將高速ADC轉(zhuǎn)換后的16 bit數(shù)字量分高8 bit和低8 bit寫入FPGA內(nèi)的數(shù)據(jù)緩存模塊,時序控制模塊完成將緩存數(shù)據(jù)依次送入LZW算法模塊及各模塊之間的時序控制操作,壓縮后的數(shù)據(jù)再經(jīng)過數(shù)據(jù)寬度轉(zhuǎn)化模塊寫入到系統(tǒng)總線。
 由于本系統(tǒng)需要大量的片內(nèi)的Block RAM構成數(shù)據(jù)緩存模塊和字典存儲模塊,因此采用Xilinx公司的Virtex-E系列的XCV400E,該器件具有豐富的RAM資源,共有40個Block RAM,每個Block RAM存儲容量為4 096 bit。Block RAM可以用作FPGA片上和片外緩沖的FIFO,高速并行訪問的緩沖存儲器和總線寬度轉(zhuǎn)換器等。設計選用的是雙口RAM,每個端口都有獨立的控制信號,并且每個端口的數(shù)據(jù)總線寬度可以獨立配置。在本文設計的采集系統(tǒng)中數(shù)據(jù)緩存模塊及數(shù)據(jù)寬度轉(zhuǎn)換模塊選用雙口RAM,對于字典存儲模塊選用單口RAM構成。FPGA片內(nèi)集成功能模塊如圖3所示。

 由圖3可知,F(xiàn)PGA主控邏輯內(nèi)部主要有以下四個模塊。
 (1)輸入緩存模塊:該模塊由FPGA片內(nèi)集成的2個高速FIFO構成,數(shù)據(jù)采用循環(huán)寫入方式,最大限度地實現(xiàn)數(shù)據(jù)的實時處理。
 (2)時序控制模塊:完成對數(shù)據(jù)緩存模塊的讀寫操作和為其他模塊提供時序控制信號。
    (3)壓縮算法實現(xiàn)模塊:實現(xiàn)字典的初始化,字符串查找、判斷、更新,輸入數(shù)據(jù)流的編碼,輸出代碼生成等功能;
 (4)字典存儲模塊:用于存放字典數(shù)據(jù)信息。
    在字典存儲模塊中選用20片Block RAM并聯(lián)構成20 bit數(shù)據(jù)寬度、4 K深度的字典存儲區(qū)。每個存儲區(qū)存放20 bit寬度字符,包含兩部分:頭部為12 bit的前綴字符P,尾部為8 bit的當前字符S。輸出為12 bit編碼。
 (5)數(shù)據(jù)寬度轉(zhuǎn)換模塊:將壓縮后的12 bit編碼數(shù)據(jù)轉(zhuǎn)換為與系統(tǒng)背板總線對應的16 bit數(shù)據(jù)寬度。
 設計中采用把4個雙口RAM并行連接構成16 bit數(shù)據(jù)寬度、1 K深度的高速FIFO。壓縮后的12 bit輸出碼流經(jīng)過數(shù)據(jù)寬度轉(zhuǎn)換模塊組合成16 bit數(shù)據(jù)寫入系統(tǒng)總線。
3.3 LZW算法工作流程
    本文所設計的采集系統(tǒng)借鑒了流水線采集方式狀態(tài)機實現(xiàn)簡單的優(yōu)點,算法采用VHDL語言實現(xiàn)有限狀態(tài)機,壓縮算法流程如圖4所示。

 狀態(tài)機首先完成初始化過程,物理地址000H~0FFH分別存放對應的0~255。初始化完成后,狀態(tài)機進入壓縮編碼循環(huán),讀入當前字符,若該字符與字典中的某個字符匹配,再讀入下一字符;若不匹配,把該字符加入到當前字符串中,輸出前綴的字典指針到輸出碼流。反復執(zhí)行該過程,直到編碼結束。
 以字符串流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 測試結果分析
 本文設計的多頻連續(xù)波雷達數(shù)據(jù)采集系統(tǒng)中的控制邏輯采用Xilinx公司的Virtex-E系列FPGA器件XCV400E,系統(tǒng)時鐘頻率100 MHz,分別選取三種不同類型的雷達數(shù)據(jù)幀進行壓縮算法測試,如表2所示。其中數(shù)據(jù)幀1為1 MB的雷達視頻回波文本文件數(shù)據(jù),雜波信號較多;數(shù)據(jù)幀2為5 MB的雷達視頻回波文本文件數(shù)據(jù),雜波信號較少;數(shù)據(jù)幀3為10 MB的二進制雷達數(shù)據(jù)。

   由測試結果可以看出,LZW算法對于雜波信號較少的緩變雷達回波信號的壓縮效果最好。對于雜波較多的數(shù)據(jù)實現(xiàn)無損壓縮可進一步對LZW算法進行優(yōu)化。例如固化初始化過程,可以節(jié)約壓縮時間和簡化控制時序;或是對于出現(xiàn)頻率高的字符,記憶其字典指針及出現(xiàn)位置,不必每次都從字典的起始處開始查,簡化算法的復雜度。
    本文介紹了基于FPGA的LZW算法在雷達回波信號壓縮中的應用,利用FPGA內(nèi)部豐富的Block RAM資源,在片內(nèi)集成高速數(shù)據(jù)緩存及字典存儲模塊實現(xiàn)對海量雷達數(shù)據(jù)的實時采集、壓縮處理。算法通過采用VHDL語言有限狀態(tài)機實現(xiàn),可移植性強,并可在線升級。該算法已成功應用于某飛行測試實驗中。

參考文獻
[1] 戴奉周,馮維婷,沈福民.數(shù)字多頻連續(xù)波雷達信號處理中的關鍵算法[J]. 雷達科學與技術, 2005,6(3):177-180.
[2] SALOMON D.數(shù)據(jù)壓縮原理與應用[M].吳樂南,等,譯.北京:電子工業(yè)出版社, 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] 陳晉敏,黃春明,周軍. 激光雷達數(shù)據(jù)無損壓縮的FPGA實現(xiàn)[J].計算機測量與控制,2007,15(1):100-102.
[7] 尹志勇,焦新泉,任勇峰.雷達視頻回波信號實時采集、壓縮轉(zhuǎn)發(fā)裝置[J].計算機測量與控制,2010,18(2):479-481.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。