资源简介
一种基于RSSI的改进三边测量法用于提高待定位节点定位精度。改进的三边测量法利用多边形权重函数综合多次估算的待定位节点坐标信息然后通过对权重值的正规化进而确定待定位节点位置坐标。仿真分析表明与原三边测量法相比改进后的算法可明显提高定位精度。同时该算法不需要增加硬件设施来实现特殊的功能保证了原三边测量法的低成本优势。权重多边形、奇异组合与角度权重函数在实际定位过程中经研究分析发现不管任何一种测距方式都会存在测量误差所以在采用三边测量法进行定位时会出现圆心坐标及半径已知的三个圆不能够相较于一点。
代码片段和文件信息
function result = knn(trainX testY zuobiaoZ k)
% Classify using the Nearest neighbor algorithm
% Inputs:
% trainX - Train sample matrix n*d n points each d dimentions
% testY - Test sample matrix N*d 测试样本矩阵
% k - Number of nearest neighbors
% Outputs:
% result - 定位点坐标
% 判断trainX和testY的样本点维数是否相同
trainX =[34 35 38 40 45 60 62 67;36 34 40 36 42 67 40 65;62 40 48 36 47 67 34 62;38 36 40 45 52 65 70 65; 67 42 50 35 36 70 37 64]
testY = [38 36 39 41 46 61 64 67;70 38 40 55 50 60 55 40;76 33 56 78 40 52 62 35;76 35 23 61 76 35 57 62;87 62 34 47 36 82 21 63];
zuobiaoZ = [0.0 3.0;1.5 3.0; 3.0 3.0;0.0 1.5;3.01.5];
k =3;
zhunqueZ = [0.3 3.0;1.8 1.8;2.0 1.7;0.8 2.9;3.0 2.2] % 待定位点的准确坐标
if size(trainX2) ~= size(testY2)
error (‘trainX and testZ must have same column dimensions !‘) % 维数d应该相同 在同一个点搜集到的WiFi热点个数相同
end
% 判断k近邻是否可取
n = size(trainX1); % 测试样本点个数 参考点的个数必须大于k的个数
if ( n < k)
error(‘You specified more neighbors than existed points.‘)
end % 选择的近邻数不大于样本点数
N = size(testY 1); % testZ的行数,即测试集的样本点数
% 初始化result矩阵N*1列向量标出testZ的类别
% 按照所选的度量距离,对testY的N个点逐个进行k近邻分类
for i = 1:N
dist = sum((trainX - ones(n1)*testY(i:)).^22); % dist 表示第i个测试点分别与n个训练样本点之间的欧式距离的平方 按行进行求和 dist是个矩阵
[m indices] = sort(dist); % 按列进行升序排列
histclass = zuobiaoZ([indices(1:k)]: ); % 取前k个最短距离对应的点所属的类别,求出k个临近点的坐标
gd = sum(histclass); % k个临近点的坐标相加
result(i:) =gd/k; % 求得定位点的坐标
x(i) =result(i1);
y(i) =result(i2);
x1(i) =zhunqueZ(i1);
y1(i) =zhunqueZ(i2);
end
plot(xy‘square‘‘MarkerSize‘7);
hold on;
plot(x1y1‘*‘‘MarkerSize‘7);
axis([0 3 0 3]);
set(gca‘xtick‘[0:0.2:3]‘ytick‘[0:0.2:3])
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2735 2014-04-17 13:54 knn1.m
----------- --------- ---------- ----- ----
2735 1
- 上一篇:荧光光谱分析
- 下一篇:单模型机动目标跟踪算法的仿真研究
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论