当前位置:   article > 正文

【WSN定位】基于chan算法、fang算法、taylor算法和最小二乘定位算法lsm实现目标定位matlab源码_chan算法和最小二乘法

chan算法和最小二乘法

1 模型

超宽带无线定位技术有广阔的应用前景,本文列出了主要针对室内物体的基于到达时间差(TDOA)的定位算法.首先对常用的chan算法、fang算法、taylor算法和最小二乘定位算法在LOS情况下的性能展开研究,得出此算法对于服从正态分布的误差有很好的性能,然后仿真结果表明,chan算法、fang算法、taylor算法和最小二乘定位算法定位性能可以达到理想效果.


 

2 部分代码

clc;
clear all
close all
BSN = 4;%基站数量
%目标位置
MSP(1,1) =250*rand(1);
MSP(1,2) = 250*rand(1);
% 算法开始:
Noise = 10*rand(1);%噪声
X=500;
Y=500;
BS = [0, X, 0,X
   0, 0,  Y,Y];          % 参考基站坐标
figure(1)%画出基站位置
plot(BS(1,1),BS(2,1),'rs','LineWidth',2,...
   'MarkerEdgeColor','k',...
   'MarkerFaceColor','r',...
   'MarkerSize',20);hold on
plot(BS(1,2),BS(2,2),'rs','LineWidth',2,...
   'MarkerEdgeColor','k',...
   'MarkerFaceColor','r',...
   'MarkerSize',20);
plot(BS(1,3),BS(2,3),'rs','LineWidth',2,...
   'MarkerEdgeColor','k',...
   'MarkerFaceColor','r',...
   'MarkerSize',20);
plot(BS(1,4),BS(2,4),'rs','LineWidth',2,...
   'MarkerEdgeColor','k',...
   'MarkerFaceColor','r',...
   'MarkerSize',20);
grid on
axis ([-10 1000 -10 1000]);
%chan算法
EMSCI = ChanAlgorithm1(BSN, MSP,BS, Noise);
EMSC(1, 1) = EMSCI(1);
EMSC(1, 2) = EMSCI(2);
%Fang算法
EMSCF = FangAlgorithm(BSN, MSP,BS, Noise);
EMSF(1, 1) = EMSCF(1);
EMSF(1, 2) = EMSCF(2);
%泰勒定位
EMST_taylor = TaylorAlgorithm1(BSN, MSP,BS, Noise);
%% 最小二乘法
EMST_lsm = lsm(BSN, MSP,BS, Noise)';

plot(MSP(1),MSP(2),'rp','MarkerSize',10);
plot(EMSC(1, 1),EMSC(1, 2),'co','MarkerSize',10);
plot(EMSF(1 ,1),EMSF(1 ,2),'ks','MarkerSize',10);
plot(EMST_taylor(1, 1),EMST_taylor(1, 2),'m^','MarkerSize',10);
plot(EMST_lsm(1 ,1),EMST_lsm(1 ,2),'g*','MarkerSize',10);
title('TDOA定位')
legend('基站1','基站2','基站3','基站4','目标真实位置','CHAN算法','FANG算法','泰勒定位','最小二乘定位')
chan_wucha(1)=sqrt((MSP(1) - EMSC(1,1))^2 + (MSP(2) - EMSC(1,2))^2);
Fang_wucha(1)=sqrt((MSP(1) - EMSF(1,1))^2 + (MSP(2) - EMSF(1,2))^2);
taylor_wucha(1)=sqrt((MSP(1) - EMST_taylor(1,1))^2 + (MSP(2) - EMST_taylor(1,2))^2);
lsm_wucha(1)=sqrt((MSP(1) - EMST_lsm(1,1))^2 + (MSP(2) - EMST_lsm(1,2))^2);
disp(['chan算法定位误差=',num2str(chan_wucha)])
disp(['Fang算法定位误差=',num2str(Fang_wucha)])
disp(['泰勒算法定位误差=',num2str(taylor_wucha)])
disp(['最小二乘法算法定位误差=',num2str(lsm_wucha)])
% rmse_c = TDOA_RMSE(MSP,EMSC);
% rmse_t = TDOA_RMSE(MSP,EMST);

3 仿真结果

4 参考文献

[1]张志良, 孙棣华, 张星霞. TDOA定位中到达时间及时间差误差的统计模型[J]. 重庆大学学报, 2006, 29(001):85-88.

[2]孙胜, 李辉, & 韩崇昭. (2002). 基于tdoa定位技术的仿真研究. 无线通信技术(04), 40-43.

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/607390
推荐阅读
  

闽ICP备14008679号