《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 多頻連續(xù)波雷達(dá)數(shù)據(jù)實(shí)時(shí)壓縮算法設(shè)計(jì)
多頻連續(xù)波雷達(dá)數(shù)據(jù)實(shí)時(shí)壓縮算法設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2011年第8期
劉 鑫1, 任勇峰2
1. 太原科技大學(xué) 電子信息工程學(xué)院,山西 太原030024,; 2. 中北大學(xué) 電子測試國家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 隨著測試參數(shù)種類增加,,測試環(huán)境越來越復(fù)雜,海量雷達(dá)數(shù)據(jù)與有限存儲(chǔ)容量之間的矛盾日益明顯,,實(shí)時(shí)數(shù)據(jù)采集與壓縮技術(shù)可以緩解這一矛盾的加劇,。雷達(dá)數(shù)據(jù)采集系統(tǒng)采取了基于FPGA的LZW實(shí)時(shí)無損壓縮算法,。該算法能夠?qū)崿F(xiàn)追求采集信號(hào)精度的同時(shí)減低算法難度,已成功應(yīng)用于某飛行測試實(shí)驗(yàn),,性能指標(biāo)滿足應(yīng)用要求,。
中圖分類號(hào): TP274.2
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 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ù)波雷達(dá)是一種新體制雷達(dá),,能夠同時(shí)發(fā)射多個(gè)頻率的連續(xù)波正弦信號(hào)對多個(gè)目標(biāo)的速度、加速度,、距離,、方位角、俯仰角等多組參數(shù)目標(biāo)進(jìn)行探測,。具有設(shè)備簡單,、體積小、重量輕,、功耗低等優(yōu)點(diǎn)[1],。
    對于連續(xù)波體制雷達(dá),目標(biāo)參數(shù)多,、信號(hào)處理的實(shí)時(shí)性強(qiáng)是其最顯著的特點(diǎn),。海量的回波數(shù)據(jù)使得存儲(chǔ)操作變得非常困難,并且也不易進(jìn)行數(shù)據(jù)分析,。數(shù)據(jù)的實(shí)時(shí)采集壓縮技術(shù)可以解決這一問題。由于雷達(dá)信號(hào)較為敏感,,在大多數(shù)情況下雷達(dá)信號(hào)都需要先記錄,,再事后取證、分析,,所以只能采用實(shí)時(shí)無損壓縮,。因此,要求多頻連續(xù)波雷達(dá)數(shù)據(jù)采集系統(tǒng)信號(hào)處理實(shí)時(shí)性好,,處理數(shù)據(jù)量大,,在追求目標(biāo)采集測量精度的同時(shí)降低信號(hào)處理算法的復(fù)雜度,利于工程實(shí)現(xiàn),。
  當(dāng)前有很多壓縮與解壓縮方法都是基于軟件實(shí)現(xiàn)的,,都是對數(shù)據(jù)進(jìn)行后期處理。這種方法執(zhí)行速度慢,,耗費(fèi)大量的CPU資源,。采用硬件實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)無損壓縮能夠?qū)⒏咚傩盘?hào)變成緩變信號(hào)進(jìn)行傳輸,,降低通信的信道容量,提高數(shù)據(jù)的可靠性,。在雷達(dá)信號(hào)數(shù)據(jù)采集系統(tǒng)中,,完成數(shù)據(jù)的海量存儲(chǔ)并提高總線的數(shù)據(jù)傳輸速度應(yīng)采用硬件實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)無損壓縮。
1 數(shù)據(jù)壓縮算法比較
 數(shù)據(jù)壓縮算法有不同的分類方法,,根據(jù)壓縮算法是否可逆可以分為可逆壓縮與不可逆壓縮,。其中可逆壓縮也叫無失真編碼或無損壓縮。不可逆壓縮叫做失真編碼或有損壓縮,。由于人的感覺器官對于圖片,、聲音或視頻中的某些信息的丟失難以察覺,一般采用有損壓縮算法可以節(jié)約大量的存儲(chǔ)空間,。主要有預(yù)測編碼,、多分辨率編碼、分型圖形編碼等,。無損壓縮算法主要有哈夫曼編碼,、算術(shù)編碼、游程編碼和LZ編碼等[2],。其中哈夫曼編碼與算術(shù)編碼均根據(jù)源數(shù)據(jù)發(fā)生的概率進(jìn)行編碼,,需要對壓縮數(shù)據(jù)進(jìn)行統(tǒng)計(jì),處理過程緩慢,,實(shí)時(shí)性差,;游程編碼只有在字符連續(xù)出現(xiàn)4次以上才能獲得比較好的壓縮效果,不適用于壓縮雷達(dá)回波信號(hào),。LZ編碼是基于字典的模式,,用單個(gè)代碼代替字符串,數(shù)據(jù)流式輸入,,對數(shù)據(jù)源無分塊要求,,實(shí)時(shí)效果好,解壓完全可逆,。LZ編碼包括LZ77,、LZ78和LZW(Lempel-Ziv-Welch Encoding)。本文根據(jù)雷達(dá)回波數(shù)據(jù)的壓縮要求選用LZW無損壓縮算法,。
