资源简介
本算法是DV_hop算法的改进型,对于不同的信标节点比例情况下,定位误差的对比;已经随着网络节点密度变化,定位误差的变化趋势图。
针对于 最大使然估计的方法修改于牛顿迭代的方法,提高定位精度
代码片段和文件信息
function [ MSEVARbadnode] = DV_hop(AreaSizeNodeCountBeaconPerRangeCom);
%=======================================================
% function: DV_hop 算法
% Inputs:
% AreaSize -- 节点布置区域大小,建议为正方形,单位为 m
% NodeCount -- 节点的总数量 = 信标节点 + 未知节点
% BeaconPer -- 信标节点的密度(以%表示占总节点数的比例)
% RangeCom -- 节点间通信距离,单位为 m,保持和 AreaSize 一致
% Outputs:
% MSE -- 某一信标节点密度参数下,均方误差 MSE
% VAR
% badnode -- 不能定位的点的个数
%
% Notes: Copyright by zxy in fuzhou . china . 2011 03 10
% Any problem conact with zhou2090@126.com
%
%
% revsion 1.0 2011 03 11 23:11 初始版本
% revsion 1.1 2011 03 11 23:41 输入参数变化的情况下
%=======================================================
switch nargin
case 0 AreaSize = 100;
NodeCount = 100;
BeaconPer = 10;
RangeCom = 20;
case 1 NodeCount = 100;
BeaconPer = 10;
RangeCom = 20;
case 2 BeaconPer = 10;
RangeCom = 20;
case 3 RangeCom = 20;
end
% 是否利用 已存储的数据进行仿真?
Flag_quick = 0;
if Flag_quick == 1
UNnode = load(‘UNnode_new.mat‘);
UNnode = UNnode.UNnode;
else
% 生成 topo 无线传感器网络的节点 分布拓扑图 均匀随机分布
[ topo_BEtopo_UN ] = topology(AreaSizeNodeCountBeaconPerRangeCom);
% 设置信标节点、未知节点的相关信息:如跳数、距离等
[ BEnode UNnode Distance_all] = hops_all( topo_BE topo_UN RangeCom);
% 利用线性方程组 进行求解
[ UNnodebadID ] = LS( UNnodetopo_BERangeCom);
end
% 实际位置和定位位置的误差 ERROR
for i=1:length(UNnode)
error(1i) = abs( UNnode(i).X - UNnode(i).estX );
error(2i) = abs( UNnode(i).Y - UNnode(i).estY );
error(3i) = (error(1i)^2 + error(2i)^2)^0.5;
end
% ------------------------------------------
% 定位误差的 均方值
% 对于不能定位的点,不能考虑到误差中所以将他们的误差设置为0即不影响误差
% 但是 求平均的时候 注意分母应该为 N - length(badID)
for j=1:length(badID)
error(3badID(j)) = 0;
end
alpha = 1;
if length(UNnode) - length(badID)~=0
% 定位误差的 均方值
MSEtemp = sum( error(3:) );
MSE = MSEtemp/(length(UNnode) - length(badID));
% 定位误差的 方差值
% 这里的方差是有误差的,因为有些badnode的error设置为0,这对MSE没有影响,
% 但有VAR,是有影响的,所以参考意义不大
VAR = var(error(3:) );
else
% 若所有的点都不能定位则认为,最大误差为100%*RangeCom
disp(‘all the note can not locate...‘);
MSE = alpha * RangeCom;
VAR = alpha * RangeCom;
end
% 不能定位的节点数
badnode = length(badID);
%{
% 画出定位误差分布图
figure(2);
plot(error(3:)‘r-‘);
xlabel(‘ 未知节点 个数 编号 ‘);
ylabel(‘ 各个未知节点的定位误差 /m ‘);
hold on;
title(‘定位误差‘);
%}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2956 2011-03-18 10:51 DV_hop_new\DV_hop.m
文件 6554 2011-03-18 13:22 DV_hop_new\hops_all.m
文件 4080 2011-03-18 10:50 DV_hop_new\LS.m
文件 7270 2011-03-18 13:17 DV_hop_new\MSE.fig
文件 588 2011-03-12 11:28 DV_hop_new\test_verify_dis.m
文件 2921 2011-03-18 10:32 DV_hop_new\topology.m
文件 1541 2011-03-12 11:30 DV_hop_new\verify_distance.m
目录 0 2011-03-23 17:24 DV_hop_new
----------- --------- ---------- ----- ----
25910 8
- 上一篇:卷积码的程序和论文,有程序和误码率的图
- 下一篇:放大器放大信号protues仿真
相关资源
- 基于改进的微粒群算法的WSN节点部署
- 改进模拟退火算法求解TSP问题
- 基于改进_ACS-3-opt_蚁群算法的_TSP
- 蚁群\\基于改进蚁群算法的柔性作业车
- 基于遗传算法的改进FCM算法GA-FCM
- 基于信号非圆特性的信源个数估计改
- 平面改进RRT算法路径规划
- 《数据结构》实验报告 涉及客房管理
- CEEMDAN算法,EEMD和EMD的进一步改进算法
- 改进的广义回归神经网络模型的态势
- 改进的细菌觅食优化算法用于双阈值
- 前馈-改进PID算法在智能车控制上的应
- leach源代码改进
- 改进的VMPSO
- 改进的denaulay三角网渐次插入生成算法
- ios应用源码之房贷计算器改进 201812
- 论文研究-AWGN信道中一种改进OFDM系统
- 尺度FAST结合改进LBP的特征匹配方法
- PL/0编译程序的研究与改进
- 改进鸟群算法源码(1).rar
- 锁相环的改进及仿真_李尧.pdf
- 目标检测改进点.pdf
- 改进的自适应遗传算法和粒子群算法
- K-medoids聚类源代码K-means改进
- 信息素增量动态更新的改进蚁群算法
- SVM实现负荷预测,其中包含基本SVM,
- 实验四:实现一个unix命令解释程序代
- 引力搜索算法
- 基于改进离散粒子群算法的电力系统
- 数字式自适应均衡器基于卡尔曼算法
评论
共有 条评论