本發(fā)明屬于通信技術領域,具體涉及用于傳感器網絡傳輸過程中的地理位置信息壓縮編碼方法。
背景技術:
傳感器網絡的地理位置信息,對于標記數據產生和事件發(fā)生的位置是很有必要的,傳感器網絡中的很多服務是基于地理位置信息的,比如水污染監(jiān)測、生態(tài)環(huán)境監(jiān)測以及災害預警等。參照常用的WGS84:World Geodetic System 1984標準,GPS中地理位置信息由<經度,緯度,高度>表示。其中經度表示方式為23°21′23″E這種格式,其中度的區(qū)間為[0°,180°],分和秒是60進位的,E表示的是東經。其中也可以用符號位表示東西經,+號表示東經、-號表示西經,則區(qū)間為[+180°,-180°],表示南北緯時,+號表示北緯、-號表示南緯,此時的區(qū)間為[+90°,-90°],海拔則一般以[-11000,8000]為區(qū)間,本發(fā)明為統(tǒng)一經緯度和高度的精度要求,采用[-11000,C-11000]為區(qū)間,其中C為赤道周長。
地理位置信息編碼,是以二進制的方式表示地理位置的三維坐標,用于傳輸。在WGS84規(guī)定中,GPS的經度、緯度和高度都是實數,分別用32位表示,則單個位置數據需要用12個字節(jié)表示,這對于大多數網絡應用來說并沒有占整個傳輸幀的很大比例,但是對于傳感器網絡和其他低能耗網絡來說,特別是MTU比較小的情況下,用12個字節(jié)來表示位置信息會占用較大比例的傳輸位,造成傳輸次數的增多和能耗的增加,所以利用不同的方法對地理位置信息的進行壓縮編碼以減小占用的位數還是很有必要的。而且大多數傳感器網絡的節(jié)點都是電池供電,能耗的增加會減少該節(jié)點的使用壽命。特別是一些低能耗網絡技術,對帶寬消耗非常敏感,如IEEE 802.15.4-2003定義的報文尺寸只有127字節(jié),刨去鏈路層和安全機制占用的部分,只有不到81個字節(jié)可用于信息傳輸。本發(fā)明利用相近區(qū)域位置信息相關的特點,能夠對傳輸的位置信息進行可控精度的壓縮和解碼,從而減少地址位置信息的傳輸開銷。
技術實現要素:
本發(fā)明的目的是對傳輸的位置信息進行可控精度的壓縮和解碼,從而減少地理位置信息在通信傳輸過程中對帶寬的消耗。
本發(fā)明的技術方案是:可控精度的地理位置信息壓縮傳輸方法,根據定義的精度d,在發(fā)送端對地理位置信息Loc進行壓縮編碼,并在接收端對地理位置信息進行解碼操作;包括以下步驟:
S1、根據精度d確定傳輸節(jié)點地理位置信息編碼的粒度參數m,通過下公式計算滿足精度d的最小位數m;
其中,C為地球赤道周長,d表示用m位二進制對赤道上的位置坐標編碼所能達到的精度;
所述傳輸節(jié)點包括:發(fā)送端源節(jié)點、中間節(jié)點以及目的節(jié)點;
S2、在發(fā)送端對源節(jié)點地理位置信息Loc編碼;所述發(fā)送端源節(jié)點地理位置信息Loc編碼的k位后綴對于接收端傳輸節(jié)點是唯一識別碼;且所述k滿足下式:
其中,C為地球赤道周長,L為接收端與Loc最大距離;
并且通過公式確定傳輸信息中經度、緯度和高度分別所占的位數K的值;
S3、在接收端對源節(jié)點地理位置信息Loc解碼。
進一步地,當傳感器網絡為端到端結構時,所述步驟S2還包括:根據第一編碼算法計算m位表示的位置的二進制信息<Bx,By,Bh>,并得到最終位置信息msg。
更進一步地,所述第一編碼算法為:根據下式計算<Bx,By,Bh>;
由
bx=Bxmod2k
by=Bymod2k
bh=Bhmod2k
計算得到最終位置信息:msg=<bx,by,bh>。
進一步地,當傳感器網絡為逐跳結構時,且各傳輸節(jié)點的地理位置信息精度d相同,所述步驟S2還包括:根據第二編碼算法計算m位表示的位置的二進制信息<Bx,By,Bh>,并得到最終位置信息msg。
更進一步地,所述第二編碼算法為:根據下式計算<Bx,By,Bh>;
由
bk=(K/3)mod23
bx=Bxmod2k
by=Bymod2k
bh=Bhmod2k
計算得到最終位置信息:msg=<bk,bx,by,bh>。
更進一步地,當傳感器網絡為逐跳結構時,且傳輸節(jié)點既非發(fā)送端的源節(jié)點,也非目的節(jié)點時,在該傳輸節(jié)點處,首先計算該傳輸節(jié)點處的K值,并對來自上一傳輸節(jié)點的編碼信息進行解碼,然后根據第二編碼算法編碼后發(fā)送至下一傳輸節(jié)點。
進一步地,當傳感器網絡為逐跳結構時,且各傳輸節(jié)點的地理位置信息精度d不相同,所述步驟S2還包括:根據第三編碼算法計算m位表示的位置的二進制信息<Bx,By,Bh>,并得到最終位置信息msg。
更進一步地,所述第三編碼算法為:根據下式計算<Bx,By,Bh>;
由:
bm=m
bk=(K/3)mod23
bx=Bxmod2k
by=Bymod2k
bh=Bhmod2k
計算得到最終位置信息:msg=<bm,bk,bx,by,bh>。
進一步地,當傳感器網絡為端到端結構時,所述步驟S3包括:采用第一解碼算法對經第一編碼算法編碼得到的msg=<bx,by,bh>進行解碼,得到源節(jié)點地理位置信息。
更進一步地,所述第一解碼算法為:根據下式計算目的節(jié)點D的位置信息<Dx,Dy,Dh>:
目的節(jié)點D處的位置編碼信息為<dx,dy,dh>,
其中:
dx=Dxmod2K
dy=Dymod2K
dh=Dhmod2K
通過比較<bx,by,bh>和<dx,dy,dh>,判斷得到解碼結果未發(fā)生進位或者退位時,則解碼結果計算式為:
Bx=Dx-dx+bx
By=Dy-dy+by
Bh=Dh-dh+bh
否則解碼結果計算式為:
Bx=Dx-dx+bx+2k×sgn(dx-bx)
By=Dy-dy+by+2k×sgn(dy-by)
Bh=Dh-dh+bh+2k×sgn(dh-bh)
則<Bx,By,Bh>即為源節(jié)點地理位置信息。
進一步地,當傳感器網絡為逐跳結構時,且各傳輸節(jié)點的地理位置信息精度相同,所述步驟S3包括:采用第二解碼算法對經第二編碼算法編碼得到的msg=<bk,bx,by,bh>進行解碼,得到源節(jié)點地理位置信息。
更進一步地,所述第二解碼算法為:根據下式計算傳輸節(jié)點R1的位置信息<R1x,R1y,R1h>
根據下式計算傳輸節(jié)點R1處的位置編碼信息為<r1x,r1y,r1h>,其中:
r1x=R1xmod2k
r1y=R1ymod2k
r1h=R1hmod2k
通過比較<bx,by,bh>和<r1x,r1y,r1h>,判斷得到解碼結果未發(fā)生進位或者退位時,則解碼結果計算式為:
Bx=R1x-r1x+bx
By=R1y-r1y+by
Bh=R1h-r1h+bh
若是發(fā)生進位或者退位,則解碼結果計算式為:
Bx=R1x-r1x+bx+2k×sgn(r1x-bx)
By=R1y-r1y+by+2k×sgn(r1y-by)
Bh=R1h-r1h+bh+2k×sgn(r1h-bh)
則<Bx,By,Bh>即為源節(jié)點地理位置信息。
進一步地,當傳感器網絡為逐跳結構時,且各傳輸節(jié)點的地理位置信息精度d不相同,所述步驟S3包括:采用第三解碼算法對經第三編碼算法編碼得到的msg=<bm,bk,bx,by,bh進行解碼,得到源節(jié)點地理位置信息。
更進一步地,所述第三解碼算法為:根據源節(jié)點的粒度參數m,計算傳輸節(jié)點R1的位置信息<R1x,R1y,R1h>:
然后通過下式計算傳輸節(jié)點R1處的位置編碼信息<r1x,r1y,r1h>,
其中:
r1x=R1xmod2k
r1y=R1ymod2k
r1h=R1hmod2k
通過比較<bx,by,bh>和<r1x,r1y,r1h>,判斷得到解碼結果未發(fā)生進位或者退位時,則解碼結果計算式為:
Bx=R1x-r1x+bx
By=R1y-r1y+by
Bh=R1h-r1h+bh
若是發(fā)生進位或者退位,則解碼結果表達式為:
Bx=R1x-r1x+bx+2k×sgn(r1x-bx)
By=R1y-r1y+by+2k×sgn(r1y-by)
Bh=R1h-r1h+bh+2k×sgn(r1h-bh)
則<Bx,By,Bh>即為源節(jié)點地理位置信息。
本發(fā)明的有益效果是:本發(fā)明的可控精度的地理位置信息壓縮傳輸方法,利用相鄰區(qū)域的地理位置信息相關性,能夠減少地理位置信息的編碼長度,發(fā)送端通過估計接收端的大致范圍即可實現編碼過程,接收端則能根據自身的位置和收到的信息獨立實現編碼,通過減少每個傳輸幀中位置信息所占的位數,使得每次傳輸的其他信息的位數增加,從而節(jié)省了有效帶寬。
附圖說明
圖1表明沿經度方向或者緯度方向的二進制編碼的后綴具有周期性。
圖2是一個確定范圍的傳感器網絡示意圖,該圖所示的情況可以根據覆蓋范圍來統(tǒng)一確定編碼位數。
圖3是一個不確定范圍的多跳的傳感網絡示意圖。
具體實施方式
為便于本領域技術人員理解本發(fā)明的技術內容,下面結合附圖對本發(fā)明內容進一步闡釋。
本發(fā)明的技術方案:可控精度的地理位置信息壓縮傳輸方法,根據定義的精度d,在發(fā)送端對地理位置信息Loc進行壓縮編碼,并在接收端對地理位置信息進行解碼操作;包括以下步驟:
S1、根據精度d確定地理位置信息編碼的粒度參數m,通過下公式計算滿足精度d的最小位數m;
其中,C為地球赤道周長,d表示用m位二進制對赤道上的位置坐標編碼所能達到的精度;
S2、在發(fā)送端對地理位置信息Loc編碼;所述地理位置信息Loc編碼的k位后綴對于接收端是唯一識別碼;且所述k滿足下式:
其中,C為地球赤道周長,L為接收端與Loc最大距離;
并且通過公式確定傳輸信息中經度、緯度和高度分別所占的位數K的值。
如圖1所示,只取3位后綴時,對于在1202的節(jié)點來說,1199是唯一的,1198是不唯一的,[1199,1205]對應位于1202節(jié)點的GTM range表示對于接收節(jié)點可以唯一解碼的空間范圍,GTM:地理位置拓撲映射??梢栽诮o定K的情況下,用K位表示的二進制的地理位置信息壓縮編碼具有唯一性,由于其具有周期性所以可以在解碼時判斷是否需要進位。以K=3為例:假設某節(jié)點的經度編碼為00001000,其覆蓋半徑范圍為3m,唯一性很明顯由于二進制編碼是周期性的,則后三位一直以000到111為循環(huán),且是連續(xù)的,所以能唯一確定本節(jié)點周圍節(jié)點的編碼后綴。本例中,由于節(jié)點的半徑為4m,以本節(jié)點為中心的節(jié)點周圍的經度編碼則為101、110、111、000、001、010、011。
以本節(jié)點為中心的覆蓋范圍內的節(jié)點的與其在經度方向上地理位置的差值小于4m,即2K-1m,如果傳輸的壓縮編碼差值大于等于4,則說明高位上有進位。設其周圍的節(jié)點經度為000000101、00000110、00000111、00001001、00001010、00001011。
假設目的節(jié)點經度為00000111,則其接收到的3位地理位置信息編碼為bx=000,計算其本身的dx=111,很明顯如果直接替換后三位的相對位置信息是有問題的。由于|dx-bx|=7>2K-1=4,所以可以判斷有進位,在計算時加上進位或者減除進位得到源節(jié)點的正確地理位置信息編碼。
S3、在接收端對地理位置信息解碼。
具體通過以下兩個實施例來進行闡述本發(fā)明的內容:
實施例一
端到端的地理位置信息編碼解碼。傳感器網絡,節(jié)點相對靜止的情況下。根據傳感器網絡的覆蓋范圍靜態(tài)確定K值,根據m值和覆蓋范圍根據公式計算這個節(jié)點覆蓋范圍內能唯一確定的表示每個節(jié)點的位置的k;
如圖2所示,假定S要把自身的地理位置信息發(fā)送給D,在S處進行壓縮編碼:
假定該傳感器網絡的范圍直徑為400米。
1.精度要求為精確到1米,根據步驟一中的公式計算得出即m=26。
S和D的坐標分別是:
S=<118°22′00.69″,0°59′57.76″,95>
D=<118°22′08.09″,0°59′57.27″,91>
S和D的坐標轉化為度數表示為:
S=<118.36686°,0.99938°,95>
D=<118.36891°,0.99924°,91>
2.按照步驟S2所述確定能唯一表示在該范圍內的某一位置的編碼位數K。首先根據公式:計算k=11,再根據公式當e取值為3時,計算得出K=12。
根據第一編碼算法計算用m位表示的位置的二進制信息<Bx,By,Bh>:
最終的位置信息msg為:
msg=<bx,by,bh>
bx=Bxmod2k=000000011101B
by=Bymod2k=011110111001B
bh=Bhmod2k=100010010011B
即msg=000000011101011110111001100010010011B
3.根據步驟S3所述,在目的節(jié)點D處對位置信息進行解碼。首先計算K值,因為確定范圍的情況下該范圍內的K值是統(tǒng)一的,所以此處省略計算過程,得K=12。D節(jié)點首先計算自己的位置信息<Dx,Dy,Dh>
D節(jié)點處的位置編碼信息為<dx,dy,dh>,其中:
dx=Dxmod2K=000110011100B
dy=Dymod2K=011110011111B
dh=Dhmod2K=100010001100B
通過比較<bx,by,bh>和<dx,dy,dh>判斷是否需要進位或者退位:
2K-1=211=2048
|dx-bx|=|412-29|=383<2048
|dy-by|=|1951-1977|=26<2048
|dh-bh|=|2188-2195|=7<2048
比較結果表明沒有發(fā)生進位或者退位,則解碼結果為:
Bx=Dx-dx+bx
=11010100001011000110011100B-000110011100B+000000011101B
=110101000011011000000011101B
By=Dy-dy+by
=1000000101101011110011111B-011110011111B+011110111001B
=1000000101101011110111001B
Bh=Dh-dh+bh
=100100010001100B-100010001100B+100010010011B
=100100010010011B
若是發(fā)生進位或者退位,則解碼結果表達式為:
Bx=Dx-dx+bx+2k×sgn(dx-bx)
By=Dy-dy+by+2k×sgn(dy-by)
Bh=Dh-dh+bh+2k×sgn(dh-bh)
則<Bx,By,Bh>即為源節(jié)點地理位置信息。
實施例二
逐跳的地理位置信息編碼解碼。適用于各種傳感器網絡。根據源節(jié)點和目的節(jié)點距離動態(tài)確定k值,根據m值以及源節(jié)點和目的節(jié)點的距離ls,d,代入公式計算能唯一確定源節(jié)點的位置對應的k。
如圖3所示,是一個不確定邊界的多跳的傳感器網絡,該圖所示情況采用根據傳輸跳數及每個轉發(fā)節(jié)點的覆蓋范圍動態(tài)確定編碼位數。其中根據轉發(fā)節(jié)點與源節(jié)點之間的距離以及轉發(fā)節(jié)點的覆蓋范圍動態(tài)確定傳輸的位置信息編碼位數。考慮編碼解碼過程在每個中間節(jié)點的過程是一致的,本示例中只計算一個兩跳地理位置信息的編碼和解碼過程,實際的傳感器網絡的多跳的地理位置信息的編碼解碼過程參照本示例。
S、R1以及D的坐標分別是:
S=<118°22′00.69″,0°59′57.76″,95>
R1=<118°22′08.09″,0°59′57.27″,91>
D=<118°22′12.10″,0°59′53.70″,93>
S和R1距離為229m,R1和D之間的距離為157m,S和D之間的距離為379m,S的覆蓋半徑為250m,R1的覆蓋半徑為200m,坐標轉化為度數表示為:
S=<118.36686°,0.99938°,95>
R1=<118.36891°,0.99924°,91>
D=<118.37003°,0.99825°,93>
1.精度要求為精確到1米,根據步驟一中的公式計算得出即m=26。
2.按照步驟S2所述,確定能唯一表示在該范圍內的某一位置的編碼位數K。首先根據公式:
其中,L為S的覆蓋半徑,計算k=10,再根據公式計算得出K=12
根據第二編碼算法計算用m位表示的位置的二進制信息<Bx,By,Bh>:
最終的位置信息msg為:
msg=<bk,bx,by,bh>
bk=(K/3)mod23=100B
bx=Bxmod2k=000000011101B
by=Bymod2k=011110111001B
bh=Bhmod2k=100010010011B
即msg=100000000011101011110111001100010010011B
3.根據步驟S3所述,
首先,在節(jié)點R1處對位置信息進行解碼。首先計算K=bk×3=12。R1節(jié)點首先計算自己的位置信息<R1x,R1y,R1h
R1節(jié)點處的位置編碼信息為<r1x,r1y,r1h>,其中:
r1x=R1xmod2k=000110011100B
r1y=R1ymod2k=011110011111B
r1h=R1hmod2k=100010001100B
通過比較<bx,by,bh<和<r1x,r1y,r1h>判斷是否需要進位或者退位:
2K-1=211=2048
|r1x-bx|=|412-29|=383<2048
|r1y-by|=|1951-1977|=26<2048
|r1h-bh|=|2188-2195|=7<2048
比較結果表明沒有發(fā)生進位或者退位,則解碼結果為:
Bx=R1x-r1x+bx
=11010100001011000110011100B-000110011100B+000000011101B
=110101000011011000000011101B
By=R1y-r1y+by
=1000000101101011110011111B-011110011111B+011110111001B
=1000000101101011110111001B
Bh=R1h-r1h+bh
=100100010001100B-100010001100B+100010010011B
=100100010010011B
若是發(fā)生進位或者退位,則解碼結果表達式為:
Bx=R1x-r1x+bx+2k×sgn(r1x-bx)
By=R1y-r1y+by+2k×sgn(r1y-by)
Bh=R1h-r1h+bh+2k×sgn(r1h-bh)
則<Bx,By,Bh>即為源節(jié)點地理位置信息。
然后,由于R1不是目的節(jié)點,所以R1要將S節(jié)點的位置信息進行二次壓縮,轉發(fā)給下個節(jié)點D。但是由于S和D之間相對位置與S和R1之間的相對位置不一樣所以要重新計算K值,計算k值的公式為
其中,L為S與R1之間的距離(由坐標差計算得出)與R1的覆蓋半徑之和。計算得k=11。根據公式計算得出K=12。求得轉發(fā)的地理位置編碼信息為:
msg=<bk,bx,by,bh>
bk=(K/3)mod23=100B
bx=Bxmod2k=000000011101B
by=Bymod2k=011110111001B
bh=Bhmod2k=100010010011B
即msg=100000000011101011110111001100010010011B
再將該地理位置信息轉發(fā)給本示例中的目的節(jié)點D。
最后,在目的節(jié)點D處對位置信息進行解碼。首先計算K=bk×3=12。D節(jié)點首先計算自己的位置信息<Dx,Dy,Dh
D節(jié)點處的位置編碼信息為<dx,dy,dh>,其中:
dx=Dxmod2K=001001101100B
dy=Dymod2K=011011100111B
dh=Dhmod2K=100010001111B
通過比較<bx,by,bh>和<dx,dy,dh>判斷是否需要進位或者退位:
2K-1=211=2048
|dx-bx|=|620-29|=591<2048
|dy-by|=|1767-1977|=210<2048
|dh-bh|=|2191-2195|=4<2048
比較結果表明沒有發(fā)生進位或者退位,
則解碼結果為:
Bx=Dx-dx+bx
=11010100001011001001101100B-001001101100B+000000011101B
=11010100001011000000011101B
By=Dy-dy+by
=1000000101101011011100111B-011011100111B+011110111001B
=1000000101101011110111001B
Bh=Dh-dh+bh
=100100010001111B-100010001111B+100010010011B
=100100010010011B
若是發(fā)生進位或者退位,則解碼結果表達式為:
Bx=Dx-dx+bx+2k×sgn(dx-bx)
By=Dy-dy+by+2k×sgn(dy-by)
Bh=Dh-dh+bh+2k×sgn(dh-bh)
則<Bx,By,Bh>即為源節(jié)點地理位置信息。
實施例三
如圖3所示,是一個不確定邊界的多跳的傳感器網絡,逐跳的地理位置信息編碼解碼。適用于各種傳感器網絡,而且此時每個傳輸節(jié)點的地理位置信息精度要求不一樣。根據源節(jié)點和目的節(jié)點距離動態(tài)確定k值,根據傳輸節(jié)點傳輸的地理位置信息中的表示精度的m值以及源節(jié)點和目的節(jié)點的距離ls,d,代入公式計算能唯一確定源節(jié)點的位置對應的k。
具體編碼解碼過程如下:
S、R1以及D的坐標分別是:
S=<118°22′00.69″,0°59′57.76″,95>
R1=<118°22′08.09″,0°59′57.27″,91>
D=<118°22′12.10″,0°59′53.70″,93>
S和R1距離為229m,R1和D之間的距離為157m,S和D之間的距離為379m,S的覆蓋半徑為250m,R1的覆蓋半徑為200m,坐標轉化為度數表示為:
S=<118.36686°,0.99938°,95>
R1=<118.36891°,0.99924°,91>
D=<118.37003°,0.99825°,93>
1.S節(jié)點計算的地理位置信息精確到1米(每個節(jié)點的精度要求可能不一致,所以要源節(jié)點傳輸),根據步驟一中的公式計算得出即m=26。
2.按照步驟S2所述,確定能唯一表示在該范圍內的某一位置的編碼位數K。首先根據公式:
其中L為S的覆蓋半徑,計算k=10,再根據公式計算得出K=12。根據第三編碼算法方法計算用m位表示的位置的二進制信息<Bx,By,Bh>:
最終的位置信息msg為:
msg=<bk,bx,by,bh>
bm=m=11010B
bk=(K/3)mod23=100B
bx=Bxmod2k=000000011101B
by=Bymod2k=011110111001B
bh=Bhmod2k=100010010011B
即msg=11010100000000011101011110111001100010010011B
3.根據步驟S3所述,在節(jié)點R1處對位置信息進行解碼。首先計算K=bk×3=12,再得出S節(jié)點的精度信息m=26。R1節(jié)點首先根據S節(jié)點的精度信息m計算對應該精度的自己的位置信息<R1x,R1y,R1h>,以確保地理位置信息二進制編碼前綴的一致性:
R1節(jié)點處的m=26時的位置編碼信息為<r1x,r1y,r1h>,其中:
r1x=R1xmod2k=000110011100B
r1y=R1ymod2k=011110011111B
r1h=R1hmod2k=100010001100B
通過比較<bx,by,bh>和<r1x,r1y,r1h>判斷是否需要進位或者退位:
2K-1=211=2048
|r1x-bx|=|412-29|=383<2048
|r1y-by|=|1951-1977|=26<2048
|r1h-bh|=|2188-2195|=7<2048
比較結果表明沒有發(fā)生進位或者退位,則解碼結果為:
Bx=R1x-r1x+bx
=11010100001011000110011100B-000110011100B+000000011101B
=110101000011011000000011101B
By=R1y-r1y+by
=1000000101101011110011111B-011110011111B+011110111001B
=1000000101101011110111001B
Bh=R1h-r1h+bh
=100100010001100B-100010001100B+100010010011B
=100100010010011B
若是發(fā)生進位或者退位,則解碼結果表達式為:
Bx=R1x-r1x+bx+2k×sgn(r1x-bx)
By=R1y-r1y+by+2k×sgn(r1y-by)
Bh=R1h-r1h+bh+2k×sgn(r1h-bh)
則<Bx,By,Bh>即為源節(jié)點地理位置信息。
4.由于R1不是目的節(jié)點,所以R1要將S節(jié)點的位置信息進行二次壓縮,轉發(fā)給下個節(jié)點D。但是由于S和D之間相對位置與S和R1之間的相對位置不一樣所以要重新計算K值,計算k值的公式為
其中,L為S與R1之間的距離(由坐標差計算得出)與R1的覆蓋半徑之和。計算得k=11。根據公式計算得出K=12。求得轉發(fā)的地理位置編碼信息為:
msg=<bk,bx,by,bh>
bm=m=11010B
bk=(K/3)mod23=100B
bx=Bxmod2k=000000011101B
by=Bymod2k=011110111001B
bh=Bhmod2k=100010010011B
即msg=11010100000000011101011110111001100010010011B
再將該地理位置信息轉發(fā)給本示例中的目的節(jié)點D。
5.根據步驟S3所述,在目的節(jié)點D處對位置信息進行解碼。
首先從轉發(fā)的信息中獲取m=26,再計算K=bk×3=12。D節(jié)點首先根據m值計算自己的位置信息<Dx,Dy,Dh>:
D節(jié)點處的m=26時的位置編碼信息為<dx,dy,dh>,其中:
dx=Dxmod2K=001001101100B
dy=Dymod2K=011011100111B
dh=Dhmod2K=100010001111B
通過比較<bx,by,bh>和<dx,dy,dh>判斷是否需要進位或者退位:
2K-1=211=2048
|dx-bx|=|620-29|=591<2048
|dy-by|=|1767-1977|=210<2048
|dh-bh|=|2191-2195|=4<2048
比較結果表明沒有發(fā)生進位或者退位,則解碼結果為:
Bx=Dx-dx+bx
=11010100001011001001101100B-001001101100B+000000011101B
=11010100001011000000011101B
By=Dy-dy+by
=1000000101101011011100111B-011011100111B+011110111001B
=1000000101101011110111001B
Bh=Dh-dh+bh
=100100010001111B-100010001111B+100010010011B
=100100010010011B
若是發(fā)生進位或者退位,則解碼結果表達式為:
Bx=Dx-dx+bx+2k×sgn(dx-bx)
By=Dy-dy+by+2k×sgn(dy-by)
Bh=Dh-dh+bh+2k×sgn(dh-bh)
則<Bx,By,Bh>即為源節(jié)點地理位置信息。
本領域的普通技術人員將會意識到,這里所述的實施例是為了幫助讀者理解本發(fā)明的原理,應被理解為本發(fā)明的保護范圍并不局限于這樣的特別陳述和實施例。對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的權利要求范圍之內。