專利名稱:一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法
一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法
技術(shù)領(lǐng)域:
本發(fā)明公開了一種數(shù)據(jù)壓縮編碼/解碼方法,具體來說是一種應(yīng)用于無線網(wǎng)絡(luò)應(yīng)用技術(shù),特別是一種用于糧食倉儲的無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)編碼/解碼方法。背景技術(shù):
俗話說“民以食為天”,即使在高新技術(shù)發(fā)展的今天,人們的生存也離不開糧食,它關(guān)系到社會的發(fā)展和人民生活的安定。但是在水分高、氣溫也較高時,糧食10余天就會發(fā)霉,若不及時處理,糧食就霉壞變質(zhì),輕則造成經(jīng)濟損失,重則人命關(guān)天。糧食在儲存過程中,糧情(溫度、濕度、水分、害蟲等)的變化,直接影響到糧食品質(zhì)的好壞。無線傳感網(wǎng)絡(luò)的糧情測控系統(tǒng)集成了糧倉內(nèi)糧食的溫度、濕度、蟲害等信息的采集、數(shù)據(jù)處理和無線通信等多種功能,實際應(yīng)用中,電磁波在傳輸過程中由于溫度、濕度、噪音等環(huán)境因素的影響,使得無線傳感網(wǎng)絡(luò)節(jié)點在通信過程中常發(fā)生錯誤,造成物理鏈路的不可靠。通常解決這一問題的最簡單途徑是數(shù)據(jù)重傳,既若數(shù)據(jù)發(fā)送出錯,采用重新發(fā)送的方法。由于傳感器網(wǎng)絡(luò)節(jié)點傳輸1比特數(shù)據(jù)所消耗的能量相當(dāng)于執(zhí)行3000條指令的能耗,通信所需能量遠大于計算所開銷的能量。此方法對于采用電池供電的傳感網(wǎng)絡(luò)來說,耗能較大將縮短其網(wǎng)絡(luò)的生命周期。因此,在保障網(wǎng)絡(luò)端到端可靠性時要盡量減少通信傳輸?shù)哪芰块_銷,延長電池供電的時間。關(guān)于傳感器網(wǎng)絡(luò)中的數(shù)據(jù)壓縮技術(shù)的研究,主要有Ioarmidis和Poosala提出了利用直方圖壓縮數(shù)據(jù)的方法。Losif Lazaridis等通過對傳感器網(wǎng)絡(luò)中的時間序列的研究,提出了直接在傳感器節(jié)點上壓結(jié)合實際原數(shù)據(jù),只有當(dāng)出查詢精度要求時才將壓縮的數(shù)據(jù)發(fā)送到基站的數(shù)據(jù)處理方法。Antoios Deligiarmikis等提出了利用同一傳感器節(jié)點多個屬性數(shù)據(jù)或不同時間段內(nèi)數(shù)據(jù)間的相關(guān)性壓縮歷史數(shù)據(jù)的技術(shù)。K. chan提出了利用小波技術(shù)壓縮時間序列的方法。Aushik和Chakrabarti等提出了為數(shù)據(jù)建立小波快照,并在壓縮的結(jié)構(gòu)上直接進行查詢處理的方法。但是這些數(shù)據(jù)壓縮算法存在計算復(fù)雜度高,無法滿足用戶對數(shù)據(jù)的精度要求的問題。關(guān)于無損數(shù)據(jù)壓縮的方法非常多,其中香農(nóng)一費諾編碼、霍夫曼編碼、算術(shù)編碼均是與概率相關(guān)的,基于統(tǒng)計模型的編碼方法,且針對的是單個字符。字典編碼是基于字典模型的,針對的是字符串。然而,溫室傳感數(shù)據(jù)多是一個個浮點型數(shù)值,若將其看成字符串,則是由O 9的數(shù)字和小數(shù)點組成的。以溫度數(shù)據(jù)為例,采集數(shù)據(jù)呈現(xiàn)緩慢變化的特點。因此,各個數(shù)據(jù)出現(xiàn)的概率相差不大,用基于概率的編碼方法無明顯優(yōu)勢;同樣,在一段時間內(nèi),數(shù)據(jù)會緩慢地升高或降低,若將感知數(shù)據(jù)看作字符串用基于字典的方法來壓縮,則不容易找到較長的參考數(shù)據(jù),因此無法取得好的壓縮效果。
發(fā)明內(nèi)容
本發(fā)明涉及一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,用以解決傳感網(wǎng)絡(luò)傳輸1比特數(shù)據(jù)所消耗的能量相當(dāng)于執(zhí)行3000條指令的能耗即通信所需能量遠大于計算所開銷的能量的技術(shù)問題。
本發(fā)明是采用以下技術(shù)手段解決上述技術(shù)問題的一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,包括以下步驟
步驟一各傳感節(jié)點采樣數(shù)據(jù),并將采樣數(shù)據(jù)發(fā)送到測控分機;步驟二 測控分機依據(jù)接收到的采樣數(shù)據(jù)組,計算出一參考值;步驟三測控分機將各采樣數(shù)據(jù)與參考值作差,得到相對游程長度數(shù)據(jù);步驟四測控分機對各相對游程長度數(shù)據(jù)進行編碼,形成二進制編碼數(shù)據(jù),一組相對游程長度數(shù)據(jù)編碼后形成編碼數(shù)據(jù)組;
步驟五測控分機將編碼數(shù)據(jù)組和參考值傳輸?shù)綔y控主機;步驟六測控主機依據(jù)參考值解碼編碼數(shù)據(jù)組得到各采樣數(shù)據(jù)。所述步驟三的參考值可以按如下步驟計算計算采樣數(shù)據(jù)組的平均值avg ;
統(tǒng)計采樣數(shù)據(jù)組中各值的出現(xiàn)概率
Pi,依據(jù)公式H= -TtPim^Pi計算該采樣數(shù)據(jù)組信息熵H ;
最后依據(jù)公式h+Hl計算出參考值。「1為向上取整符號。進一步,所述步驟四包括以下步驟
步驟1 測控分機取相對游程長度數(shù)據(jù)值L,依據(jù)公式x = |iog3(:ii| + 5)l-1,計算出編碼
數(shù)據(jù)后綴代碼的長度X ;
步驟2 依據(jù)公式ρ-計算出y值,取y值作為后綴,后綴代碼長度為χ位;
步驟3 用編碼數(shù)據(jù)的前綴代碼標識相對游程長度數(shù)據(jù)的正負,前綴代碼的長度也為χ位,前綴數(shù)值二進制代碼的最后一位與其前面所有比特位的值相異,前綴和后綴共同組成編碼數(shù)據(jù);
步驟4 重復(fù)步驟1至步驟4,直至將所有相對游程長度數(shù)據(jù)編碼完畢,形成編碼數(shù)據(jù)組。所述前綴的二進制代碼最后一位為0代表正/負數(shù),最后一位為1代表負/正數(shù)。相對游程長度數(shù)組中絕對值最大的數(shù),其絕對值在[16,64]區(qū)間時,壓縮效果最優(yōu)。更進一步,步驟六中所述解碼包括下列步驟
步驟.X :有限狀態(tài)機發(fā)裝載信號將寄存器中的參考值裝載入第二計數(shù)器;
步驟②有限狀態(tài)機按位讀入輸入信號,即編碼數(shù)據(jù),根據(jù)信號跳變的發(fā)生確定前綴代
碼長度并存儲于第三計數(shù)器中,同時根據(jù)所述跳變是從高電平向低電平跳變或低電平向高電平跳變來確定相對游程長度數(shù)據(jù)的正或負;
步驟③有限狀態(tài)機根據(jù)第三計數(shù)器中存儲的前綴代碼長度數(shù)值,讀入相同長度的后
綴代碼數(shù)據(jù),并將后綴代碼變換后存儲于第一計數(shù)器中,所述變換指在χ位長度的后綴代碼高位方向的第(x+l)位上置值1,形成(x+1)位長度的二進制代碼;=步驟有限狀態(tài)機根據(jù)相對游程長度數(shù)據(jù)的正或負控制第二計數(shù)器做與第一計數(shù)器的值相關(guān)的若干次自增或自減操作,得到解碼值;
步驟:!有限狀態(tài)機依據(jù)第二計數(shù)器存放的解碼值,輸出解碼信號;
步驟.1:重復(fù)步驟.Ξ:至步驟S:直至所有數(shù)據(jù)解碼結(jié)束。所述步驟S具體為
步驟(1)在第一計數(shù)器的值大于4的情況下,有限狀態(tài)機根據(jù)相對游程數(shù)據(jù)的正/負控制第二計數(shù)器自增/減1 ;
步驟O)有限狀態(tài)機控制第一計數(shù)器自減1 ;
步驟(3)重復(fù)步驟(1)至(3),直至第一計數(shù)器的值等于4,遂得到解碼值。所述步驟S的輸出解碼信號可以為有限狀態(tài)機輸出m位0/1,并在最后輸出一位1/0,m為解碼值。本發(fā)明的優(yōu)點在于針對傳感網(wǎng)絡(luò)感知數(shù)據(jù)重復(fù)性強,差值小的特點,提出一種基于信息熵的相對游程編碼方法,取得很好的壓縮效果。只傳輸壓縮后的數(shù)據(jù),可以減少數(shù)據(jù)傳輸量,減少功耗,增加傳感網(wǎng)絡(luò)電池的壽命。
圖1為本發(fā)明中解碼單元的結(jié)構(gòu)框圖。
具體實施方式
下面結(jié)合實施例對本發(fā)明作進一步的描述,以使本領(lǐng)域的技術(shù)人員可以更好的理解本發(fā)明并能予以實施,但所舉實施例不作為對本發(fā)明的限定。本發(fā)明所述的數(shù)據(jù)編碼方法采用不等間距編碼方式,即在進行分組時,每個組的大小根據(jù)其出現(xiàn)頻率進行了適當(dāng)調(diào)整,這新的分組更符合實際數(shù)據(jù)中游程的分布。為了便于說明,不失一般性,設(shè)某個測控節(jié)點有十個溫度傳感節(jié)點,其采樣數(shù)據(jù)值分別為 15、15、17、16、15、15、15、16、15、15。參考值的計算過程
上述十個溫度傳感節(jié)點采樣數(shù)據(jù)的平均值為15. 4 ;值15出現(xiàn)的概率為0. 7,值16出現(xiàn)的概率為0. 2,值17出現(xiàn)的概率為0. 1 ;
按信息熵公式H= -YtPim^Pi進行計算,其中Pi為各值出現(xiàn)的概率,得到
H= -TiPim^ P1 = -(0.7*lg 0.7 + Ollt-Ig0.2 + 01 *lg 01) = 0. 348225373 ;
將H與平均值相加后得到15. 74822537,向上取整后得到16。即,本組采樣數(shù)據(jù)基于熵的參考值為16。在其他實施例中,參考值也可以取采樣數(shù)據(jù)組的平均值、最大值、最小值等。編碼過程
計算每個采樣數(shù)據(jù)相對于基于熵的參考值16的相對游程長度,經(jīng)計算,相對游程長度分別為-1,-1,+1,0, -1,-1,-1,0, -1,-1。參照表1,將相對游程數(shù)據(jù)進行分組,每個相對游程數(shù)據(jù)可能被分入Ai、A2、A3、……、As中任一分組中,最大分組序號5 =胃 10|:(£二1 一 )2,其中Lmax為相對游程長
度中最大絕對值,「1為取整符號。本實施例中,Lfflax=I, S=I0在其他實施例中,Lfflax的取值范圍為[16,64]時,壓縮效果最優(yōu)。具體到一個長度為L的相對游程長度,分組時將分屬于第η個分組An,其中,
;.:=「%:(|1|-5)二2,11為正整數(shù),—二為向上取整符號,“ I I ”為取絕對值符號;如表1所示,第《個分組Afl中包含2η+1個元素,每個相對游程長度對應(yīng)所屬分組中的一個代碼字;依據(jù)公式χ =計算編碼數(shù)據(jù)后綴代碼的長度χ,再依據(jù)公式r=計
算出y值,取y值作為后綴,后綴代碼長度為χ位。本實施例中,三種相對游程長度值0、+1和-1均分入A1組,具體計算過程如下相對游程長度為-1時,n=l,x=2,y=l-4+4=l,對應(yīng)后綴二進制代碼為01 ;相對游程長度
為0時,n=l, x=2, y=0-4+4=0,對應(yīng)后綴二進制代碼為00 ;相對游程長度為1時,n=l, x=2,y=l-4+4=l,對應(yīng)后綴二進制代碼為01 ;
再冠以表示正負的前綴,本實施例中三個相對游程長度值均分AA1組,因此前綴代碼長度也均為2。因此,以二進制代碼10表示正,二進制代碼01表示負;
最終前綴和后綴共同組成的十個采樣數(shù)據(jù)相對游程長度的編碼為0101,0101,1001,1000,0101,0101,0101,1000,0101,0101。在其他實施例中,也可以用01表示正,10表示負。測控分機將上述編碼和參考值16傳輸給測控主機。
權(quán)利要求
1.一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,其特征在于,包括以下步驟步驟一各傳感節(jié)點采樣數(shù)據(jù),并將采樣數(shù)據(jù)發(fā)送到測控分機;步驟二 測控分機依據(jù)接收到的采樣數(shù)據(jù)組,計算出一參考值;步驟三測控分機將各采樣數(shù)據(jù)與參考值作差,得到相對游程長度數(shù)據(jù);步驟四測控分機對各相對游程長度數(shù)據(jù)進行編碼,形成二進制編碼數(shù)據(jù),一組相對游程長度數(shù)據(jù)編碼后形成編碼數(shù)據(jù)組;步驟五測控分機將編碼數(shù)據(jù)組和參考值傳輸?shù)綔y控主機;步驟六測控主機依據(jù)參考值解碼編碼數(shù)據(jù)組得到各采樣數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,其特征在于,所述步驟四具體包括以下步驟步驟1 測控分機取相對游程長度數(shù)據(jù)值L,依據(jù)公式,計算出編碼數(shù)據(jù)后綴代碼的長度χ ;步驟2 依據(jù)公式If= |£|-2Χ-4計算出y值,取y值作為后綴,后綴代碼長度為χ位;步驟3 用編碼數(shù)據(jù)的前綴代碼標識相對游程長度數(shù)據(jù)的正負,前綴代碼的長度也為χ位,前綴數(shù)值二進制代碼的最后一位與其前面所有比特位的值相異,前綴和后綴共同組成編碼數(shù)據(jù);步驟4 重復(fù)步驟1至步驟4,直至將所有相對游程長度數(shù)據(jù)編碼完畢,形成編碼數(shù)據(jù)組。
3.根據(jù)權(quán)利要求1或2的所述的一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,其特征在于,所述步驟三的參考值計算步驟如下計算采樣數(shù)據(jù)平均值avg ;統(tǒng)計采樣數(shù)據(jù)組中各值的出現(xiàn)概率,依據(jù)公式H=-Z於”g P:'計算該采樣數(shù)據(jù)組信息熵H ;依據(jù)公式^ + H"計算出參考值。
4.根據(jù)權(quán)利要求2所述的一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,其特征在于,所述前綴部分二進制代碼最后一位為0代表正/負數(shù),最后一位為1代表負/正數(shù)。
5.根據(jù)權(quán)利要求2所述的一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,其特征在于,相對游程長度數(shù)據(jù)組中絕對值最大的數(shù),其絕對值在[16,64]區(qū)間。
6.根據(jù)權(quán)利要求1、2、4或5中任一項所述的一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,其特征在于,所述步驟六具體包括下列步驟步驟Φ 有限狀態(tài)機發(fā)裝載信號將寄存器中的參考值裝載入第二計數(shù)器;步驟3 有限狀態(tài)機按位讀入輸入信號,即編碼數(shù)據(jù),根據(jù)信號跳變的發(fā)生確定前綴代碼長度并存儲于第三計數(shù)器中,同時根據(jù)所述跳變是從高電平向低電平跳變或低電平向高電平跳變來確定相對游程長度數(shù)據(jù)的正或負;步驟$ 有限狀態(tài)機根據(jù)第三計數(shù)器中存儲的前綴代碼長度數(shù)值,讀入相同長度的后綴代碼數(shù)據(jù),并將后綴代碼變換后存儲于第一計數(shù)器中,所述變換指在X位長度的后綴代碼高位方向的第(X+1)位上置值1,形成(X+1)位長度的二進制代碼;步驟;I:有限狀態(tài)機根據(jù)相對游程長度數(shù)據(jù)的正或負控制第二計數(shù)器做與第一計數(shù)器的值相關(guān)的若干次自增或自減操作,得到解碼值;步驟S 有限狀態(tài)機依據(jù)第二計數(shù)器存放的解碼值,輸出解碼信號;步驟S 重復(fù)步驟2至步驟S直至所有數(shù)據(jù)解碼結(jié)束。
7.根據(jù)權(quán)利要求6所述的一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,其特征在于,所述步m:具體為步驟(1)在第一計數(shù)器的值大于4的情況下,有限狀態(tài)機根據(jù)相對游程數(shù)據(jù)的正/負控制第二計數(shù)器自增/減1 ;步驟O)有限狀態(tài)機控制第一計數(shù)器自減1 ;步驟(3)重復(fù)步驟(1)至(3),直至第一計數(shù)器的值等于4,遂得到解碼值。
8.根據(jù)權(quán)利要求6所述的一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,其特征在于,所述步驟Φ的輸出解碼信號指有限狀態(tài)機輸出m位0/1,并在最后輸出一位1/0,m為解碼值。
全文摘要
本發(fā)明公開了一種傳感網(wǎng)絡(luò)數(shù)據(jù)壓縮編碼/解碼方法,主要應(yīng)用于無線網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別是用于基于無線傳感器網(wǎng)絡(luò)的糧情測控系統(tǒng)。本發(fā)明公布的一種典型技術(shù)方案包括以下步驟傳感節(jié)點采樣數(shù)據(jù)并發(fā)送到測控分機;測控分機依據(jù)采樣數(shù)據(jù)組計算出一參考值;測控分機將各采樣數(shù)據(jù)與參考值作差,得到相對游程長度數(shù)據(jù);測控分機對各相對游程長度數(shù)據(jù)進行編碼,相對游程長度數(shù)據(jù)組編碼后形成編碼數(shù)據(jù)組;測控分機將編碼數(shù)據(jù)組和參考值傳輸?shù)綔y控主機;測控主機解碼編碼數(shù)據(jù)獲得各相對游程長度數(shù)據(jù);測控主機將各相對游程長度與參考值相加得到采樣數(shù)據(jù)。本發(fā)明的優(yōu)點在于以減少浮點型數(shù)值數(shù)據(jù)的傳輸量,提高傳輸效率并降低能耗。
文檔編號H04L1/00GK102394718SQ20111024683
公開日2012年3月28日 申請日期2011年8月26日 優(yōu)先權(quán)日2011年8月26日
發(fā)明者周健, 孫秀芳, 詹文法, 韓建華 申請人:韓建華