陳廣勇,張潔昕
(公安部第三研究所,上海 200031)
隨著無線和嵌入式技術(shù)的日益成熟和廣泛應(yīng)用,低成本、低功耗、體積小、可短距離無線通信的傳感器節(jié)點(diǎn)構(gòu)成的無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,簡稱WSN)正得到越來越多的研究人員關(guān)注。無線傳感器網(wǎng)絡(luò)由部署在監(jiān)測區(qū)域內(nèi)的大量傳感器節(jié)點(diǎn)組成,可以在各種環(huán)境進(jìn)行監(jiān)測任務(wù),傳統(tǒng)無線傳感網(wǎng)絡(luò)應(yīng)用有軍事、檢測、應(yīng)急、環(huán)境等領(lǐng)域,新興應(yīng)用將涉及家用、企業(yè)管理、保健、交通等領(lǐng)域[1][2],并且將會(huì)對人類未來的生活方式產(chǎn)生巨大影響。然而目前的WSN的技術(shù)還不夠成熟,在WSN技術(shù)應(yīng)用到實(shí)際中之前還需要進(jìn)一步的發(fā)展和研究。
無線傳感器網(wǎng)絡(luò)由大量節(jié)點(diǎn)隨機(jī)分布組成,由于每個(gè)傳感器節(jié)點(diǎn)通常都是由干電池供電,并且在大多數(shù)環(huán)境下不能較頻繁的更換電池,因此節(jié)點(diǎn)能耗就成為了當(dāng)前制約無線傳感器網(wǎng)絡(luò)發(fā)展的重要瓶頸之一。文獻(xiàn)[3]指出由于相鄰節(jié)點(diǎn)處在相同的環(huán)境中,鄰居節(jié)點(diǎn)所采集的數(shù)據(jù)表現(xiàn)出很大程度上的時(shí)間與空間冗余。文獻(xiàn)[4]的研究證明:在無線網(wǎng)絡(luò)中的100米距離間傳送1比特信息所消耗的能量相當(dāng)于執(zhí)行3000個(gè)指令所消耗的能量。采用動(dòng)態(tài)路由機(jī)制或網(wǎng)內(nèi)數(shù)據(jù)聚合方式在一定程度上可以延長網(wǎng)絡(luò)的生存期,但是數(shù)據(jù)聚合只適用于僅對檢測目標(biāo)的統(tǒng)計(jì)結(jié)果感興趣,而不關(guān)心中間數(shù)據(jù)記錄的應(yīng)用。對需要同時(shí)保留中間觀測數(shù)據(jù)的應(yīng)用,數(shù)據(jù)聚合方法就不能使用。所以在無線傳感器網(wǎng)絡(luò)中數(shù)據(jù)傳輸是必不可少的,因此若在傳輸數(shù)據(jù)前對其進(jìn)行壓縮,則能減少數(shù)據(jù)間的冗余,進(jìn)而可以有效降低節(jié)點(diǎn)的能耗,從而延長整個(gè)網(wǎng)絡(luò)的生存周期。
本文將首先對無線傳感器網(wǎng)絡(luò)中能量消耗進(jìn)行分析,然后重點(diǎn)針對當(dāng)前幾種用于無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)壓縮算法進(jìn)行詳細(xì)描述,并分析數(shù)據(jù)壓縮在無線傳感器網(wǎng)絡(luò)中應(yīng)用的優(yōu)勢,最后給出結(jié)論。
無限傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)能耗的分配可以大致分成三個(gè)部分:數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)傳輸。根據(jù)研究文獻(xiàn)[5]表明,在這三個(gè)部分中數(shù)據(jù)傳輸消耗了節(jié)點(diǎn)能耗的80%左右,因此如果能夠通過數(shù)據(jù)壓縮減少數(shù)據(jù)大小,則將會(huì)降低數(shù)據(jù)傳輸?shù)哪芎?。在文獻(xiàn)[6]中作者針對數(shù)據(jù)通信與數(shù)據(jù)處理上的能耗進(jìn)行了比較實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明:節(jié)點(diǎn)在進(jìn)行一個(gè)簡單32位加法計(jì)算所消耗的能量是0.86nj,傳送一位數(shù)據(jù)所消耗的能量是0.4uj,則通過廣播媒介傳送一位數(shù)據(jù)所消耗的能量是進(jìn)行一個(gè)加法計(jì)算消耗能量近480多倍,如果在源數(shù)據(jù)字節(jié)串中執(zhí)行壓縮操作,壓縮一位數(shù)據(jù)大小則相當(dāng)于節(jié)省了480多條加法計(jì)算的能耗,這將大大減少節(jié)點(diǎn)總體能耗。
當(dāng)前的流行的數(shù)據(jù)壓縮算法有Huffman壓縮算法、LZW(LZ77、LZ78)算法、算術(shù)編碼、預(yù)測編碼、變化編碼等。但是這些算法不能應(yīng)用在無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)上,其原因主要有兩點(diǎn):1)傳感器節(jié)點(diǎn)硬件限制,上述壓縮算法均需要強(qiáng)大的計(jì)算能力,一般的傳感器節(jié)點(diǎn)不能滿足其硬件要求。2)上述算法規(guī)模太大,算法寫入傳感器節(jié)點(diǎn)后,自身剩余內(nèi)存容量不多,不能完成其在監(jiān)測過程中對于數(shù)據(jù)的存儲(chǔ)任務(wù)。但是當(dāng)今硬件技術(shù)突飛猛進(jìn),設(shè)計(jì)出一個(gè)有效的、針對性強(qiáng)的數(shù)據(jù)壓縮算法對于無線傳感器網(wǎng)絡(luò)地發(fā)展有著重大意義。在這部分將詳細(xì)介紹幾種適用于無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)壓縮機(jī)制。
圖1 數(shù)據(jù)傳輸路徑
在該算法中若采集很多唯一片段的數(shù)據(jù),并且數(shù)據(jù)的發(fā)送順序?qū)τ趹?yīng)用不重要時(shí),則可以利用那些數(shù)據(jù)片段的排列順序來表達(dá)其它冗余數(shù)據(jù)信息,并將其發(fā)送給接受者。例如:圖1中四個(gè)節(jié)點(diǎn)(N1、N2、N3、N4)發(fā)送數(shù)據(jù)給聚合節(jié)點(diǎn)Na時(shí),假設(shè)每個(gè)節(jié)點(diǎn)采集數(shù)據(jù)值是0~5,由于N1、N2、N3三個(gè)節(jié)點(diǎn)的排列順序有3!=6種可能,恰好能夠表達(dá)N4節(jié)點(diǎn)所采集的數(shù)據(jù)值,則聚合節(jié)點(diǎn)Na可以利用N1、N2、N3三個(gè)節(jié)點(diǎn)的排列順序表達(dá)N4節(jié)點(diǎn)所采集的數(shù)據(jù)值并將其發(fā)送給上層節(jié)點(diǎn),此時(shí)形成三個(gè)節(jié)點(diǎn)與數(shù)值間的一種映射關(guān)系如表1所示。
排列順序 數(shù)值N1,N2,N3 0 N1,N3,N2 1 N2,N1,N3 2 N2,N3,N1 3 N3,N1,N2 4 N3,N2,N1 5
對于通常情況下,假設(shè)N個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)給匯聚節(jié)點(diǎn),K為節(jié)點(diǎn)采集數(shù)據(jù)值的范圍(例:若每個(gè)節(jié)點(diǎn)產(chǎn)生4位值,則K=24),D為整個(gè)網(wǎng)絡(luò)中節(jié)點(diǎn)的個(gè)數(shù),每個(gè)節(jié)點(diǎn)均有一個(gè)唯一ID 號,L為節(jié)點(diǎn)在匯聚節(jié)點(diǎn)處丟棄的數(shù)據(jù)包個(gè)數(shù)。則要用(N-L)個(gè)數(shù)據(jù)包來表示所有N個(gè)數(shù)據(jù)包,可以表達(dá)[(N-L)!]個(gè)數(shù)據(jù)值。在N個(gè)節(jié)點(diǎn)中,可丟棄的節(jié)點(diǎn)ID個(gè)數(shù)為,每個(gè)節(jié)點(diǎn)可以表示KL個(gè)數(shù)據(jù)值,因此所丟棄的數(shù)據(jù)值必須包含在[(N-L)!]中,則下列不等式必須成立:
理論上來說當(dāng)D=27,K=24,N≤100時(shí),仿真圖如圖2所示:
圖2 壓縮率仿真圖
若取N=100,壓縮率可以保證在44%,理論上的壓縮上限為53%,此壓縮方法具有高壓縮率和算法簡潔的特點(diǎn),適合應(yīng)用于無線傳感器網(wǎng)絡(luò)中。但是這種方式的缺點(diǎn)是數(shù)據(jù)值不能有效的與排列映射,并且算法所要求映射表會(huì)隨著傳感器匯聚節(jié)點(diǎn)數(shù)目的增加成指數(shù)級增長,從另一個(gè)方面給傳感器節(jié)點(diǎn)帶來了很大的負(fù)擔(dān)。
基于管道的壓縮方式PINCO(PipelinedIn-Network Compression Scheme)在文獻(xiàn)[8]中詳細(xì)進(jìn)行了介紹分析。核心思想是:在聚合節(jié)點(diǎn)收到不同節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)后,把各個(gè)節(jié)點(diǎn)的數(shù)據(jù)包整合成一個(gè)單一的數(shù)據(jù)包,在整合過程中刪除包頭等冗余數(shù)據(jù)。例如:數(shù)據(jù)包的格式為<測量數(shù)據(jù)、節(jié)點(diǎn)ID、時(shí)間戳>,那么整合后的數(shù)據(jù)包格式可以為<共享前綴、后綴列表、節(jié)點(diǎn)ID列表、時(shí)間戳列表>。圖3為基于管道壓縮算法的例子,在這個(gè)例子中數(shù)據(jù)總比特由33壓縮到27。
圖3 管道壓縮算法
在存儲(chǔ)每個(gè)數(shù)據(jù)包之前,數(shù)據(jù)會(huì)被轉(zhuǎn)化成為一個(gè)數(shù)據(jù)組GD(Groupof Data),在每個(gè)GD的生存周期里,若兩個(gè)GD要相互融合壓縮的話,它們必須擁有相同的共享前綴。至此會(huì)不斷有新的GD與已有GD進(jìn)行融合壓縮,進(jìn)而達(dá)到數(shù)據(jù)壓縮的目的。給GD數(shù)據(jù)組提供大的緩沖可以提高壓縮率,但是這樣做將會(huì)增加網(wǎng)絡(luò)延遲,若此網(wǎng)絡(luò)應(yīng)用于在線檢測,將會(huì)造成巨大的影響。
共享前綴是非常關(guān)鍵的數(shù)據(jù)位,在將不同的數(shù)據(jù)包壓縮成一個(gè)數(shù)據(jù)包時(shí),其長度(spl)是一個(gè)系統(tǒng)級參數(shù)用以指定在傳感器采集的數(shù)據(jù)中有多少相似度。如果得到的共享前綴與測量數(shù)據(jù)中有較長的相似性,壓縮率會(huì)增加。相反,若傳感器測量的數(shù)據(jù)值沒有相似性的話,即使我們?nèi)≥^長的共享前綴,這個(gè)算法的有效性也會(huì)下降,并且其算法有效性主要依靠共享前綴的長度。假設(shè)傳感器讀取數(shù)據(jù)服從參數(shù)為(μ,σ2)高斯分布,若要得到高壓縮率應(yīng)該選擇適中的spl值。既不能太大,因?yàn)樘髸?huì)造成緩存中的數(shù)據(jù)組減少,也不能太小,因?yàn)樘?huì)造成很大的后綴值,依據(jù)分析壓縮率(CR)應(yīng)滿足以下公式:
其中x為任意傳感器,n為其讀取數(shù)據(jù)值,E[SP]是共享前綴的期待值,假設(shè)最優(yōu)的sql就可以被找到。
(4)西研究區(qū)見25條礦(化)體,各礦體呈脈狀斷續(xù)分布,與含礦地質(zhì)體的產(chǎn)狀相一致,在本次工作中大多數(shù)礦體僅為地表單工程控制,多數(shù)礦體缺乏深部的了解。借鑒CuⅫ礦體經(jīng)鉆探施工發(fā)現(xiàn):CuⅫ礦體不僅地表相連,而且沿斜深方向也比較穩(wěn)定。照此辦法,今后應(yīng)用硐探和鉆探手段對其它礦(化)體進(jìn)行中深部的探索,以便擴(kuò)大礦體規(guī)模增加資源量。
此算法是用高數(shù)據(jù)傳輸延遲來換取傳輸數(shù)據(jù)的低能耗。收集到的傳感器數(shù)據(jù)被存儲(chǔ)在一個(gè)匯聚節(jié)點(diǎn)的緩沖區(qū)內(nèi)用以延長時(shí)間。在這段時(shí)間內(nèi)數(shù)據(jù)包融合成為一個(gè)包,在一個(gè)數(shù)據(jù)包中的冗余數(shù)據(jù)將以最小化的數(shù)據(jù)傳輸方式轉(zhuǎn)移。其優(yōu)點(diǎn)是共享前綴系統(tǒng)可以選擇為節(jié)點(diǎn)號或是時(shí)間戳等。
在文獻(xiàn)[9]中作者提出了一種新的算法ALVQ(Adoptive Learning VectorQuantization)用于壓縮歷史數(shù)據(jù)信息。其核心思想是:ALVQ算法創(chuàng)建一個(gè)碼本(CodeBook),這個(gè)碼本用于收集數(shù)據(jù)明顯的特征。依據(jù)這些特征其他數(shù)據(jù)可以應(yīng)用分段編碼方式(Piece-wise Encode)進(jìn)行數(shù)據(jù)壓縮。此外在此基礎(chǔ)上應(yīng)用2層分段線性回歸方式(2-Level Piece-wise LinearRegression)進(jìn)行碼本的更新,從而節(jié)省數(shù)據(jù)傳輸過程中的帶寬以及提高數(shù)據(jù)壓縮精度。在此算法中網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)應(yīng)用典型的LEACH模型,如圖4所示在同一個(gè)簇中的節(jié)點(diǎn)共用簇頭節(jié)點(diǎn)的通信帶寬,也就是說當(dāng)節(jié)點(diǎn)與簇頭結(jié)點(diǎn)傳輸數(shù)據(jù)時(shí),它們擁有相同的數(shù)據(jù)傳輸帶寬。
圖4 LEACH模型拓?fù)鋱D
ALVQ算法設(shè)定n為節(jié)點(diǎn)最新得到的數(shù)據(jù)值;TotalBand為帶寬上限;MCode是碼本的最大值以及Cbase是當(dāng)前碼本的大小,因此 |Cbase|<MCode。
原始碼本由采集到的數(shù)據(jù)集構(gòu)成,而數(shù)據(jù)集由采集的數(shù)據(jù)x按照如下操作得來:首先將采集的數(shù)據(jù)x簡單分割成為大小為W(W=)的數(shù)據(jù)段DPs(Data Piece),由于傳感器節(jié)點(diǎn)和基站的緩存限制,碼本大小限制為MCode??梢詫Φ谝粋€(gè)DPs(MCode/W)應(yīng)用分段回歸方法來估計(jì)其它的DPs,這樣就形成了一個(gè)初始的字典。之后在數(shù)據(jù)X中的每個(gè)DPs,可以在碼本中找到一個(gè)最優(yōu)的CDP(Code DataPiece)與其映射,定義這個(gè)X中的DP在碼本中的值為CDPi,其更新的CDPi應(yīng)滿足:
當(dāng)初始碼本建立完成后,傳感器節(jié)點(diǎn)不斷的將從外界中采集的數(shù)據(jù)存入緩存區(qū)中,當(dāng)緩存區(qū)存滿數(shù)據(jù),則將其將其分割成大小為W(W=)的數(shù)據(jù)間隔,對每個(gè)數(shù)據(jù)間隔做分段回歸變換使之與碼本中的CDP相對應(yīng),直到最優(yōu)的CDP出現(xiàn),之后將估計(jì)參數(shù)作為壓縮標(biāo)識發(fā)送給基站。
ALVQ應(yīng)用LFU(Least Frequently Use)算法對其中過時(shí)的碼本數(shù)據(jù)段進(jìn)行更新并壓縮新的碼本數(shù)據(jù)段,將其與壓縮標(biāo)識一起發(fā)送給基站。運(yùn)用2層分段線性回歸法,可以有效的提高壓縮精度并且可以有效的節(jié)省帶寬。在傳輸數(shù)據(jù)階段ALVQ提出了一種稱為動(dòng)態(tài)帶寬分配的策略,如圖5所示,簇頭節(jié)點(diǎn)根據(jù)每個(gè)傳感器節(jié)點(diǎn)的壓縮效率分配不同的傳輸帶寬,使低效率的壓縮節(jié)點(diǎn)可以得到更多的帶寬,而高效率的壓縮節(jié)點(diǎn)得到較少的帶寬,從而平衡了整個(gè)網(wǎng)絡(luò)的帶寬分配,減少了網(wǎng)絡(luò)能耗,延長網(wǎng)絡(luò)生存周期。
圖5 動(dòng)態(tài)分配帶寬圖
基本思想是對相關(guān)的信源進(jìn)行分布式獨(dú)立編碼,而在解碼端進(jìn)行聯(lián)合解碼。分布式信源編碼由于其固有的編碼簡單、不需節(jié)點(diǎn)間通信等特點(diǎn),非常適合于無線傳感器網(wǎng)絡(luò)中數(shù)據(jù)壓縮的應(yīng)用,由于其充分利用了傳感器數(shù)據(jù)間的相關(guān)性,所以壓縮性能非常高。文獻(xiàn)[10]介紹了分布式信源編碼方式的核心思想,如圖6所示,在編碼時(shí)圖中傳感器節(jié)點(diǎn)A不進(jìn)行數(shù)據(jù)壓縮,直接發(fā)送數(shù)據(jù)Y,傳感器節(jié)點(diǎn)B用信道碼對數(shù)據(jù)X進(jìn)行編碼產(chǎn)生校驗(yàn)信息P,B節(jié)點(diǎn)只發(fā)送校驗(yàn)信息P;在解碼時(shí)把節(jié)點(diǎn)A的數(shù)據(jù)Y看作為節(jié)點(diǎn)B數(shù)據(jù)X經(jīng)過一個(gè)有噪信道后的誤碼數(shù)據(jù),那么就可以用節(jié)點(diǎn)B傳過來的校驗(yàn)信息P對Y進(jìn)行信道解碼,從而得到重建的節(jié)點(diǎn)B數(shù)據(jù)X。因?yàn)樾r?yàn)信息P一般都遠(yuǎn)小于原始信息X,所以節(jié)點(diǎn)B就實(shí)現(xiàn)了數(shù)據(jù)壓縮的目的。
圖6 分布式信源編碼理論壓縮方案
在文獻(xiàn)[11]中考慮了如圖7中的對兩個(gè)相關(guān)信源進(jìn)行無損編碼的情況。文章給出了兩個(gè)相關(guān)信源編碼問題的碼率可達(dá)域,如圖8所示。在A點(diǎn)對X1編碼的碼率為RX1=H(X1),而對X2進(jìn)行壓縮時(shí)所需要的碼率僅為RX2=H(X2 | X1)。同樣在B點(diǎn)對X2編碼的碼率為RX2=H(X2),而對X1進(jìn)行壓縮時(shí)所需要的碼率僅為RX1=H(X1 | X2)。這就是在解碼端具有邊信息的無損信源編碼問題的理論極限。
圖7 多信源編碼系統(tǒng)
圖8 確定信息可達(dá)域
用一個(gè)簡單的例子來說明分布式數(shù)據(jù)壓縮,設(shè)定有兩個(gè)3位的數(shù)據(jù)序列(X和Y),并且X與Y之間的海明距離不會(huì)超過1個(gè)數(shù)據(jù)位,如果解碼器知道的信息Y以及X與Y之間的海明距離只有1位,則X=111與X=000就不能有效的分辨,同理X=001和110,X=010和101以及X=01和110這三組也不用區(qū)分,所以X的序列可以組合成4種集合:
Set1=(000,111):00
Set2=(001,110):01
Set3=(010,101):10
Set4=(011,100):11
若X=010,Y=110,則解碼器根據(jù)圖7所示將Y作為邊信息(SideInformation),X的序列集(set)為10作為部分信息(Partial Information),根據(jù)X的序列集10以及與Y之間的海明距離2則可以挑選出X=010。所以無論X是否知道Y的序列值,X都可以將3位數(shù)據(jù)壓縮到2位數(shù)據(jù)。分布式壓縮算法思想可以應(yīng)用于離散數(shù)據(jù)也可應(yīng)用于連續(xù)數(shù)據(jù)中,并且也可以應(yīng)用于無數(shù)據(jù)丟失和有數(shù)據(jù)丟失的壓縮方法中,因此此方法具有較好的適用性。
無線傳感器網(wǎng)絡(luò)的飛速發(fā)展在帶來新便捷的同時(shí)也提出了眾多亟待解決的問題,如何節(jié)省能耗從而達(dá)到整體網(wǎng)絡(luò)生存期的延長成為當(dāng)今制約無線傳感器網(wǎng)絡(luò)發(fā)展的重大瓶頸之一。本文通過介紹幾種當(dāng)今比較重要的數(shù)據(jù)壓縮機(jī)制來解釋如何通過數(shù)據(jù)壓縮降低節(jié)點(diǎn)能耗,從而達(dá)到無線傳感器網(wǎng)絡(luò)生存期的延長。在本篇論文中,重點(diǎn)介紹了四種不同的數(shù)據(jù)壓縮方式:基于管道的壓縮方式、基于管道的壓縮方式、自適應(yīng)適量量化壓縮方式以及分布式信源編碼壓縮方式,盡管這些方法一直在優(yōu)化發(fā)展,但是實(shí)驗(yàn)結(jié)果表明其壓縮率和能耗降低還是顯有成效的,他們之中很有可能會(huì)解決無線傳感器網(wǎng)絡(luò)能耗限制的途徑之一。
[1]EstrinD,Govindan R,Heidemann J,et al.Scalable coordination in sensor network[J].IEEEComputer Society,1999 :263-270.
[2]L.Akyildiz,W.Su,Y.Sankarasubramaniam,andE.Cayirci,A Survey on Sensor Networks.IEEECommunications Magazine,Vol.40,No.8,2002.102-114.
[3]Compression and Storage Schemes in a SensorNetwork with Spatial and Temporal CodingTechniques.
[4]J.Pottie and W.J.Kaiser.Wireless Integratednetwork sensors[J].Communications of the ACM,vol.43,May 2000:51-58.
[5]Kimura,N.Latifi,S.A survey on data compressionin wireless sensor networks information technologyCoding and Computing[J].ITCC 2005.InternationalConference,on 4-6 April 2005:8-13.
[6]Kenneth Barr,KrsteAsanovic.Energy AwareLossless Data Compression.In First InternationalConference on Mobile Systems,Applications,andServices,May 2003.
[7]D.Petrovic,R.C.Shah,K.Ramchandran,J.Rabaey.Data Funneling: Routing withAggregation and Compression for Wireless SensorNetworks.In Proceedings of First IEEE InternationalWorkshop on Sensor Network Protocols andApplications,May 2003.
[8]T.Arici,B.Gedik,Y.Altunbasak,and L.Liu.PINCO: a Pipelined In-Network Compression Schemefor Data Collection in Wireless Sensor Networks.InProceedings of 12th International Conference onComputer Communications and Networks,October2003.
[9]Online Information Compression in SensorNetworks.
[10]S.Pradhan and K.Ramchandran.Distributedsource coding: Symmetric rates and applications tosensor networks.In Proc.DCC’00,Snowbird,UT,2000:363-372.
[11]D.Slepian and J.K.Wolf.Noiseless Coding ofCorrelated Information Sources.IEEE Transactionson Information Theory,19(4),1973:471-480.