資源簡介
該文件主要包含,無線傳感器網絡(WSN)中的拓撲模型的建立,及該網絡中無線節點接收信號的衰減模型
代碼片段和文件信息
function?calculate_neighbor(comm_ranchor_comm_rmodelDOI)
%?comm_r:通信半徑
%?anchor_comm_r:錨節點的通信半徑是未知節點通信半徑的倍數
%?model:選擇的通信模型
%?DOI:不規則度,model為?‘DOI?Model‘‘RIM?Model‘時有效否則可缺省
????load?‘../Deploy?Nodes/coordinates.mat‘;
????load?‘Transmission?Model/Parameters_Of_Models.mat‘;
????directory=cd;
????if?nargin==2??%輸入默認采用Regular?Model
????????model=‘Regular?Model‘;
????end
????cd([‘Transmission?Model/Regular?Model‘]);
????RSS_threshold=dist2rss(comm_r);
????SendingPower=RSS_threshold+Pl_d0+10*eta*log10(comm_r*anchor_comm_r/d0);
????cd([‘../‘model]);
????try
????????for?i=1:all_nodes.nodes_n
????????????dist=sqrt(sum(transpose((repmat(all_nodes.true(i:)all_nodes.nodes_n-11)-all_nodes.true([1:i-1i+1:all_nodes.nodes_n]:)).^2)));
????????????RSS=dist2rss(dist);
????????????if?i<=all_nodes.anchors_n
????????????????RSS(1:all_nodes.anchors_n-1)=RSS(1:all_nodes.anchors_n-1)+(SendingPower-Pt);
????????????else
????????????????RSS(1:all_nodes.anchors_n)=RSS(1:all_nodes.anchors_n)+(SendingPower-Pt);
????????????end
????????????neighbor_i=RSS>RSS_threshold;
????????????neighbor_matrix(i:)=[neighbor_i(1:i-1)0neighbor_i(i:all_nodes.nodes_n-1)];
????????????neighbor_rss(i:)=[RSS(1:i-1)SendingPowerRSS(i:all_nodes.nodes_n-1)];????????
????????end
????catch
????????for?i=1:all_nodes.nodes_n
????????????dist=sqrt(sum(transpose((repmat(all_nodes.true(i:)all_nodes.nodes_n-11)-all_nodes.true([1:i-1i+1:all_nodes.nodes_n]:)).^2)));
????????????if?DOI==0
????????????????K_i=ones(1all_nodes.nodes_n-1);
????????????else????????????????
????????????????K(1)=1;
????????????????for?k=2:360
????????????????????doi=unifrnd(-DOIDOI11);
????????????????????K(k)=K(k-1)+doi;
????????????????end
????????????????while?abs(K(1)-K(360))>DOI
????????????????????for?k=2:360
????????????????????????doi=unifrnd(-DOIDOI11);
????????????????????????K(k)=K(k-1)+doi;
????????????????????end
????????????????end
????????????????K_i=K(unidrnd(3601all_nodes.nodes_n-1));?
????????????end
????????????RSS=dist2rss(distK_i);
????????????if?i<=all_nodes.anchors_n
????????????????RSS(1:all_nodes.anchors_n-1)=RSS(1:all_nodes.anchors_n-1)+(SendingPower-Pt);
????????????else
????????????????RSS(1:all_nodes.anchors_n)=RSS(1:all_nodes.anchors_n)+(SendingPower-Pt);
????????????end
????????????neighbor_i=RSS>RSS_threshold;
????????????neighbor_matrix(i:)=[neighbor_i(1:i-1)0neighbor_i(i:all_nodes.nodes_n-1)];
????????????neighbor_rss(i:)=[RSS(1:i-1)SendingPowerRSS(i:all_nodes.nodes_n-1)];
????????end
????end
????cd(directory);
????try
????????save?neighbor.mat?neighbor_matrix?neighbor_rss?comm_r?anchor_comm_r?model?DOI;
????catch
????????save?neighbor.mat?neighbor_matrix?neighbor_rss?comm_r?anchor_comm_r?model;
????end
end
評論
共有 條評論