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

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

1 内容介绍

Chan 算法是 TDOA 定位方法的一个很赞的 trick。但是很多方法一旦从学术的角度去看,就罩上了奇异的光环。TDOAthe 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代码问题可私信交流。

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


相关文章
|
1天前
|
机器学习/深度学习 算法 API
【Paddle】PCA线性代数基础 + 领域应用:人脸识别算法(1.1w字超详细:附公式、代码)
【Paddle】PCA线性代数基础 + 领域应用:人脸识别算法(1.1w字超详细:附公式、代码)
6 0
|
5天前
|
算法 关系型数据库 C语言
卡尔曼滤波简介+ 算法实现代码(转)
卡尔曼滤波简介+ 算法实现代码(转)
17 4
|
6天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
6天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
3天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
1天前
|
资源调度 算法 块存储
m基于遗传优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了遗传优化的LDPC码OSD译码算法,通过自动搜索最佳偏移参数ΔΔ以提升纠错性能。该算法结合了低密度奇偶校验码和有序统计译码理论,利用遗传算法进行全局优化,避免手动调整,提高译码效率。核心程序包括编码、调制、AWGN信道模拟及软输入软输出译码等步骤,通过仿真曲线展示了不同SNR下的误码率性能。
7 1
|
4天前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。
|
4天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
13 1
|
6天前
|
算法 调度
考虑需求响应的微网优化调度模型【粒子群算法】【matlab】
考虑需求响应的微网优化调度模型【粒子群算法】【matlab】