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

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

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代码问题可私信交流。

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

相关文章
|
1月前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
227 1
|
22天前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
5天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
7天前
|
算法
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
18 3
|
7天前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
11 3
|
7天前
|
算法
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
28 1
|
9天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
15 0
|
12天前
|
机器学习/深度学习 算法
【MATLAB】GA_ELM神经网络时序预测算法
【MATLAB】GA_ELM神经网络时序预测算法
286 9
|
17天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出"验证成功",否则输出"验证失败"。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
18天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】

热门文章

最新文章