UWB

此处说的UWB是超宽带,代码是matlab的一个简单的函数,函数输入若干个待定位点的横纵坐标,输出经UWB定位后的位置信息(坐标)。默认2维、任意数量的待定位点,4个基站,基站数量和误差在程序内可调,程序链接:
https://github.com/evandworld/UWB/blob/main/UWBlocation.m
代码里面只有少量英文注释,编写时参考了论文:《基于 UKF 的 UWB 和 GPS 融合定位算法》,但是并没有参考别人的定位程序,所以可能有部分惯用变量的定义与大家的共识有出入,建议配合本文中文解释一起食用。

程序解释

关于UWB的介绍不再过多介绍,需要的网上面一搜一大堆,上面的论文也说到了一点,自行下载。

初始化

先初始化程序,包括函数形式的初始化(定义函数的行数和列数)、基站的坐标(用baseP表示)。

计算距离真实值

这里的距离没有用d表示,而是用R,因为后面计算坐标时,距离是作为圆的半径来算的。
距离真实值有勾股定理迭代计算:

for i=1:length(X_)R(i,:) = ((X_(i)-baseX_).^2+(Y_(i)-baseY_).^2).^0.5;
end

这里迭代i次对应的是有i个待求的点,而不是i个基站。因为选择的基站数量有4个,所以每次迭代时,产生一个4维的列向量,迭代完成后,产生一个i行4列的矩阵R。

计算时间真实值

这个就很简单了,时间是距离除以光速:

time = R/(3e8);

如果要模拟TDOA啥的,在前面乘2

加噪声形成时间真实值

为了应对不同的情况,同时增加仿真的真实性,噪声如下:

time_actually = time + err*randn(length(X_),length(baseX_)).*time;

这里的err是大函数的输入,留了这个接口是为了调试的时候需要调节噪声的情况可能较多,放在函数输入值里面方便调。
顺便说明一下,个人理解,UWB的误差大多在这个时间计算上,或者说可以等效到时间计算上,所以这里时间误差的大小是本仿真程序的唯一噪声加入点。

计算真实的距离

根据时间计算真实的待定位点与基站的距离。也很简单,直接吧前面的time_actually乘上3e8

计算位置

这里就是参考上面论文的地方了,以待测点为圆心(x,y),与基站1(x1,x2)的距离半径(R1)为圆,可以得到下式:
(x1−x)2+(y1−y)2=R12(x_1-x)^2+(y_1-y)^2=R_1^2 (x1​−x)2+(y1​−y)2=R12​
同理,以待测点为圆心,与基站2(x2,y2)的距离为半径(R2)画圆,可以得到下式:
(x2−x)2+(y2−y)2=R22(x_2-x)^2+(y_2-y)^2=R_2^2 (x2​−x)2+(y2​−y)2=R22​
两式联立,得到:
x12−x22+2x(x2−x1)+y12−y22+2y(y2−y1)=d12−d22x_1^2-x_2^2+2x(x_2-x_1)+y_1^2-y_2^2+2y(y_2-y_1)=d_1^2-d_2^2 x12​−x22​+2x(x2​−x1​)+y12​−y22​+2y(y2​−y1​)=d12​−d22​
如果一共有4个基站,则上式有四个,组成一个矩阵表示方法:
HX=aHX=aHX=a
其中:

图片里的d就是我用的R
对H求伪逆H∗H^*H∗,X=H∗aX=H^* aX=H∗a
X即为待求点的坐标,在程序里面以p_out表示

结果输出与绘图

结果直接输出p_out即可
绘图方面,绘制散列图:
用到的函数:

fig(p,p_out);

