??? 摘? 要: 介紹了基于多路遙測數(shù)據(jù)采集系統(tǒng)在數(shù)據(jù)存儲過程中的特點(diǎn),提出了數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu),并基于該數(shù)據(jù)包結(jié)構(gòu)設(shè)計(jì)了低硬件復(fù)雜度的實(shí)時壓縮算法。該數(shù)據(jù)壓縮算法已成功應(yīng)用于某艦船振動信號檢測中,仿真及實(shí)際測試結(jié)果表明,該算法在滿足數(shù)據(jù)處理精度要求的前提下,可獲得較高的壓縮因子。?
??? 關(guān)鍵詞: 遙測數(shù)據(jù); 數(shù)據(jù)包; 實(shí)時壓縮
?
??? 隨著遙感技術(shù)的飛速發(fā)展,新型航天遙感器、未來地球資源探測平臺以及用于軍事領(lǐng)域的各種傳感器所獲取的數(shù)據(jù)量急劇增長。為了有效傳輸和存儲海量遙測數(shù)據(jù),遙測數(shù)據(jù)壓縮已經(jīng)成為遙測技術(shù)應(yīng)用的一個重要課題[1]。?
??? 對于數(shù)據(jù)壓縮,根據(jù)失真率可分為無失真壓縮和失真壓縮兩大類,無失真壓縮法有霍夫曼編碼、算數(shù)編碼等。而對于允許一定失真率的遙測數(shù)據(jù)而言,采用游程編碼可獲得較好的壓縮效果。同時數(shù)據(jù)的結(jié)構(gòu)、數(shù)據(jù)的信息熵也直接影響數(shù)據(jù)傳輸速度、記錄器的容量以及邏輯的布局。為了對遙測數(shù)據(jù)進(jìn)行有效壓縮,本文提出了數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu),并在數(shù)據(jù)包的基礎(chǔ)上提出了基于改進(jìn)游程編碼、低硬件復(fù)雜度的實(shí)時數(shù)據(jù)壓縮方法。通過仿真實(shí)驗(yàn),證明了該算法在處理特定遙測數(shù)據(jù)過程中具有良好的可靠性和有效性。?
1 多路遙測數(shù)據(jù)編幀結(jié)構(gòu)?
??? 彈上遙測系統(tǒng)將反映各分系統(tǒng)工作情況以及工作環(huán)境的各種電量、非電量信號都轉(zhuǎn)化成在規(guī)定范圍內(nèi)變化的電信號,然后由彈上遙測系統(tǒng)采集、編碼、調(diào)制后傳輸?shù)玫竭b測數(shù)據(jù)。遙測系統(tǒng)的幀格式是典型的PCM幀格式。每幀以一個特定的幀同步碼組開始,幀同步碼組之后排列著固定碼長的各路數(shù)據(jù),幀長和幀結(jié)構(gòu)在飛行中是固定的。遙測系統(tǒng)以固定的采樣率對每路模擬量進(jìn)行采樣,并依次對每路信號進(jìn)行編碼。為了既不丟失信號的信息又能合理利用信道,對于不同速率的參數(shù),應(yīng)在主幀基礎(chǔ)上用不同的副幀來實(shí)現(xiàn)[2]。一個主幀由若干個副幀構(gòu)成, 副幀分成多個波道, 存儲不同信息。?
??? 圖1所示為具體數(shù)據(jù)結(jié)構(gòu),其中包括N路速變信號和N+M路緩變信號,本實(shí)驗(yàn)采用16位的AD7667進(jìn)行采樣,其最高采樣率為1MS/s,信號采樣率遠(yuǎn)高于實(shí)際變化頻率,從而使數(shù)據(jù)變化較為緩慢,為數(shù)據(jù)壓縮提供了可行性。而一些緩變信號,當(dāng)沒有信號時,一般以固定值表示,這也為信息壓縮提供了方便。?
?
?
2 多路遙測數(shù)據(jù)包結(jié)構(gòu)?
??? 遙測系統(tǒng)中相鄰幀之間即每通道間相鄰數(shù)據(jù)具有很強(qiáng)的相關(guān)性,故設(shè)計(jì)了數(shù)據(jù)包結(jié)構(gòu)來實(shí)現(xiàn)多路數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)壓縮。打包法是將每通道數(shù)據(jù)單獨(dú)打包。與編幀法相比,數(shù)據(jù)包結(jié)構(gòu)的采集控制過程相同,但數(shù)據(jù)的組織方法不同[3]。?
??? 各個通道的輸入信號選用多選一電子開關(guān)按時分方式依次采樣,即相應(yīng)通道被選中,經(jīng)過模數(shù)轉(zhuǎn)換器,形成PCM輸出。在采編器中開設(shè)n個緩存區(qū)(一級緩存),每個通道的緩存區(qū)為k字節(jié),依次編號且與通道號對應(yīng),對應(yīng)通道采集的數(shù)據(jù)對應(yīng)存放到對應(yīng)的緩存區(qū)。當(dāng)緩存區(qū)滿后,將數(shù)據(jù)轉(zhuǎn)移到下一級存儲器(二級緩存),二級緩存采用FIFO結(jié)構(gòu)。每組緩存區(qū)存儲的數(shù)據(jù)在轉(zhuǎn)移時,都冠以通道號標(biāo)記和同步標(biāo)記。當(dāng)二級緩存FIFO達(dá)到一定的深度時,將二級緩存中的數(shù)據(jù)轉(zhuǎn)移到下一級存儲器(主存儲器)。類似于一級緩存到二級緩存的打包過程,每組二級緩存的數(shù)據(jù)在轉(zhuǎn)移時,也要冠以時間標(biāo)記、卡標(biāo)記和同步標(biāo)記。數(shù)據(jù)包結(jié)構(gòu)的具體實(shí)現(xiàn)方式如圖2所示。?
?
?
??? 除了壓縮效率,數(shù)據(jù)壓縮所要考慮的另一個重要方面是算法執(zhí)行的復(fù)雜度。通過上述分析可知,該硬件電路易于實(shí)現(xiàn)打包數(shù)據(jù)的存儲和轉(zhuǎn)移,為打包壓縮算法的可行性提供了條件。?
3 實(shí)驗(yàn)結(jié)果分析?
3.1壓縮/解壓算法設(shè)計(jì)?
??? 游程編碼的原理十分簡單:將一行數(shù)據(jù)中數(shù)值相同或相近的相鄰點(diǎn)用一個計(jì)數(shù)字節(jié)和一個表示該數(shù)據(jù)值的數(shù)據(jù)字節(jié)來代替。然而該算法存在一個致命弱點(diǎn):如果數(shù)據(jù)中每兩個相鄰點(diǎn)的數(shù)值都不同,用這種算法不但不能壓縮,數(shù)據(jù)量反而增加一倍。為了避免上述病態(tài)數(shù)據(jù)的出現(xiàn),在算法上對計(jì)數(shù)字節(jié)和數(shù)據(jù)字節(jié)進(jìn)行了區(qū)分,本實(shí)驗(yàn)是以16位ADC數(shù)據(jù)為例,對進(jìn)入FPGA的數(shù)據(jù)進(jìn)行預(yù)處理。先將數(shù)據(jù)除以2,然后加上8 000H,確保數(shù)據(jù)的最高位為1,而計(jì)數(shù)字節(jié)的最高位為0。具體的壓縮編碼與解碼恢復(fù)的算法流程圖分別如圖3和圖4所示。?
?
?
?
??? 將16位ADC數(shù)據(jù)進(jìn)行有損壓縮后的數(shù)據(jù)格式如表1所示。用該壓縮算法,數(shù)據(jù)結(jié)構(gòu)同編幀法相比,由于各通道物理過程不盡相同,壓縮因子較大的通道在大包中出現(xiàn)的概率較小,各通道壓縮因子介于[1,16 384]之間。?
?
?
3.2仿真結(jié)果?
??? 壓縮率與誤差參數(shù)△的關(guān)系仿真曲線如圖5所示。
?
?
3.3 實(shí)際測試結(jié)果?
??? 在硬件電路設(shè)計(jì)中采用16位的AD7667進(jìn)行采樣,則系統(tǒng)理論上的最高分辨率為2.5/216。從上述流程中可知:AD連續(xù)兩次采樣的差值小于△時,便認(rèn)為這兩次的值是一致的,取前一個值,因此△的不同,使得AD的分辨率也跟著變化?!髋cAD分辨率的關(guān)系如表2所示。?
?
?
??? 由表2得出:△值越小,經(jīng)壓縮后其分辨率越高;反之,△值越大,經(jīng)壓縮后其分辨率越低。?
??? 在艦船振動的檢測過程中,要求艦船振動加速度超過100g,記錄器就能識別出來。振動傳感器的靈敏度約為0.5pc/g。?
??? 最小輸入電荷量為:?
??? Q=100g×0.5pc/g=50pc?
??? 電荷經(jīng)過放大器,輸出電壓Vo為:?
??? ?
??? AD7667的采集電壓范圍為0~2.5V,所以AD的最小分辨率為0.005V。當(dāng)△=64,其數(shù)據(jù)壓縮以后的分辨率為其數(shù)據(jù)壓縮以后的分辨率為
通過以上分析,將△值確定在{0,64}。?
??? 設(shè)計(jì)人員可以根據(jù)實(shí)際需要改變△來改變算法的壓縮比,△值越小,壓縮比越低,波形失真越小;△值越大,壓縮比越高,波形失真越嚴(yán)重。因此,在保證精度的條件下,△值越大壓縮比越高。?
??? 根據(jù)以上的分析,此算法屬于有損壓縮算法,在應(yīng)用中,設(shè)定不同的△值 ,對于差值小于△時的冗余數(shù)據(jù),都認(rèn)為是同一個數(shù)據(jù)壓縮后的數(shù)據(jù)如圖6所示。?
?
?
??? 由于采集系統(tǒng)會受到系統(tǒng)、外界和本身的紋波干擾,若△選得太小,則壓縮效果不明顯,如上表中的△為64的壓縮數(shù)據(jù)所示:AD的編碼值為1000 0000 0100 110X(80 4X),經(jīng)過移位以后,編碼變?yōu)?100 0000 0001 0011(40 13),緊接著為計(jì)數(shù)器1111 1111 1111 1111(FFFF),最高位“1”代表計(jì)數(shù)器,其余15位代表計(jì)數(shù)值(7FFF),每隔一秒鐘寫入一個幀標(biāo)志XX XX XX EB 90;已知AD的采樣率為200KS/s,綜上,在無突變信號的情況下本算法的壓縮比為:?
?????
??? 通過以上理論分析、仿真結(jié)果及硬件實(shí)驗(yàn)測試結(jié)果可知,采用數(shù)據(jù)壓縮技術(shù)可以減少多余數(shù)據(jù),從而在有限的存儲容量下獲得盡可能多的非多余數(shù)據(jù)。算法硬件實(shí)現(xiàn)簡單,采用低功耗的FPGA實(shí)現(xiàn)硬件壓縮,對所采集數(shù)據(jù)的壓縮和解壓時間短,在符合系統(tǒng)精度要求的前提下,采用該壓縮算法,可以獲得較高的壓縮比。?
參考文獻(xiàn)?
[1] 王崛.遙測數(shù)據(jù)壓縮算法的設(shè)計(jì)與實(shí)現(xiàn). 遙測遙控,2002,23(2):16-22.?
[2] 馬寧,朱福蔭,尹志軍,等.改進(jìn)游程編碼在天氣雷達(dá)數(shù)據(jù)壓縮中的應(yīng)用.解放軍理工大學(xué)學(xué)報(bào),2004,5(6):88-90.?
[3] 賈緯敏.一種可編程PCM遙測編碼器的設(shè)計(jì).電子工程師,2004,30(5):71-73.