本發明涉及通信技術領域,更具體地,涉及一種分簇無線傳感器網絡數據收集方法及裝置。
背景技術:
目前,無線傳感器網絡被廣泛應用于環境監測、軍事探測等重要的應用場景。無線傳感器網絡利用網絡中分布的傳感器節點采集和檢測各種環境或者對象信息;通過數據收集方法將采集得到的數據傳送給基站,由基站對采集得到的數據進行集中處理。數據收集過程會產生大量的數據傳輸量和數據傳輸次數,是網絡高能耗的主要原因,因此,必需在無線傳感器網絡中設計一個低能耗的數據收集方法。
壓縮感知理論的基本思想為利用測量矩陣將高維信號映射為低維信號,如果該高維信號在某變換域是稀疏的,或者可壓縮的,且測量矩陣滿足有限等距性質(rip)條件,那么,可利用獲得的低維信號精確地恢復出高維信號。目前研究表明,密矩陣(包括高斯隨機矩陣)和稀疏矩陣(包括塊對角矩陣、膨脹圖的鄰接矩陣)在一定條件下滿足rip條件,可作為測量矩陣。
現有技術中基于壓縮感知的分簇無線傳感器網絡數據收集方法利用基于高斯隨機矩陣和塊對角矩陣的壓縮感知編碼方法壓縮采集得到的數據生成數據包,將數據包傳遞給基站,基站利用收到的數據包恢復原數據,降低了網絡能耗。相對于高斯隨機矩陣,基于塊對角矩陣的數據收集方法只需壓縮少量傳感器節點采集的數據生成一個數據包,降低了數據傳輸次數,但是要獲得與高斯隨機矩陣相同的恢復性能,需要傳遞更多的數據包,增大了數據傳輸量。
綜上所述,基于壓縮感知的分簇無線傳感器網絡數據收集方法還有待進一步提升,迫切需要一種基于稀疏矩陣的低能耗數據收集方法。
技術實現要素:
本發明提供一種克服上述問題或者至少部分地解決上述問題的分簇無線傳感器網絡數據收集方法及裝置。
根據本發明的一個方面,提供一種分簇無線傳感器網絡數據收集方法,包括:
s1,在分簇無線傳感器網絡初始化時,各簇頭生成第一隨機種子和第二隨機種子,并將所述第一隨機種子和第二隨機種子發送給基站;
s2,通過隨機游走路徑收集少數簇的測量數據,并在所述隨機游走路徑的終點匯聚成數據包后發送給基站;所述測量數據為從所述簇的全部數據中根據所述第一隨機種子隨機抽取得到的部分數據;
s3,所述基站根據接收的數據包、各簇頭的第一隨機種子和第二隨機種子構建測量矩陣,利用所述測量矩陣根據接收的數據包恢復無線傳感器網絡采集的全部數據。
根據本發明的另一個方面,還提供一種分簇無線傳感器網絡數據收集裝置,包括:
初始化模塊,用于在分簇無線傳感器網絡初始化時,各簇頭生成第一隨機種子和第二隨機種子,并將所述第一隨機種子和第二隨機種子發送給基站;
數據收集模塊,用于通過隨機游走路徑收集少數簇的測量數據,并在所述隨機游走路徑的終點匯聚成數據包后發送給基站;所述測量數據為從所述簇的全部數據中根據所述第一隨機種子隨機抽取得到的部分數據;以及
數據恢復模塊,用于所述基站根據接收的數據包、各簇頭的第一隨機種子和第二隨機種子構建測量矩陣,利用所述測量矩陣根據接收的數據包恢復無線傳感器網絡采集的全部數據。
本發明提出一種分簇無線傳感器網絡數據收集方法及裝置,通過隨機游走路徑收集和壓縮其經過的簇頭所在簇中的部分數據,通過隨機采樣選擇所述的簇中的部分數據;為構建稀疏的測量矩陣,在無線傳感器網絡初始化時,各簇頭生成兩個隨機種子并傳遞給基站,避免了在數據包中傳輸測量數據的id和簇id,有利于縮短數據包的長度而構建稀疏測量矩陣;在基站側通過稀疏測量矩陣可以準確的恢復無線傳感器網絡采集的全部數據,有效的提升基于壓縮感知的分簇無線傳感器網絡數據收集方法的恢復性能,降低網絡能耗。
附圖說明
圖1為本發明實施例分簇無線傳感器網絡數據收集方法流程圖;
圖2為本發明實施例分簇無線傳感器網絡示意圖。
具體實施方式
下面結合附圖和實施例,對本發明的具體實施方式作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。
如圖1所示,一種分簇無線傳感器網絡數據收集方法,包括:
s1,在分簇無線傳感器網絡初始化時,各簇頭生成第一隨機種子和第二隨機種子,并將所述第一隨機種子和第二隨機種子發送給基站;
s2,通過隨機游走路徑收集少數簇的測量數據,并在所述隨機游走路徑的終點匯聚成數據包后發送給基站;所述測量數據為從所述簇的全部數據中根據所述第一隨機種子隨機抽取得到的部分數據;
s3,所述基站根據接收的數據包、各簇頭的第一隨機種子和第二隨機種子構建測量矩陣,利用所述測量矩陣根據接收的數據包恢復無線傳感器網絡采集的全部數據。
其中所述隨機游走路徑上的源點、接收節點和終點均為分簇無線傳感器網絡的簇頭,所述少數簇是指所述隨機游走路徑經過的簇;所述第一隨機種子用于確定簇頭所在簇的測量數據的id,所述第二隨機種子用于確定簇頭所在簇的id。
本實施例通過隨機游走路徑收集和壓縮其經過的簇頭所在簇中的部分數據,通過隨機采樣選擇所述的簇中的部分數據;為構建稀疏的測量矩陣,在無線傳感器網絡初始化時,各簇頭生成兩個隨機種子并傳遞給基站,避免了在數據包中傳輸測量數據的id和簇id,有利于縮短數據包的長度而構建稀疏測量矩陣;在基站側通過稀疏測量矩陣可以準確的恢復無線傳感器網絡采集的全部數據,有效的提升基于壓縮感知的分簇無線傳感器網絡數據收集方法的恢復性能,降低網絡能耗。
本發明具體實施的分簇無線傳感器網絡如圖2所示,根據對網絡的分簇情況,可以從邏輯上分為傳感器層和簇頭層。
在傳感器層,傳感器節點隨機均勻地分布在無線傳感器網絡中,且被劃分成簇。傳感器節點能夠應用功率控制機制依據傳輸距離調節傳輸功率。在簇內傳輸數據時,各傳感器節點的最大傳輸距離被定義為簇半徑。
采用高能效的分布式分簇算法(heed)將傳感器節點劃分成若干簇。因為通常單位比特信息的感知、處理和通信所消耗能量是已知的,所以,heed算法利用估計得到的各個傳感器節點的剩余能量進行分簇。在heed算法初始化時,各個傳感器節點利用概率chp=cperes/e0判斷自己是否為臨時簇頭,其中,cp表示判斷能否為臨時簇頭的初始概率,eres表示估計的剩余能量,e0表示初始能量。heed算法定義了平均最小可達功率(amrp),即在臨時簇頭的簇半徑范圍內的全部傳感器節點到臨時簇頭的均方距離。heed算法進一步利用amrp進行分簇。各個傳感器節點比較在其簇半徑范圍內的全部臨時簇頭的amrp,選擇amrp最小的臨時簇頭為其最終所屬的簇頭。利用heed算法進行分簇后,兩個簇頭在彼此的簇半徑范圍內的概率很小,所以,利用heed算法獲得的簇頭以高概率服從均勻分布。
在無線傳感器網絡初始化時,傳感器節點通過gps能夠獲知各自的位置信息。通過信息交互,簇頭能夠獲知簇中傳感器節點的標識id和位置信息,簇中傳感器節點能夠獲知其簇頭的位置信息,簇頭能夠獲知其鄰居節點的標識id和位置信息。
在簇頭層,某簇頭的一跳傳輸范圍內的其他簇頭被稱為該簇頭的鄰居節點,其中所述一跳傳輸范圍足夠大,使得各個簇頭都有鄰居節點。本實施例中所述隨機游走路徑發生在簇頭層,所經過的節點都是簇頭,通過簇頭隨機抽取簇內其他傳感器節點的數據進行匯聚,在所述隨機游走路徑的終點發送匯聚生成的數據包給基站。
本實施例中,在無線傳感器網絡初始化時,建立了由各簇頭通向基站的最小生成樹路徑。
為解決現有技術問題,本實施例中,在無線傳感器網絡初始化時,各簇頭生成兩個隨機種子并傳遞給基站,其中一個隨機種子用來確定被隨機抽取的數據的標識id,另一個隨機種子用來確定在隨機游走路徑上的簇頭所在簇的標識id,避免了在數據包中加入所述的標識id,有利于縮短數據包的長度。
在一個實施例中,所述s2中進一步包括:
s2.1,基于所述分簇無線傳感器網絡的各簇頭,確定所述隨機游走路徑的源點,并根據所述源點所在簇的第一隨機種子獲取所述源點所在簇的測量數據生成數據包;
s2.2,根據所在簇的第二隨機種子,從鄰居節點中選擇一個簇頭為接收節點,向所述接收節點發送所述數據包;
s2.3,所述接收節點接收到所述數據包后,利用所述接收節點所在簇的測量數據更新所述數據包;
s2.4,當所述接收節點為所述隨機游走路徑的終點時,將所更新的數據包發送給基站;否則重復步驟s2.2、s2.3和s2.4。。
本實施例中,所述數據包中測量值是少數簇中的部分數據之和,所述少數簇是指所述隨機游走路徑經過的簇,即所述少數簇的簇頭構成了所述的隨機游走路徑,所述部分數據由所述的少數簇的簇頭從所述簇的全部數據中隨機抽取得到。通過一條隨機游走路徑生成一個數據包,為獲得能夠實現精確恢復的足夠數量的數據包,則需建立相應數量的相互獨立的隨機游走路徑;假設有m條獨立的隨機游走路徑,則可獲得m個數據包,通過m個數據包的數據進行分析匯總,即可實現傳感器網絡數據的精確恢復。所述隨機游走路徑及隨機抽取示意圖請參考圖2。
本實施例中,從各簇頭中選擇隨機游走路徑的源點,部分源點為確定的簇頭,部分源點為隨機選擇的簇頭;一條隨機游走路徑上,從源點開始,經過0個、1個或多個接收節點,到達終點,完成一次數據收集。源點生成數據包并利用隨機抽取得到的部分數據初始化數據包;源點作為一跳的發送節點將數據包發送給這一跳的接收節點;接收節點利用隨機抽取得到的部分數據更新數據包;接收節點作為下一跳的發送節點周期性地重復下一跳的選擇和數據包的更新,直到到達了隨機游走路徑的終點,則在終點處數據包匯聚了所述隨機游走路徑上的部分數據,所述終點通過最小生成樹路徑發送數據包給基站。
本實施例中,當不同隨機游走路徑經過同一個簇頭時,該簇頭為各隨機游走路徑分別選擇接收節點,即選擇的接收節點不一定相同。
在一個實施例中,所述s3進一步包括:
s3.1,基于各簇頭的第一隨機種子,利用偽隨機數生成器確定各簇的測量數據的id;基于各簇頭的第二隨機種子和所述接收的數據包中源點所在簇的id,確定所述隨機游走路徑上的各簇頭所在簇的id;
s3.2,基于所述各簇的測量數據的id和所述隨機游走路徑上的各簇頭所在簇的id,構建測量矩陣b;
s3.3,利用所述測量矩陣b從所述接收的數據包中恢復無線傳感器網絡采集的全部數據。
其中所述的隨機游走路徑終點處數據包中測量值ym可表示為:
其中,ωm表示第m條隨機游走路徑上的簇頭所在簇的id集合,i∈ωm;|ωm|≤t,t為第m條隨機游走路徑的步長;1≤m≤m,m為隨機游走路徑總數;xi表示第i個簇的全部數據;
本實施例中,基站通過接收到的各簇的隨機種子及各隨機游走路徑收集的數據包,構建測量矩陣,通過壓縮感知恢復算法得到整個網絡傳感器節點采集的數據,所述的壓縮感知恢復算法為l1優化算法,例如dantzigselector算法和基追蹤降噪算法等。
在一個實施例中,s2.1中所述確定所述隨機游走路徑的源點進一步包括:
基于隨機游走路徑總數m,按第一源點法或第二源點法確定源點;
所述隨機游走路徑總數m=minc+mr,其中,nc為所述分簇無線傳感器網絡的簇總數,mi和mr是正整數,0≤mr≤nc-1;
所述第一源點法為:對于所有隨機游走路徑,從nc個簇頭中隨機選擇一個簇頭作為所述隨機游走路徑的源點;
所述第二源點法為:對于minc條隨機游走路徑,令mi條游走路徑為一組,一組游走路徑選擇一個相同的簇頭作為源點,nc組游走路徑選擇互不相同的簇頭作為源點;對于mr條隨機游走路徑,從nc個簇頭中隨機選擇一個節點作為源點。
本實施例可以采用兩種方法確定隨機游走路徑的源點,當m<nc時,可以使用所述第一源點法。假設無線傳感器網絡被分成4個簇,即包括4個簇頭,在利用2條隨機游走路徑收集數據的情況下,從4個簇頭中隨機選擇2個簇頭作為源點。
當m≥nc時,可以使用所述第二源點法,假設無線傳感器網絡被分成4個簇,即包括4個簇頭,在利用6條隨機游走路徑收集數據的情況下,4個簇頭分別被選為4條隨機游走路徑的源點,再從4個簇頭中隨機選擇2個簇頭作為其他2條隨機游走路徑的源點。在m≥nc時,相對于第一源點法,第二源點法能夠實現源點的均勻分布。
在一個實施例中,s2.1中所述生成數據包進一步包括:
令第i個簇頭被選為源點,表示為vi′。以概率q隨機從所述源點的數據xi中抽取部分數據生成數據包r(m);所述數據包r(m)包括:
r(m).a1=t,為跳數計數值,其中t為所述隨機游走路徑的步長;
r(m).a2=i,為所述源點所在簇的id;以及
本實施例中,所述數據包由三部分組成,即跳數計數值即r(m).a1、源點所在簇的id即r(m).a2和測量值即r(m).a3。
其中所述跳數計數值為隨機游走路徑的步長t,在隨機游走過程中被逐漸減小,當其值將為1時,到達隨機游走路徑的終點;所述的源點所在簇的id被基站用來構建測量矩陣;其中所述測量值為源點隨機抽取得到的部分數據的和;
本發明實施例中,m條游走路徑的源點采用相同的方法生成數據包并初始化數據包,下面以第m條游走路徑為例進行詳細說明一個數據包的生成過程。令vi′表示第i個簇的簇頭,且vi′是第m條游走路徑的源點。
本實施例中,第m條游走路徑源點生成的數據包表示為r(m)。在數據包中,r(m).a1=t表示跳數計數值,其初始值為隨機游走的步長t,r(m).a2=i表示源點所在簇的id。
其中r(m).a1在隨機游走路徑上傳輸數據包的過程中被逐漸減小,當r(m).a1=1時,到達隨機游走路徑的終點。
其中r(m).a2被傳遞到基站,基站利用r(m).a2和收到的隨機種子可得到在m條隨機游走路徑上所有簇頭所在簇的id。
本實施例中,令列向量xi表示第i個簇的全部數據,源點vi′從數據xi中以概率q隨機抽取部分數據。令行向量
在一個實施例中,對于源點相同的隨機游走路徑,所述源點為各隨機游走路徑抽取的測量數據相同或者不相同。
在一個實施例中,s1.3中所述更新所述數據包進一步包括:
更新跳數計數值為r(m).a1=r(m).a1-1;
更新測量值為
本實施例中,更新的數據為所述數據包中的跳數計數值r(m).a1和測量值r(m).a3,其中所述跳數計數值在經過一跳數據傳輸時被減1;所述測量值被加入一跳接收節點中隨機抽取得到的部分數據的和,優選的,此處的抽取方法與源點隨機抽取數據的方法相同。
本實施例中,m條游走路徑采用相同的方法更新數據包,以第m條游走路徑為例進行詳細說明。令vj′表示第j個簇的簇頭,且vj′為接收節點。令列向量xj表示第j個簇的全部數據。
具體地,跳數計數值被更新為r(m).a1=r(m).a1-1,表示完成了一跳的數據傳輸。
測量值被更新為
具體的,s1.3中,僅當隨機游走路徑第一次經過接收節點時,接收節點更新所述數據包。
根據以上更新方法,當一個隨機游走路徑從源點經過接收節點到達終點時,數據包中測量值可表示為:
此處隨機游走路徑的終點收集的數據發送給基站,則基站得到的測量值與此處相同,即ym=r(m).a3。
在一個實施例中,隨機游走路徑上的簇頭獲得測量數據的方法包括:
簇頭所在簇中傳感器節點將采集的數據發送給簇頭,從而簇頭獲得了簇中的全部數據,簇頭從所述全部數據中隨機抽取得到部分數據作為測量數據;或者
當隨機游走路徑經過簇頭時,簇頭從所在簇的傳感器節點中隨機抽取部分傳感器節點,并向所述部分傳感器節點發送請求信息;收到所述部分傳感器節點的返回數據,并將所述返回數據作為測量數據。
本實施例中,隨機游走路徑上的簇頭可以通過兩種方式獲取測量數據,第一種方式是,簇中傳感器主動將自己采集的數據發送給簇頭,則簇頭提前獲得簇中的全部數據。第二種方式是,簇中傳感器不會主動將自己采集的數據發送給簇頭,只有當簇頭向自己請求數據才將自己采集的數據發送給簇頭;而簇頭向傳感器發送請求的觸發條件是隨機游走路徑經過該簇頭。不論是那種方式,簇頭都是隨機的將簇內采集的數據的一部分更新進數據包;若是第一種方式,則隨機抽取全部數據中的部分數據;若是第一種方式,則是隨機抽取簇中全部傳感器的部分傳感器,將所述部分傳感器的采集數據更新進數據包。
下面通過一個具體實施例說明本發明實施例構建的測量矩陣:假設在包含4個簇的無線傳感器網絡中,利用步長為2的6條隨機游走路經生成測量值,則測量矩陣為
其中,0表示零向量,第一個行向量中的
可見,本實施例中,測量矩陣是稀疏二元矩陣。
本實施例中,采用壓縮感知編碼算法進行數據收集,所述壓縮感知編碼算法對應稀疏二元矩陣,在特定條件下,該稀疏二元矩陣是非平衡膨脹圖的鄰接矩陣;其中所述的特定條件與如下參數相關:隨機采樣概率,隨機游走步長,隨機游走路徑數,簇總數和傳感器節點數。
所述測量矩陣與非平衡擴展圖的鄰接矩陣的關系可表示如下:
當隨機采樣的概率為q,m=o(klog(nk))條隨機游走路徑的步長t滿足
本發明實施例構建的測量矩陣是一個(k,ò)非平衡擴展圖的鄰接矩陣,其中,0≤q≤1,
本實施例中,基站在收到了測量值之后,需獲得測量矩陣,才能恢復整個網絡傳感器節點采集的數據。通過偽隨機數生成器利用已收到的隨機種子構建測量矩陣。
具體地,基站利用各簇頭提供的第一個隨機種子可以確定被隨機抽取的數據的標識id,從而獲得
本發明還提供一種分簇無線傳感器網絡數據收集裝置,包括:
初始化模塊,用于在分簇無線傳感器網絡初始化時,各簇頭生成第一隨機種子和第二隨機種子,并將所述第一隨機種子和第二隨機種子發送給基站;
數據收集模塊,用于通過隨機游走路徑收集少數簇的測量數據,并在所述隨機游走路徑的終點匯聚成數據包后發送給基站;所述測量數據為從所述簇的全部數據中根據所述第一隨機種子隨機抽取得到的部分數據;以及
數據恢復模塊,用于所述基站根據接收的數據包、各簇頭的第一隨機種子和第二隨機種子構建測量矩陣,利用所述測量矩陣根據接收的數據包恢復無線傳感器網絡采集的全部數據。
在一個實施例中,所述數據收集模塊進一步包括:
源點單元,用于基于所述分簇無線傳感器網絡的各簇頭,確定所述隨機游走路徑的源點,并根據所述源點所在簇的第一隨機種子獲取所述源點所在簇的測量數據生成數據包;
游走單元,用于根據所在簇的第二隨機種子,從鄰居節點中選擇一個簇頭為接收節點,向所述接收節點發送所述數據包;
更新單元,用于所述接收節點接收到所述數據包后,利用所述接收節點所在簇的測量數據更新所述數據包;以及
匯聚單元,用于當所述接收節點為所述隨機游走路徑的終點時,將所更新的數據包發送給基站。
在一個實施例中,所述數據恢復模塊進一步包括:
獲取id單元,用于基于各簇頭的第一隨機種子,利用偽隨機數生成器確定各簇的測量數據的id;基于各簇頭的第二隨機種子和所述接收的數據包中源點所在簇的id,確定所述隨機游走路徑上的各簇頭所在簇的id;
測量矩陣單元,用于基于所述各簇的測量數據的id和所述隨機游走路徑上的各簇頭所在簇的id,構建測量矩陣b;
恢復單元,用于利用所述測量矩陣b從所述接收的數據包中恢復無線傳感器網絡采集的全部數據
其中所述的隨機游走路徑終點處數據包中測量值ym可表示為:
其中,ωm表示第m條隨機游走路徑上的簇頭所在簇的id集合,i∈ωm;|ωm|≤t,t為第m條隨機游走路徑的步長;1≤m≤m,m為隨機游走路徑總數;xi表示第i個簇的全部數據;
所述確定所述隨機游走路徑的源點進一步包括:
基于隨機游走路徑總數m,按第一源點法或第二源點法確定源點;
所述隨機游走路徑總數m=minc+mr,其中,nc為所述分簇無線傳感器網絡的簇總數,mi和mr是正整數,0≤mr≤nc-1;
所述第一源點法為:對于所有隨機游走路徑,從nc個簇頭中隨機選擇一個簇頭作為所述隨機游走路徑的源點;
所述第二源點法為:對于minc條隨機游走路徑,令mi條游走路徑為一組,一組游走路徑選擇一個相同的簇頭作為源點,nc組游走路徑選擇互不相同的簇頭作為源點;對于mr條隨機游走路徑,從nc個簇頭中隨機選擇一個節點作為源點。
所述生成數據包進一步包括:
以概率q隨機從所述源點所在簇的全部數據xi中抽取部分數據生成數據包r(m);所述數據包r(m)包括:
r(m).a1=t,為跳數計數值,其中t為所述隨機游走路徑的步長;
r(m).a2=i,為所述源點所在簇的id;以及
所述更新所述數據包進一步包括:
更新跳數計數值為r(m).a1=r(m).a1-1;
更新測量值為
隨機游走路徑上的簇頭獲得測量數據的方法包括:
簇頭所在簇中傳感器節點將采集的數據發送給簇頭,從而簇頭獲得了簇中的全部數據,簇頭從所述全部數據中隨機抽取得到部分數據作為測量數據;或者
當隨機游走路徑經過簇頭時,簇頭從所在簇的傳感器節點中隨機抽取部分傳感器節點,并向所述部分傳感器節點發送請求信息;收到所述部分傳感器節點的返回數據,并將所述返回數據作為測量數據。
在一個實施例中,當且僅當隨機游走路徑第一次經過接收節點時,所述接收節點更新所述數據包。
在一個實施例中,源點相同的隨機游走路徑,所述源點為各隨機游走路徑抽取的測量數據相同或者不相同。
綜上所述,本發明通過隨機游走路徑收集和壓縮其經過的簇頭所在簇中的部分數據,通過隨機采樣選擇所述的簇中的部分數據;為構建稀疏的測量矩陣,在無線傳感器網絡初始化時,各簇頭生成兩個隨機種子并傳遞給基站,避免了在數據包中傳輸測量數據的id和簇id,有利于縮短數據包的長度而構建稀疏測量矩陣;在基站側通過稀疏測量矩陣可以準確的恢復無線傳感器網絡采集的全部數據,有效的提升基于壓縮感知的分簇無線傳感器網絡數據收集方法的恢復性能,降低網絡能耗,解決了現有技術的不足。
最后,本申請的方法僅為較佳的實施方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。