• 大小: 758B
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: wknn  

资源简介

室内定位wknn代码,基于指纹的室内定位。

资源截图

代码片段和文件信息

%W-KNN算法
%FP1为匹配指纹
%FP2为待匹配数据
function [MinKX_es] = wknn(FP1FP2K)

N = length(FP1);
M = length(FP2);
X_es = zeros(2M);%X和Y坐标的指纹差值矩阵
sm = zeros(3N);%记录指纹差值信息
MinK = zeros(3KM);%记录指纹差值信息

for i = 1:M    %按顺序完成每一个测试点的计算
    
    %sm = zeros(3N);
    for j = 1:N
        for k = 1:7    %4个基站
            match(kj) = abs(FP2(ki) - FP1(kj)); %待匹配数据与各指纹之间的差值
        end
        sm(1j) = sum(match(:j));%求出4个指纹差值的和
        sm(2j) = FP1(8j);%X坐标赋值
        sm(3j) = FP1(9j);%Y坐标赋值
    end
    for k = 1 : K
        [min] = min(sm[]2);  %找出最小的K个差值   ??????
        MinK(1ki) = sm(1n(1));%找出最小的值并赋值
        sm(1n(1)) = 1000;%消除该值,继续寻找下一个最小的值
        MinK(2ki) = sm(2n(1));%X坐标赋值
        MinK(3ki) = sm(3n(1));%Y坐标赋值
    end
    DisFp = MinK(1:i);%将所有的差值赋值到DisFp矩阵上
    DisFp = 1 ./ (DisFp ./ DisFp(1)) ;%求差值的倒数
    SumFp = sum(DisFp);%求差值的和
    Beta1 = DisFp ./ SumFp ;    %相应指纹的权值
%     SumFp = sum(MinK(1:i));
%     for k = 1 : K
%         Beta1(k) = MinK(1K-k+1i) / SumFp ;
%     end
    for k = 1 : K
        X_es(1:2i) = X_es(1:2i) + Beta1(k) .* MinK(2:3ki) ; %算出K个X和Y坐标加权平均
    end
        
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1344  2015-06-16 15:23  wknn.m

----------- ---------  ---------- -----  ----

                 1344                    1


评论

共有 条评论

相关资源