一種新DCS 模擬量數(shù)據(jù)的分部壓縮方法-基礎(chǔ)電子_第1頁
一種新DCS 模擬量數(shù)據(jù)的分部壓縮方法-基礎(chǔ)電子_第2頁
一種新DCS 模擬量數(shù)據(jù)的分部壓縮方法-基礎(chǔ)電子_第3頁
一種新DCS 模擬量數(shù)據(jù)的分部壓縮方法-基礎(chǔ)電子_第4頁
一種新DCS 模擬量數(shù)據(jù)的分部壓縮方法-基礎(chǔ)電子_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯一種新DCS模擬量數(shù)據(jù)的分部壓縮方法-基礎(chǔ)電子導(dǎo)讀:傳統(tǒng)壓縮方法對(duì)DCS模擬量進(jìn)行壓縮效果不佳。要得到較好的壓縮效果就要從模擬量在計(jì)算機(jī)中表示的方法入手。本文分析了DCS模擬量在計(jì)算機(jī)中存儲(chǔ)和表示方法及其特點(diǎn),對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理,使數(shù)據(jù)表現(xiàn)出較明顯的冗余信息,然后對(duì)數(shù)據(jù)的不同部分,采用不同的壓縮方法,每種壓縮算法壓縮模擬量數(shù)據(jù)的一部分。

與DCS接口中,串行通訊是常見的接口方式。為了提高通訊效率,需要對(duì)通訊的數(shù)據(jù)進(jìn)行壓縮處理。DCS模擬量的壓縮方法中,常用整數(shù)表示工程量,即將模擬量的按其量程線性化處理為兩字節(jié)正整數(shù)(0~65535),應(yīng)用時(shí)再轉(zhuǎn)換為工程量。這種方法由于要維護(hù)模擬量的量程表,不便于通信;另一類常用的壓縮方法是采用LZW等基于字典模型的壓縮算法。模擬量數(shù)據(jù)是以單精度浮點(diǎn)數(shù)存放的,數(shù)據(jù)的冗余度很小,傳統(tǒng)的壓縮處理方法的壓縮效果都不理想。

本文從模擬量在計(jì)算機(jī)中的表示方法入手,首先將模擬量預(yù)處理,再針對(duì)數(shù)據(jù)的不同部分采用不同的方法進(jìn)行壓縮,將壓縮后數(shù)據(jù)組合起來。這樣既充分考慮到了數(shù)據(jù)的特點(diǎn),又充分利用了壓縮方法的適應(yīng)性。

1模擬量的表示方法及特點(diǎn)

1.1模擬量的表示方法

DCS模擬量用單精度浮點(diǎn)數(shù)表示,占用4個(gè)字節(jié),可以到7位有效數(shù)字。按文獻(xiàn)[3]標(biāo)準(zhǔn)(以下簡稱標(biāo)準(zhǔn))表示。設(shè)一個(gè)浮點(diǎn)數(shù)R,可使用三元組{S,E,M}來表示:S為符號(hào)位,用1位表示。

S=0表示R為正數(shù),S=1表示R為負(fù)數(shù);E為指數(shù),用8bits表示。實(shí)際指數(shù)要經(jīng)E-127計(jì)算后得到;M為尾數(shù),用23bits表示。浮點(diǎn)數(shù)R為S×1.ME(1為隱含的一位尾數(shù),不在M中表示)。

1.2模擬量的特點(diǎn)

數(shù)據(jù)壓縮需要信息有足夠的冗余度。以標(biāo)準(zhǔn)表示的模擬量不利于壓縮。即便差值很小的數(shù)據(jù),在計(jì)算機(jī)中表示結(jié)果差別很大,如1234.5在計(jì)算機(jī)中用四字節(jié)表示為:68154800,而1234.6表示為:681548351,僅有符號(hào)位和指數(shù)位表示相同,尾數(shù)完全不同,這樣就造成了壓縮的難度。

現(xiàn)以200個(gè)模擬量數(shù)據(jù)為樣本分析其特點(diǎn)。樣本數(shù)據(jù)隨機(jī)產(chǎn)生,其范圍為[0.0,1000.0].按照標(biāo)準(zhǔn)存儲(chǔ)的數(shù)據(jù)從字符概率分布較平均,若用通用數(shù)據(jù)壓縮方法壓縮這些數(shù)據(jù),得不到很好的效果。

