xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

基于DV-Hop的無線傳感網絡定位算法的matlab仿真代碼。研究定位誤差與錨節點個數和通信半徑的關系。設定在100*100的區域內,總節點數為100,分別計算出通信半徑為15,25,50時,定位誤差隨錨節點個數3~30改變時的變化情況。

資源截圖

代碼片段和文件信息

%?BorderLengh----?正方形區域的邊長,單位:m
%?NodeSum--------?網絡節點總數
%?AnchorSum------?錨節點數
%?UnodeSum-------?未知節點數=NodeSum-AnchorSum
%?Nxy------------?節點標號{Nxy}?3*NodeSum
%?Anchor---------?錨節點坐標矩陣?2*AnchorSum
%?Unode----------?未知節點坐標矩陣?2*(NodeSum-AnchorSum)
%?R--------------?節點通信距離
%{
????struct?ANode??----?錨節點
????{?ID
??????X
??????Y
??????hops(NodeSum)?????????--?與所有節點的跳數
??????Md????????????????????--?該節點的平均每跳距離
??????dis(AnchorSum)????????--?與所有錨節點的距離
????}

????struct?UNode??----?未知節點
?????{?ID
???????X
???????Y
???????hops(AnchorSum)??????--?與所有錨節點的跳數
???????xx???????????????????--?估計坐標
???????yy
???????dis(AnchorSum1)?????--?該未知節點到各錨節點的距離
??????}
%}
clear?all;?close?all;
BorderLength=100;
NodeSum=100;
R=[152550];
ASum=[36912151821242730];
times=100;???????%?times?次測量,取平均定位誤差

for?rs=1:3?????%?R=152550
????
for?as=1:10????%?橫坐標AnchorSum?變化
????clear?AnchorSum;?clear?UnodeSum;?
????AnchorSum=ASum(as);
????UnodeSum=NodeSum-AnchorSum;
????clear?error;?clear?Etemp;?clear?Error;?clear?badNo;
for?T=1:times?
%111111111?初始化網絡拓撲,隨機生成節點的坐標?111111111111---------------
clear?Nxy;?clear?Anchor;?clear?Unode;
Anchor=BorderLength.*(rand(2AnchorSum)-0.5);?%?產生隨機坐標錨節點
Unode=BorderLength.*(rand(2UnodeSum)-0.5);???
Nxy=[[1:NodeSum];Anchor?Unode];???????????%?產生帶邏輯號的節點坐標
%?畫出節點分布圖
%{
if?T==1
???figure(1)
???plot(Nxy(21:AnchorSum)Nxy(31:AnchorSum)‘r*‘)?%畫出錨節點分布圖
???hold?on;?%畫出未知點分布
???plot(Nxy(2(AnchorSum+1):NodeSum)Nxy(3(AnchorSum+1):NodeSum)‘bo‘)
???xlim([-BorderLength/2BorderLength/2]);
???ylim([-BorderLength/2BorderLength/2]);
???title(‘*?錨節點???o?未知節點‘)
???grid?on;
end
%}

%2222222222?計算節點間的最小跳數?2222222222222222----------
%?初始化節點間距離、跳數矩陣
clear?Dnode;?clear?h;
for?i=1:NodeSum
????for?j=1:i
????????Dnode(ij)=sqrt((Nxy(2i)-Nxy(2j))^2+(Nxy(3i)-Nxy(3j))^2);?
????????Dnode(ji)=Dnode(ij);?????????%?第i個節點與第j個節點間的相互距離
????????if?(Dnode(ij)<=R(rs))&&(Dnode(ij)>0)
????????????h(ij)=1;?h(ji)=1;????????%?通信范圍內為1跳鄰居節點
????????elseif?i==j
????????????h(ij)=0;??????????????????%?自身節點跳距為0
????????else?h(ij)=inf;?h(ji)=inf;???%?通信范圍外初始跳數為無窮大
????????end
????end
end???????
%?最短路徑算法計算節點間跳數?
for?k=1:NodeSum
????for?i=1:NodeSum
????????for?j=1:i
????????????if?(h(ik)+h(kj)????????????????h(ij)=h(ik)+h(kj);
????????????????h(ji)=h(ij);
????????????end
????????end
????end
end
%===============================================================
clear?ANode;?clear?UNode;
for?i=1:AnchorSum
????ANode(i).ID=i;
????ANode(i).X=Anchor(1i);
????ANode(i).Y=Anchor(2i);
????ANode(i).hops=h(i:);???????????????%?--?與所有節點的跳數
????ANode(i).Md=0;??????????????????????%?--?平均每跳距離初始化為0
????ANode(i).dis=Dnode(i1:AnchorSum);??%?--?與所有錨節點的距離
end

for?i=1:UnodeSum
????UNode(i).ID=i;
????UNode(i).X=Unode(1i);
????UNode(i).Y=Unode(2i);
????UNode(i).hops=h(AnchorSum+i1:AnchorSum);??%?--?與所有錨節點的跳數
????UNode(i).xx=0;???????????????

評論

共有 條評論