【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

个人主页:Matlab科研工作室

个人信条:格物致知。

更多Matlab仿真内容点击

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

Chan 算法是 TDOA 定位方法的一个很赞的 trick。但是很多方法一旦从学术的角度去看,就罩上了奇异的光环。TDOA,the time differnces of arrival,到达时间差。Chan 算法1是非递归双曲线方程组解法,具有解析表达式解。其主要的特点为在测量误差服从理想高斯分布时,它的定位精度高、计算量小。该算法的推导的前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。

【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码_第1张图片

【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码_第2张图片

【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码_第3张图片

【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码_第4张图片

【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码_第5张图片

【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码_第6张图片

⛄ 部分代码

%%%%%%%%在Chan算法中引入松弛变量:

%%%%%%%%通过加入松弛变量和采用搜索的算法,消除NLOS传播对定位影响,不需要先验信息,

%%%%%%%%但是由于其估计结果依赖于Chan算法估计的初值,当NLOS较大时,精度会显著下降。

close all

clear;

clc;

X0=1000;      %%%%均匀随机产生移动台的位置

Y0=2000;

ErrVar=30;

NLOS=0.3;

c=300000000;

Zpp=[0;0];

RMSEp=0;

SampleNo=1;       %%%%独立运行的第几次

SampleTotal=1000;   %%%%独立运行的次数

NumRight=0;

RRx_1=0;

RRy_1=0;

X(1)=0;      Y(1)=0;   %%%服务基站的坐标

X(2)=0;      Y(2)=4000;   %%%各个基站的坐标  共采用四个基站

X(3)=3464;   Y(3)=2000;

X(4)=-3464;  Y(4)=2000;

figure(1)%画出基站位置

plot(X0,Y0,'gp','LineWidth',2,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor','g',...

    'MarkerSize',20);hold on

plot(X(1,1),Y(1),'rs','LineWidth',2,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor','r',...

    'MarkerSize',20);hold on

plot(X(1,2),Y(2),'rs','LineWidth',2,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor','r',...

    'MarkerSize',20);

plot(X(1,3),Y(3),'rs','LineWidth',2,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor','r',...

    'MarkerSize',20);

plot(X(1,4),Y(4),'rs','LineWidth',2,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor','r',...

    'MarkerSize',20);

grid on

m=1;

while m<=4

    R(m)=sqrt((X(m)-X0)^2+(Y(m)-Y0)^2);

    m=m+1;

end;

while SampleNo<=SampleTotal              %%%%%%抽样次数最大循环

 count=count+1;

 plot(Zp(1,1),Zp(2,1),'go','LineWidth',2,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor','g',...

    'MarkerSize',10);

end;                  %%%%%%%%%%%%%%%收敛结束

RMSE=sqrt((Zp(1)-X0)^2+(Zp(2)-Y0)^2);

Zpp=Zpp+Zp;

RMSEp=RMSEp+RMSE;

RRx_1_c=(Zp(1)-X0)^2;

RRy_1_c=(Zp(2)-Y0)^2;

RRx_1=RRx_1+RRx_1_c;

RRy_1=RRy_1+RRy_1_c;

SampleNo=SampleNo+1;

end;                    %%%%%%%%%%%%%%%%%%%独立运行SampleTotal次结束

legend('目标真实位置','基站1','基站2','基站3','基站4','引入松弛变量CHAN算法')

Zpp=Zpp/SampleTotal

RMSEp=RMSEp/SampleTotal

RRx_1=RRx_1/SampleTotal

RRy_1=RRy_1/SampleTotal

⛄ 运行结果

【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码_第7张图片

【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码_第8张图片

【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码_第9张图片

⛄ 参考文献

[1]沙勇. "基于Matlab的WSN定位算法仿真设计." 齐齐哈尔大学学报:自然科学版 33.6(2017):3.

[2]张凤梅邹丽. "基于一种改进的无源目标定位算法在WSN中的研究." 计算机应用研究 033.004(2016):1212-1215.

❤️ 关注我领取海量matlab电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除

你可能感兴趣的:(WSN,算法,matlab,开发语言)