WSN中免測距距離估計算法的實現(xiàn)與比較
1.3 Euclidean算法
如果網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)不規(guī)則,DV-Hop算法的測距誤差會較大。針對這些問題,Niculescu和Nath提出了另一種方法,即為Euclidean。該方法依靠錨節(jié)點(diǎn)周圍節(jié)點(diǎn)的幾何關(guān)系進(jìn)行計算,若一個節(jié)點(diǎn)的兩個鄰居節(jié)點(diǎn)已知各自到錨節(jié)點(diǎn)的距離等于彼此之間的距離,這時,即可計算該節(jié)點(diǎn)到錨節(jié)點(diǎn)的距離了。
如圖4是一個Euclidean算法的模型。本文引用地址:http://m.ptau.cn/article/160117.htm
在圖4中,A有兩個鄰節(jié)點(diǎn)B、C,已知B、C與錨節(jié)點(diǎn)ANC的距離分別是a和b,結(jié)合已知的節(jié)點(diǎn)間距c、d、e,Euclidean算法得到兩個解:r1和r2。為確定哪個解為正解,可采用鄰居節(jié)點(diǎn)投票的方法:若存在第3個鄰居節(jié)點(diǎn)D,與B或C相連,且已知它到錨節(jié)點(diǎn)的距離。這時,可用D替換C或B,再重新計算A的位置,得到另一對解,正解必然在這兩對解中,如此,用簡單的選擇法便可得到正解。當(dāng)然,若是有更多的鄰居節(jié)點(diǎn)參與計算,最終結(jié)果會更精確。
2 仿真實現(xiàn)與結(jié)果分析
默認(rèn)環(huán)境如下:在100個單位的正方形場景中,有300個節(jié)點(diǎn),通信距離設(shè)為15,錨節(jié)點(diǎn)比例設(shè)為5%,通信誤差是通信距離的10%,以下從不同參數(shù)進(jìn)行仿真比較。
圖5是不同通信誤差下,DV-Hop、Sum-Dist、Euclidean算法執(zhí)行距離估計得到的標(biāo)準(zhǔn)方差,圖6和圖7則分別是在不同的通信距離、錨節(jié)點(diǎn)比例下所得到的方差。
(1)Sum-Dist是3種方法中通信量最少、計算量最小的測距算法。但在通信誤差10%時,其測距結(jié)果仍是理想的。實際上,有兩個完全不同的趨勢影響著Sum-Dist的測距精度。其一,如果完全沒有通信誤差,多條路徑上的距離總和大于實際距離,這樣就導(dǎo)致估計值過大;其二,由于Sum-Dist算法尋找的是最短路徑,所以當(dāng)存在通信誤差時,其所選的路徑就會比實際距離小。因為有這兩個影響,通信距離的小誤差反而提高了Sum-Dist的測距精度。最初,由于路徑存在彎曲,導(dǎo)致距離估計值過大,但在最短路徑的影響下,通信距離誤差的增大反而使距離估計值更小。
當(dāng)通信距離增大時,更多的節(jié)點(diǎn)可以直接通信,這樣就可以得到更多的直線路徑,并為最短路徑提供了更多選擇。所以,對于Sum-Dist算法來說,提高測距精度并不一定要增加錨節(jié)點(diǎn)比例。
評論