雖然浮點(diǎn)數(shù)的信息冗余度很小,但若用其表示DCS模擬量,仍有以下特點(diǎn):

(1)各工程量數(shù)值多數(shù)大于零,因此標(biāo)準(zhǔn)表示中,符號(hào)位S大多為零;

(2)各工程量的量程相差約為0.0001~10000倍,因此標(biāo)準(zhǔn)表示中,指數(shù)差值約為-4~4;

(3)從數(shù)據(jù)精度考慮,工程量一般保留5位有效數(shù)字即可。因此標(biāo)準(zhǔn)表示中,尾數(shù)部分有可壓縮的信息。

2模擬量的預(yù)處理

模擬量預(yù)處理的目的是為了產(chǎn)生更多的冗余信息,獲得更好的壓縮效果。通信時(shí)一般將模擬量按測點(diǎn)表以自然順序排列。根據(jù)1.2節(jié)的分析可知,若將模擬量按其三元組順序排列,即:N個(gè)模擬量數(shù)據(jù),其自然排列順序?yàn)閧S1,E1,M1}、{S2,E2,M2}、…、{SN,EN,MN},共占用4N字節(jié)。壓縮前將模擬量序列按字節(jié)重新排列為:

S1S2…SNE1E2…ENM1M2…MN.因符號(hào)位S為1位,重新排列后將8個(gè)模擬量的符號(hào)位合并為1字節(jié)。故重新排列后N個(gè)模擬量共占用字節(jié)數(shù)為4N+N/8(+1)字節(jié)。(括號(hào)中+1字節(jié)表示N不是8的整數(shù)倍時(shí)總字節(jié)數(shù)+1)。

圖1(a)為樣本數(shù)據(jù)經(jīng)重新排列后字節(jié)分布情況??梢钥闯鰯?shù)據(jù)已呈現(xiàn)明顯的規(guī)律性:部分?jǐn)?shù)據(jù)[1,25]為數(shù)據(jù)的符號(hào),是樣本數(shù)據(jù)的符號(hào)。樣本數(shù)據(jù)均為正,因此由符號(hào)位構(gòu)成的這部分?jǐn)?shù)據(jù)全為零;第二部分?jǐn)?shù)據(jù)[26,225]為N個(gè)樣本數(shù)據(jù)的指數(shù),根據(jù)1.2節(jié)分析可知,各數(shù)據(jù)的指數(shù)差值大約在-4~4之間,故有較大的壓縮空間;一部分?jǐn)?shù)據(jù)[226,825]為N個(gè)樣本的尾數(shù),呈隨機(jī)分布。

次預(yù)處理是數(shù)據(jù)無損的。考慮到DCS模擬量精度要求有5位有效數(shù)字即可。根據(jù)信息理論,1位十進(jìn)制數(shù)可以表示log210≈3.32位二進(jìn)制數(shù)。單精度浮點(diǎn)數(shù)表示模擬量時(shí),4位二進(jìn)制約可表示1位十進(jìn)制。因此,在精度滿足DCS系統(tǒng)要求的情況下,可以減少一個(gè)字節(jié)尾數(shù)。第二次預(yù)處理將尾數(shù)的字節(jié)置零,進(jìn)一步提高數(shù)據(jù)的冗余信息。圖1(b)為第二次預(yù)處理后的字節(jié)分布情況。可以看出,相比次預(yù)處理,數(shù)據(jù)一部分[626,825]全為零,可以更好地被壓縮。

3壓縮算法的選擇

3.1壓縮算法選擇原則

壓縮算法要根據(jù)原始數(shù)據(jù)的特點(diǎn)以及對(duì)速度、性能的綜合要求來選擇。模擬量的壓縮應(yīng)用在數(shù)據(jù)通信中,對(duì)速度的要求較高。

因此壓縮算法不能過于復(fù)雜,運(yùn)算量要小。

