首页 > 行业资讯 > 【WSN定位】基于chan算法实现无源定位附matlab代码

【WSN定位】基于chan算法实现无源定位附matlab代码

时间:2023-02-27 来源: 浏览:

【WSN定位】基于chan算法实现无源定位附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #雷达通信matlab源码 131个

1 内容介绍

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

  读取基站经纬度 --- 获取每个基站测到目标信号的时间 -- 根据速度 * 时间求其基站与基站到目标的距离差,得到两组方程 -- 使用 CHAN 算法求解该双曲线方程组 -- 舍弃无效解,得到目标位置,与 GPS 定位进行比较,使用大地主题公式求其距离误差。

2 仿真代码

% TDOA定位的Chan算法Matlab源码

clc;

clear all;

close all

weizhi=xlsread(’4月21日.xlsx’,’实验四’,’B1:C3’);

shijian=xlsread(’4月21日.xlsx’,’实验四’,’D1:D150’);

gps=xlsread(’4月21日.xlsx’,’实验四’,’B4:C4’);

cc = 3e8;%g光速

length=floor(length(shijian)/3);

x=zeros(1,length);

y=zeros(1,length);

x3=zeros(1,length);

y1=zeros(1,length);

[X(1,1),X(1,2)]= jingwei(weizhi(1,1),weizhi(1,2));   %网关1

[X(2,1),X(2,2)]= jingwei(weizhi(2,1),weizhi(2,2));   %网关2

[X(3,1),X(3,2)]= jingwei(weizhi(3,1),weizhi(3,2));   %网关3

% X(1,1)=weizhi(1,1);X(1,2)=weizhi(1,2);   %网关1

% X(2,1)=weizhi(2,1);X(2,2)=weizhi(2,2);   %网关1

% X(3,1)=weizhi(3,1);X(3,2)=weizhi(3,2);   %网关1

X=X’;

for i=1:length

    

    for j= 1:3

        K(j)=X(1,j)^2 + X(2,j)^2;

    end

%% 方差

m=mean(diff,2);

var=sum((diff(1,:)-m).^2)/100 ;

    %% 画图

    figure(1)

    t=1:100;

    plot(t,diff,’bo-’);

    xlabel(’次数’);

    ylabel(’误差大小(m)’);    axis([0 100 0 700])

    title(’实验四’)

  disp([’平均误差为’,num2str(mean(diff,2)),’方差为’,num2str(var)]);

    figure(2)

    plot( weizhi(1,1),weizhi(1,2),’rs’,’LineWidth’,2,...

        ’MarkerEdgeColor’,’k’,...

        ’MarkerFaceColor’,’r’,...

        ’MarkerSize’,10);hold on

    plot(weizhi(2,1),weizhi(2,2),’rs’,’LineWidth’,2,...

        ’MarkerEdgeColor’,’k’,...

        ’MarkerFaceColor’,’m’,...

        ’MarkerSize’,10);hold on

    plot(weizhi(3,1),weizhi(3,2),’rs’,’LineWidth’,2,...

        ’MarkerEdgeColor’,’k’,...

        ’MarkerFaceColor’,’g’,...

        ’MarkerSize’,10);hold on

    plot(gps(1,1),gps(1,2),’yo’,’LineWidth’,2,...

        ’MarkerEdgeColor’,’k’,...

        ’MarkerFaceColor’,’y’,...

        ’MarkerSize’,10);hold on

     title(’实验四’)

     xlabel(’经度’);

     ylabel(’纬度’);

    for i=1:length

        plot(xx(i),yy(i),’bo’);hold on

    end

     axis([108.93 108.95 34.05 34.09]);

    legend(’基站1’,’基站2’,’基站3’,’目标真实位置’,’TDOA定位结果’);

         figure(3);

     plot( weizhi(1,1),weizhi(1,2),’rs’,’LineWidth’,2,...

        ’MarkerEdgeColor’,’k’,...

        ’MarkerFaceColor’,’r’,...

        ’MarkerSize’,10);hold on

    plot(weizhi(2,1),weizhi(2,2),’rs’,’LineWidth’,2,...

        ’MarkerEdgeColor’,’k’,...

        ’MarkerFaceColor’,’m’,...

        ’MarkerSize’,10);hold on

    plot(weizhi(3,1),weizhi(3,2),’rs’,’LineWidth’,2,...

        ’MarkerEdgeColor’,’k’,...

        ’MarkerFaceColor’,’g’,...

        ’MarkerSize’,10);hold on

    plot(gps(1,1),gps(1,2),’yo’,’LineWidth’,2,...

        ’MarkerEdgeColor’,’k’,...

        ’MarkerFaceColor’,’y’,...

        ’MarkerSize’,10);hold on

      legend(’基站1’,’基站2’,’基站3’,’目标真实位置’);

     title(’实验四’)

     xlabel(’经度’);

     ylabel(’纬度’);

3 运行结果

4 参考文献

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

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

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

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