UWB定位matlab代码及详细解析(附github下载链接)
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下载链接)相关推荐
- C语言读写BMP图片(附Github下载链接和视频讲解地址)
BMP全称(BITMAP)是微软WINDOWS系统默认使用的一种通用图片数据存储格式,特点是结构清晰,解析简单和多平台支持广泛.其文件结构由文件头结构体,文件信息头结构体,调色板(可选),以及图片数据 ...
- 10 个超炫酷后台控制面板(附 GitHub下载链接)
点击上方"朱小厮的博客",选择"设为星标" 做积极的人,而不是积极废人 Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的 ...
- 汇编语言实验十完整代码和详细解析
汇编语言实验十完整代码和详细解析 建议先自己思考问题的答案,不懂则返回看书 扩展建议: [非必要内容,个人经验感悟] 从这儿开始,我们正式接触子程序,主要是通过 call和 ret 来实现的.这样就涉 ...
- CVPR2020| 最新CVPR2020论文抢先看,附全部下载链接!
持续更新Github: https://github.com/Sophia-11/Awesome-CVPR-Paper 2021持续论文集锦百度云请在[计算机视觉联盟]后台回复 CVPR2021 往 ...
- Cozmo人工智能机器人玩具/教具完整版中文说明书和介绍(附应用下载链接)
Cozmo(Anki)人工智能AI机器人Robot完整版中文说明书和介绍 (附应用下载链接)https://download.csdn.net/download/zhangrelay/10854427 ...
- 安装Windows11【附镜像下载链接】
虚拟机VMware中安装Windows 11[附镜像下载链接] 前言: 如果你想体验Windows 11,又担心玩坏物理机,不愿使用自己的笔记本尝试,那么使用虚拟机试水 is a good idea. ...
- 【华为推荐】基于反事实学习的推荐系统研究.pdf(附pdf下载链接)
今天给大家分享的是华为诺亚方舟实验室董振华博士在2019中国大数据技术大会(BDTC)上做的分享<基于反事实学习的推荐系统研究.pdf>,之前公众号曾给大家推送过该分享对应的论文,感兴趣的 ...
- 【干货】神策数据朱德康:用户中台建设实践解析(附PPT下载链接)
本文根据神策数据融合媒体行业高级解决方案顾问朱德康<用户中台建设实践解析>直播整理而成. 本次直播相应PPT已收录到小程序省时查报告中,大家可以到省时查报告小程序中查看并下载PPT全文. ...
- 【干货】经理级管理者的角色定位:打造卓越领导力.pdf(附PPT下载链接)
大家好,我是文文,今天给大家分享一份干货资料<经理级管理者的角色定位:打造卓越领导力.pdf>,管理者以及正在向管理岗位转型的伙伴们参考哦!更多管理相关干货资料可以到小程序省时查报告中搜索 ...
最新文章
- 20180829-Java多线程编程
- MySQL数据库中默认事务隔离级别是?
- Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优
- 防灾科技学院期末软件测试,防灾科技学院2014 软件测试客观题
- 如何为linux 桌面文件内存,linux - 桌面Linux发行版中.desktop文件的功能是什么? - 堆栈内存溢出...
- 加载JavaScript文件时nginx报::ERR_CONTENT_LENGTH_MISMATCH错误解决
- matlab方差分析
- 数据结构与算法C语言版—— 数据结构的详细介绍
- 获取HG526超级密码
- 使用HEVC官方编码器HM
- 3Dmax移动,旋转,缩放图标不显示
- 美团外卖订单中心的演进
- excel锁定单元格不能修改_3步让表格只能输入不能修改,保护表格格式,快速搞定数据汇总...
- 论文笔记| 后门攻击|Composite Backdoor Attack for Deep Neural Network byMixing Existing Benign Features
- athletes 表包含运动员姓名,年纪和代表国家。下面哪个查询可以找出代表每个国家最年轻的运动员情况?
- 计算机网络管理工作记录,网络管理如何查看电脑开机、关机记录
- [技术分享 – FCS 篇] 驭龙五式5之神龙摆尾:如果没有 WSUS…
- lisp语言(转自百度)
- 4. 从IPv4到IPv6
- 【开发工具】IDEA Lua 开发环境配置(完整无错)