2 雷達(dá)數(shù)據(jù)采集系統(tǒng)硬件實(shí)現(xiàn)
 本文介紹的多頻連續(xù)波雷達(dá)數(shù)據(jù)采集系統(tǒng)中16路模擬信號(hào)經(jīng)過放大,、跟隨、濾波處理后經(jīng)高速模擬電子開關(guān)進(jìn)入高速ADC,,輸出16 bit數(shù)字量,。數(shù)字量的緩存與處理由采集處理模塊中的采集控制邏輯(FPGA)實(shí)現(xiàn)。壓縮后的數(shù)據(jù)在主控模塊的控制下經(jīng)高速系統(tǒng)總線寫入數(shù)據(jù)存儲(chǔ)模塊中的存儲(chǔ)器陣列,。原理框圖如圖1所示,。

3 基于FPGA的LZW算法設(shè)計(jì)

 


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

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

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

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

 狀態(tài)機(jī)首先完成初始化過程,,物理地址000H~0FFH分別存放對應(yīng)的0~255,。初始化完成后,狀態(tài)機(jī)進(jìn)入壓縮編碼循環(huán),,讀入當(dāng)前字符,,若該字符與字典中的某個(gè)字符匹配,再讀入下一字符,;若不匹配,,把該字符加入到當(dāng)前字符串中,輸出前綴的字典指針到輸出碼流,。反復(fù)執(zhí)行該過程,,直到編碼結(jié)束,。
 以字符串流97,24,,1,97,24,232,,1,255,97,24,232,46……為例,表1給出LZW壓縮算法的處理過程,。輸出碼流為061,018,061,100,0E8,001,0FF,0E8……,,其中字典指針及輸出碼流均以16進(jìn)制表示。

3.4 測試結(jié)果分析
 本文設(shè)計(jì)的多頻連續(xù)波雷達(dá)數(shù)據(jù)采集系統(tǒng)中的控制邏輯采用Xilinx公司的Virtex-E系列FPGA器件XCV400E,,系統(tǒng)時(shí)鐘頻率100 MHz,,分別選取三種不同類型的雷達(dá)數(shù)據(jù)幀進(jìn)行壓縮算法測試,如表2所示,。其中數(shù)據(jù)幀1為1 MB的雷達(dá)視頻回波文本文件數(shù)據(jù),,雜波信號(hào)較多;數(shù)據(jù)幀2為5 MB的雷達(dá)視頻回波文本文件數(shù)據(jù),,雜波信號(hào)較少,;數(shù)據(jù)幀3為10 MB的二進(jìn)制雷達(dá)數(shù)據(jù)。

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

參考文獻(xiàn)
[1] 戴奉周,馮維婷,,沈福民.數(shù)字多頻連續(xù)波雷達(dá)信號(hào)處理中的關(guān)鍵算法[J]. 雷達(dá)科學(xué)與技術(shù), 2005,6(3):177-180.
[2] SALOMON D.數(shù)據(jù)壓縮原理與應(yīng)用[M].吳樂南,等,譯.北京:電子工業(yè)出版社, 2003.
[3] 藍(lán)波,林小竹,籍俊偉.一種改進(jìn)的LZW算法在圖像編碼中的應(yīng)用[J].計(jì)算機(jī)工程與科學(xué),2006,28(6):55-57.
[4] 郭曉巖,郝永勝. LZW無損壓縮算法在計(jì) 算機(jī)取證中的應(yīng)用研究[J].測控技術(shù),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] 陳晉敏,黃春明,周軍. 激光雷達(dá)數(shù)據(jù)無損壓縮的FPGA實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2007,15(1):100-102.
[7] 尹志勇,焦新泉,任勇峰.雷達(dá)視頻回波信號(hào)實(shí)時(shí)采集,、壓縮轉(zhuǎn)發(fā)裝置[J].計(jì)算機(jī)測量與控制,2010,18(2):479-481.
 

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