UWB定位matlab代码及详细解析(附github下载链接)相关推荐

  1. C语言读写BMP图片(附Github下载链接和视频讲解地址)

    BMP全称(BITMAP)是微软WINDOWS系统默认使用的一种通用图片数据存储格式,特点是结构清晰,解析简单和多平台支持广泛.其文件结构由文件头结构体,文件信息头结构体,调色板(可选),以及图片数据 ...

  2. 10 个超炫酷后台控制面板(附 GitHub下载链接)

    点击上方"朱小厮的博客",选择"设为星标" 做积极的人,而不是积极废人 Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的 ...

  3. 汇编语言实验十完整代码和详细解析

    汇编语言实验十完整代码和详细解析 建议先自己思考问题的答案,不懂则返回看书 扩展建议: [非必要内容,个人经验感悟] 从这儿开始,我们正式接触子程序,主要是通过 call和 ret 来实现的.这样就涉 ...

  4. CVPR2020| 最新CVPR2020论文抢先看,附全部下载链接!

    持续更新Github: https://github.com/Sophia-11/Awesome-CVPR-Paper 2021持续论文集锦百度云请在[计算机视觉联盟]后台回复  CVPR2021 往 ...

  5. Cozmo人工智能机器人玩具/教具完整版中文说明书和介绍(附应用下载链接)

    Cozmo(Anki)人工智能AI机器人Robot完整版中文说明书和介绍 (附应用下载链接)https://download.csdn.net/download/zhangrelay/10854427 ...

  6. 安装Windows11【附镜像下载链接】

    虚拟机VMware中安装Windows 11[附镜像下载链接] 前言: 如果你想体验Windows 11,又担心玩坏物理机,不愿使用自己的笔记本尝试,那么使用虚拟机试水 is a good idea. ...

  7. 【华为推荐】基于反事实学习的推荐系统研究.pdf(附pdf下载链接)

    今天给大家分享的是华为诺亚方舟实验室董振华博士在2019中国大数据技术大会(BDTC)上做的分享<基于反事实学习的推荐系统研究.pdf>,之前公众号曾给大家推送过该分享对应的论文,感兴趣的 ...

  8. 【干货】神策数据朱德康:用户中台建设实践解析(附PPT下载链接)

    本文根据神策数据融合媒体行业高级解决方案顾问朱德康<用户中台建设实践解析>直播整理而成. 本次直播相应PPT已收录到小程序省时查报告中,大家可以到省时查报告小程序中查看并下载PPT全文. ...

  9. 【干货】经理级管理者的角色定位:打造卓越领导力.pdf(附PPT下载链接)

    大家好,我是文文,今天给大家分享一份干货资料<经理级管理者的角色定位:打造卓越领导力.pdf>,管理者以及正在向管理岗位转型的伙伴们参考哦!更多管理相关干货资料可以到小程序省时查报告中搜索 ...

最新文章

  1. 20180829-Java多线程编程
  2. MySQL数据库中默认事务隔离级别是?
  3. Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优
  4. 防灾科技学院期末软件测试,防灾科技学院2014 软件测试客观题
  5. 如何为linux 桌面文件内存,linux - 桌面Linux发行版中.desktop文件的功能是什么? - 堆栈内存溢出...
  6. 加载JavaScript文件时nginx报::ERR_CONTENT_LENGTH_MISMATCH错误解决
  7. matlab方差分析
  8. 数据结构与算法C语言版—— 数据结构的详细介绍
  9. 获取HG526超级密码
  10. 使用HEVC官方编码器HM
  11. 3Dmax移动,旋转,缩放图标不显示
  12. 美团外卖订单中心的演进
  13. excel锁定单元格不能修改_3步让表格只能输入不能修改,保护表格格式,快速搞定数据汇总...
  14. 论文笔记| 后门攻击|Composite Backdoor Attack for Deep Neural Network byMixing Existing Benign Features
  15. athletes 表包含运动员姓名,年纪和代表国家。下面哪个查询可以找出代表每个国家最年轻的运动员情况?
  16. 计算机网络管理工作记录,网络管理如何查看电脑开机、关机记录
  17. [技术分享 – FCS 篇] 驭龙五式5之神龙摆尾:如果没有 WSUS…
  18. lisp语言(转自百度)
  19. 4. 从IPv4到IPv6
  20. 【开发工具】IDEA Lua 开发环境配置(完整无错)

热门文章

  1. 安晴同学|大榕树下的友谊
  2. OpenCV基础入门系列基本操作——贰
  3. 一篇来自程序员的日记
  4. LeetCode(Python)—— 相同的树(简单)
  5. 某OA ajax.do 未授权漏洞任意文件上传getshell复现
  6. 如何用 CSS 制作动画圆环图形图标
  7. Echarts-- 圆环图2.0
  8. C++11多线程第三篇:线程传参详解,detach()大坑,成员函数做线程参数
  9. Nintendo帐户,用户ID和网络ID:Nintendo所有令人困惑的帐户,说明
  10. 深圳软件测试培训:Js中的变量