资源简介
本算法是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仿真
相关资源
- 改进的BP神经网络算法
- 基于改进BSC的电信投资项目后评估体
- 蓝卡式瓦捞桶制造过程的改进
- 在改进的软壁AdS / QCD模型中具有2 +
- 分散改进的手性有效场理论中的核子
- 来自色散改进手性有效场理论的准确
- 基于改进的SOM神经网络在产品配置中
- 矿用6kV静止无功发生器的改进PR控制
- 柔性直流输电系统的改进型相对控制
- 瓦斯涌出量预测的GM(11)模型改进
- 基于改进灰色模型的矿井瓦斯涌出量
- 改进的GM(11)模型在城市规划货运量
- 基于改进势场栅格法的移动机器人路
- 基于改进鱼群算法的矿用链式STATCOM装
- 一种改进的谐波电流检测方法
- 一种改进的谐波电流检测算法
- 基于改进自适应谐波检测法的有源电
- 基于改进人工势场的矿井导航装置路
- 利用改进人工势场法的智能车避障路
- 基于改进人工势场法的救灾机器人路
- 基于改进EMD算法的跳频信号参数估计
- 改进的马赫-曾德尔干涉仪的光纤传感
- 一种改进的载频交叠重构干涉术在光
- 圆弧齿线圆柱齿轮的改进加工方法
- 基于Simulation的涡旋压缩机支架体动态
- 综机设备齿轮磨损的主要途径及改进
- 基于改进的MEI法建立太湖总磷参照浓
- 一种改进的基于序列到序列框架的知
- emd分解端点效应论文及改进程序
- 论文研究-发现概率参数自适应调节的
评论
共有 条评论