數(shù)據(jù)壓縮技術在電力系統(tǒng)通信中的應用
隨著微型計算機與通信技術的發(fā)展與日益成熟,一大批新型的電力系統(tǒng)故障錄波裝置和SCADA系統(tǒng)源源不斷地被引入電力系統(tǒng),由微波信道(或電力載波、公用電話線等信道)將大批量數(shù)據(jù)傳送到電網(wǎng)調(diào)度中心,是目前廣為采用的方法。波特率不可能太高,所需通信時間太長的問題已成為一大難題。解決這一難題的有效途徑是數(shù)據(jù)的壓縮與解壓技術,即將發(fā)送端待傳輸?shù)臄?shù)據(jù)進行壓縮,而接收端將接收到的壓縮數(shù)據(jù)解壓以獲得原始數(shù)據(jù)。如傳輸電力系統(tǒng)某一波形數(shù)據(jù)文件的長度為23 376字節(jié),若不采用壓縮而直接傳輸,所需時間為40 min,若采用自適應的哈夫曼數(shù)據(jù)壓縮與解壓技術壓縮后再傳輸,需22 min左右(與波形數(shù)據(jù)有關)。
其次,盡管計算機存儲器的價格有降低的趨勢,但在數(shù)據(jù)庫應用系統(tǒng)中,數(shù)據(jù)存儲仍然占有相當大的額外費用。因此,在數(shù)據(jù)庫系統(tǒng)中,對數(shù)據(jù)進行壓縮是減少數(shù)據(jù)存儲費用和提高性能的一個很有效的辦法。
數(shù)據(jù)壓縮技術方法很多,本文論述一種比較實用的自適應哈夫曼數(shù)據(jù)壓縮與解壓方法,該方法已被故障錄波器所采用。
1 自適應哈夫曼數(shù)據(jù)壓縮與解壓原理
哈夫曼編碼技術是一種比較常用的變長編碼方法,最早由Huffman D提出。它采用的是一種優(yōu)化靜態(tài)編碼方法,由該算法產(chǎn)生的二叉樹具有最小的加權長之和∑WjLj,其中Wj是哈夫曼樹中第j個葉結點的重量,Lj為該葉結點到樹根的距離。靜態(tài)哈夫曼方法的最大缺點就是它需要對原始數(shù)據(jù)進行兩遍掃描:第一遍統(tǒng)計原始數(shù)據(jù)中各字符出現(xiàn)的頻率,利用得到的頻率值創(chuàng)建哈夫曼樹并將樹的有關信息保存起來,便于解壓使用;第二遍掃描則根據(jù)前面得到的哈夫曼樹對原始數(shù)據(jù)進行編碼,并將編碼信息存儲起來。此法如果用于網(wǎng)絡通信中,將會引起較大的延時。
針對上述問題,F(xiàn)aller等人提出了自適應即動態(tài)哈夫曼編碼方法,它對數(shù)據(jù)編碼的依據(jù)是動態(tài)變化的哈夫曼樹,也就是說,對t+1個字符編碼是根據(jù)原始數(shù)據(jù)中前t個字符得到的哈夫曼樹來進行的。壓縮與解壓子程序具有相同的算法修改哈夫曼樹,因而該方法不需要為解壓而保存樹的有關信息。壓縮與解壓一個字符所需的時間與該字符的編碼長度成正比,因而該過程可以實時進行。
自適應哈夫曼編碼的關鍵,就是如何將前t個字符的哈夫曼樹調(diào)整成一棵前t+1個字符的哈夫曼樹。為了解決上述問題,我們分兩步進行。
第一步, 我們把前t個字符的哈夫曼樹轉換成它的另一種形式, 只需在該樹第二步中簡單地把由根到葉結點ait+1路徑上的所有結點重量加1, 就可以變成前t+1個字符的哈夫曼樹。 其過程就是以葉結點ait+1為初始的當前結點, 重復地將當前結點與具有同樣重量的序號最大的結點進行交換,并使后者的父結點成為新的當前結點,直到遇到根結點為止。
第二步通過將根到葉結點ait+1路徑上的所有結點重量加1, 該樹就變成了前t+1個字符的哈夫曼樹。
2 自適應哈夫曼編碼及解碼流程及其說明
自適應哈夫曼編碼流程如圖1所示,其解碼流程如圖2所示。
圖1 自適應哈夫曼編碼流程
評論