新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)據(jù)壓縮技術(shù)在電力系統(tǒng)通信中的應(yīng)用

        數(shù)據(jù)壓縮技術(shù)在電力系統(tǒng)通信中的應(yīng)用

        作者: 時(shí)間:2013-04-13 來(lái)源:網(wǎng)絡(luò) 收藏

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


        圖1 自適應(yīng)哈夫曼編碼流程


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 定陶县| 衢州市| 开远市| 鹤岗市| 峨眉山市| 乐陵市| 武川县| 平凉市| 乌拉特中旗| 巴塘县| 庆安县| 新干县| 茶陵县| 娄底市| 得荣县| 镇远县| 车险| 科技| 南通市| 左云县| 鄂伦春自治旗| 梁河县| 霞浦县| 余庆县| 临湘市| 长宁区| 新龙县| 耒阳市| 麻阳| 临夏市| 安龙县| 北宁市| 仙桃市| 山丹县| 海安县| 霍山县| 织金县| 巴青县| 吉隆县| 沁水县| 文安县|