從預(yù)處理后的樣本數(shù)據(jù)可以看出,每一部分?jǐn)?shù)據(jù)的特點(diǎn)不同,因此選擇壓縮算法時(shí)應(yīng)針對(duì)不同特點(diǎn)的數(shù)據(jù)采用不同的壓縮算法來處理。部分?jǐn)?shù)據(jù)(由符號(hào)位組成)為零(或絕大部分為零),可以采用游程編碼(RunLengthEncoding);第二部分?jǐn)?shù)據(jù)(由指數(shù)組成)數(shù)值間相差不大,可用差分編碼(DifferentialEncoding);第三部分?jǐn)?shù)據(jù)(由部分尾數(shù)組成)隨機(jī)性較大,壓縮效果不明顯,因此不進(jìn)行壓縮;第四部分?jǐn)?shù)據(jù)(由字節(jié)尾數(shù)組成)均為零,可采用游程編碼。

3.2差分編碼

差分編碼又稱相關(guān)編碼。當(dāng)源數(shù)據(jù)之間差值不大時(shí),用數(shù)據(jù)間的差值代替源數(shù)據(jù)序列。較小的差值可以用較少的位數(shù)表示。本文用4位二進(jìn)制表示一個(gè)差值。

源數(shù)據(jù)中序列E1E2…EN為數(shù)據(jù)的指數(shù),其差值約在-4~4之間,用4位二進(jìn)制表示此差值:位用來表示差值的符號(hào),其余三位表示差值,-7保留??杀硎镜牟钪捣秶鸀?6~+7;若差值大于此范圍,則不壓縮,用原碼輸出。為了區(qū)分是差值輸出還是原碼輸出,用保留的-7表示下一字節(jié)為原碼輸出。N字節(jié)源序列,若每一字節(jié)都可以用相鄰差值來表示,其理想壓縮比為1:(N/2+1)/N=1:0.5+1/N.

圖2為樣本數(shù)據(jù)差分編碼壓縮后字節(jié)分布。可以看到,源數(shù)據(jù)中表示指數(shù)的部分已經(jīng)被有效壓縮。樣本數(shù)據(jù)由825字節(jié)壓縮到726字節(jié),實(shí)際壓縮率為88.0%.

3.3游程編碼

游程編碼的思路是:若數(shù)據(jù)項(xiàng)d在源數(shù)據(jù)中連續(xù)出現(xiàn)n次(n稱為重復(fù)因子),則在輸出流中以nd代替n個(gè)重復(fù)項(xiàng)d.游程編碼也可能出現(xiàn)壓縮比大于1的情況。為了區(qū)分輸出項(xiàng)是重復(fù)因子還是被壓縮數(shù)據(jù),規(guī)定當(dāng)重復(fù)因子n≥3時(shí),輸出ddd(n-3);n3時(shí),輸出n個(gè)d,即不壓縮輸出。另外重復(fù)因子3≤n≤255,若數(shù)據(jù)項(xiàng)d重復(fù)次數(shù)大于255,則要重新進(jìn)行游程編碼。設(shè)源數(shù)據(jù)長度為N,包含M次重復(fù),每次重復(fù)平均長度L,則游程編碼壓縮比為1:(N-M×(L-4))/N.

樣本數(shù)據(jù)經(jīng)預(yù)處理后部分(由符號(hào)位組成)和第四部分(由位尾數(shù)組成)可以用游程編碼。這部分?jǐn)?shù)據(jù)可以獲得很高的壓縮比。部分理想壓縮比為1:4/25=1:0.16;第四部分理想壓縮比為1:4/200=1:0.015.

圖3為經(jīng)游程編碼壓縮后的數(shù)據(jù)分布圖。由上差分編碼壓縮后的726字節(jié)壓縮至510字節(jié),實(shí)際壓縮比為1:0.70.

4結(jié)論

200個(gè)樣本數(shù)據(jù)經(jīng)預(yù)處理,對(duì)一部分?jǐn)?shù)據(jù)進(jìn)行差分編碼、對(duì)另一部分?jǐn)?shù)據(jù)進(jìn)行游程編碼,終有510個(gè)字節(jié)。因此綜合壓縮比為1:510/800≈1:0.64,節(jié)省約36%的空間。由于樣本數(shù)據(jù)的隨機(jī)性,因此可以推廣到一般情況。得到以下結(jié)論:

(1)分部壓縮方法可以獲

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論