WSN中免測距距離估計算法的實現與比較
1.2 DV-Hop算法
DV-Hop定位算法測距過程分為兩個階段:
第一階段首先計算待定位節點與錨節點的最小跳數。為獲得節點問的跳數,錨節點向所有鄰居節點廣播一個包含其自身標志、位置信息、跳數被置為0的消息。當未知節點接收到該消息時,將跳數加1,并在泛洪限制許可的情況下,將消息繼續向它的鄰居節點轉發,此過程一直持續下去,直至網絡中每個節點都獲得每個錨節點的位置信息和相應的跳數值。為了保證能得到最小跳數,未知節點收到消息時,會查看是否已經收到過關于該錨節點的消息,若已經存在,則比較當前跳數是否比之前收到的小,若不是則丟棄該消息,這樣就能保證得到的跳數最小跳數。
第二階段計算未知節點與錨節點的實際跳距。每個錨節點根據第一階段中得到的其它錨節點的位置信息和相距跳數,利用式(1)估算平均跳距

DV-Hop算法能夠計算出離錨節點很遠未知節點的位置。而且其不需要額外信息,但是其誤差與其路徑的彎曲程度成正比。由于一個未知節點只能通過一條路徑得到跳數,所以它需要通過每跳平均距離來計算自身的位置,這樣導致計算出位置的誤差量大。
假設一個DV-Hop模型如圖3所示。本文引用地址:http://www.104case.com/article/160117.htm
其中,A1,A2,A3,是錨節點;A是一個未知節點,A1,A2,A3之間的距離已知,分別為30,30和40。A點到A1點為8,跳數為1;根據最小跳數原則,A點到A2,A3的跳數分別為3和2。
首先,錨節點廣播包括位置信息、自身標志及開始跳數為0的消息,當消息廣播至另一個節點,跳數根據最小跳數的原則變化,最終,每個節點都可得到離錨節點的最小跳數,而錨節點得到與其他錨節點的最小跳數后便可以計算平均跳距。在圖3中,A1、A2、A3的平均跳距如下
A1:(30+30)÷(4+3)=8.6 (2)
A2:(30+40)÷(4+5)=7.8 (3)
A3:(30+40)÷(4+5)=7.8 (4)
在計算出平均跳距后,錨節點將在網絡中廣播該信息,未知節點將平均跳距與最小跳數的乘積作為與錨節點的間距。即,A1、A2、A3將廣播8.6、7.8、7.8的3個平均跳距。如,A收到A1、A2、A3這3點廣播的跳距后,即能計算A到各錨節點的距離AA1=8.6;AA2=7.8×3= 23.4;AA3=7.8×2=15.6。
評論