当前位置: 首页 > news >正文

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

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

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

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

⛄ 部分代码

%%%%%%%%在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

⛄ 运行结果

⛄ 参考文献

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

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

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

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

相关文章:

  • 【LeetCode每日一题】2022-10-02 777. 在LR字符串中交换相邻字符 Java实现
  • 网络安全从业人员能力图谱
  • 从程序员的角度看人类通信史
  • OpenCV之识别银行卡号
  • 回归-线性回归算法(房价预测项目)
  • 【一起学数据结构与算法】Java实现双链表
  • Spring Boot集成阿里云视频点播服务的过程记录
  • SpringBoot社区居民联系方式管理系统(附源码)
  • [ccc3.0][数字钥匙] UWB配置和使用(二)
  • MongoDB(一)
  • C#面向对象程序设计课程实验二: 实验名称:Windows 窗体程序
  • MySql主从同步
  • java基于springboot+Vue+nodejs的高校运动会报名管理系统 element
  • 单链表❀数据结构
  • Linux——孤儿进程|进程的优先级 用top命令去修改优先级 其他概念 环境变量 PATH 获取环境变量
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【comparator, comparable】小总结
  • Apache Pulsar 2.1 重磅发布
  • fetch 从初识到应用
  • iOS编译提示和导航提示
  • laravel with 查询列表限制条数
  • Meteor的表单提交:Form
  • MySQL的数据类型
  • Redux 中间件分析
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 看域名解析域名安全对SEO的影响
  • 应用生命周期终极 DevOps 工具包
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • linux 淘宝开源监控工具tsar
  • Linux权限管理(week1_day5)--技术流ken
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • $.ajax()
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET 常见的偏门问题
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .ui文件相关
  • /boot 内存空间不够
  • @Transactional 详解
  • [\u4e00-\u9fa5] //匹配中文字符
  • [2018-01-08] Python强化周的第一天
  • [Android]创建TabBar
  • [APIO2012] 派遣 dispatching
  • [BZOJ 3282] Tree 【LCT】