【WSN定位】基于chan、taylor算法实现移动基站无源定位附matlab代码

1 内容介绍

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

2 仿真代码

%  本程序实现taylor算法3参考占定位

clear all

clc

tic

BSN = 3;            %基站数目

N = 200;            %产生的位置个数

Noise =0.015; %测距误差1.5厘米

distribute = [];

num0 = 0;

num1 = 0;

num2 = 0;

num3 = 0;

num4 = 0;

num5 = 0;

            

%  %*********************画出大于门限值的点的位置*******************

   

       figure(1);

       grid on

        if(rmse_t(i)>0.05)     

               EMSTI

               MS

               rmse_t(i)

               plot(MS(1,1),MS(1,2),'o');

               hold on  

        elseif((rmse_t(i)<0.05)&&(rmse_t(i)>0.04))

               plot(MS(1,1),MS(1,2),'*');

               hold on  

        elseif((rmse_t(i)<0.04)&&(rmse_t(i)>0.03))

               plot(MS(1,1),MS(1,2),'d');

               hold on  

        elseif((rmse_t(i)<0.03)&&(rmse_t(i)>0.02))

               plot(MS(1,1),MS(1,2),'+');

               hold on  

        elseif((rmse_t(i)>0.01)&&(rmse_t(i)<0.02))

               plot(MS(1,1),MS(1,2),'x');

               hold on      

        elseif((rmse_t(i)<0.01))

               plot(MS(1,1),MS(1,2),'.');

               hold on  

        end

        

%*****************统计各个误差段的分布情况******************        

       if(rmse_t(i)>0.05)

           num5 = num5+1;

       elseif(rmse_t(i)>0.04)

           num4 = num4+1;

       elseif(rmse_t(i)>0.03)

           num3 = num3+1;

       elseif(rmse_t(i)>0.02)

           num2 = num2+1;

       elseif(rmse_t(i)>0.01)

           num1 = num1+1;

       else

           num0 = num0+1;

       end

        

end

%*******************************************************

       plot(BS(1,1),BS(2,1),'rs','LineWidth',2,...

                'MarkerEdgeColor','k',...

                'MarkerFaceColor','r',...

                'MarkerSize',10)

       plot(BS(1,2),BS(2,2),'rs','LineWidth',2,...

                'MarkerEdgeColor','k',...

                'MarkerFaceColor','r',...

                'MarkerSize',10)

       plot(BS(1,3),BS(2,3),'rs','LineWidth',2,...

                'MarkerEdgeColor','k',...

                'MarkerFaceColor','r',...

                'MarkerSize',10)

%         plot(BS(1,4),BS(2,4),'rs','LineWidth',2,...

%                 'MarkerEdgeColor','k',...

%                 'MarkerFaceColor','r',...

%                 'MarkerSize',10)

       grid on

       axis ([0 50 0 50]);

       

%***********************需要显示的值***********************

 site_distribute = [num0 num1 num2 num3 num4 num5];

 distribute = site_distribute./N

 site_distribute1 = [num0 ...

     num0+num1 ...

     num0+num1+num2 ...

     num0+num1+num2+num3...

     num0+num1+num2+num3+num4...

     num0+num1+num2+num3+num4+num5];

 distribute1 = site_distribute1./N

 %*******************画出误差分布图**********************

 figure(2)

 error = 1:1:6;

 bar(error,distribute,'b');

 xlabel('定位误差分布(cm)');

 ylabel('百分比');

 figure(3)

 bar(error,distribute1,'b');

 xlabel('定位误差(cm)');

 ylabel('百分比');

%**************************************************** 

3 运行结果

4 参考文献

[1]罗平. 基于TDOA的无线传感器网络定位系统研究与设计[D]. 昆明理工大学, 2014.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值