TDOA基站 之 时间同步
TDOA 和 TWR相比,标签可以用最少的信息来定位,但是对于基站要求很高,需要“时间同步”。
这也是TDOA算法的核心部分,很多套件对此讳莫如深,希望能沟通过本文使读者能对TODA同步有一定初步了解。
TDOA实现目的相同,但是实现方法每家各不相同,这里介绍一种简单的时间同步原理。
定位系统中有标签Tag,基站ANA 和ANB,为了时间同步,引入同步节点RN,所有时间都会同步到同步节点上
下图为例说明同步方法,纵轴是时间。为了简化,认为RN与ANA 和ANB距离相等。
时间同步主要流程:
同步节点RN周期性以广播的方法发送同步信号,上图中是R1 R2,使用delayed tx发送,发送信息标记了发送时间
基站接收同步信号并记录接收时间
标签周期性发送定位信号,基站接收定位信号,记录接收时间。
分析如上各个时间戳:
同步节点发送两次同步信号,在基站ANA接收到以后,获得两个发送时间差 R2-R1,以及两个对应的接收时间差A2-A1. 这两个都是时钟数量,对应的绝对时间相同,而时钟数量不同,这个不同是因为每个模块时钟差异造成的。
基站ANA会收到标签发送来的定位信号,时间再AT,相对于A1的时间差是AT-A1
基站收到的定位数据时间戳是在基站ANA上,那么可以映射到同步节点间RN上,利用比例关系
t/(AT-A1) = ( R2-R1)/(A2-A1)
--》 tANA = (AT-A1)*( R2-R1)/(A2-A1)
tANA 就是把AT映射到RN后的时间
同理,可以将BT映射过去 (BT-B1)*( R2-R1)/(B2-B1)
得到的两个映射时间都是基于RN节点,相对于R1 的delay时间,两者可以进行比较了。假如标签离基站ANA较远,可以计算时间差
tdelay = (AT-A1)*( R2-R1)/(A2-A1) - (BT-B1)*( R2-R1)/(B2-B1)
distance = tdelay*C
其中(AT-A1)*( R2-R1)/(A2-A1) - (BT-B1)*( R2-R1)/(B2-B1) 这些量都是可以通过发送的两个信号的到的具体值
所以distance 是一个可以计算的数字。
结合ANA 和 ANB 坐标和 distance,可以建立一个双曲线方法,标签落在这个双曲线上。
再加入一个ANC,用类似方法,
ANA和 ANC或者ANB 和 ANC 再构建一个双曲线
联立两个双曲线,解得坐标就是标签的坐标,定位完成。
更多内容参考蓝点无限论坛bphero.com.cn
TDOA基站 之 时间同步的更多相关文章
- TDOA 之 基站逻辑代码实现
在前一篇博文里描述了基站的逻辑部分,这里贴出来具体代码实现.https://www.cnblogs.com/tuzhuke/p/11689881.html 1 Sync 信息部分 case 'S': ...
- TDOA 之 基站接收数据
基站主要 接收同步节点发来的同步信号,代码里定义为S信息. 以及标签节点发来的定位信号,代码中定义为T信号. 代码中使用中断以及帧过滤功能,对模块只接收自己关心设定好的信息,通过中断告知上层,而不是长 ...
- 开源BTS产品中存在多处漏洞,攻击者或可劫持手机通讯基站
前言 在过去的几周时间里,我从多个方面对GSM的安全性进行了调查和研究,例如GSM通信协议中存在的漏洞.除此之外,我还对目前世界上应用最为广泛的BTS软件进行了安全审计.在这篇文章中,我将会给大家介绍 ...
- LED室内定位算法:RSS,TOA,AOA,TDOA(转载)
转载自:https://blog.csdn.net/baidu_38197452/article/details/77115935 基于LED的室内定位算法大致可以分为四类: 1. 几何测量法 这种方 ...
- TDOA 之数据测试
许久没有更新TDOA了,近期断断续续编写学习,开始测试TDOA数据.记录如下 1 测试场地,如下所示,4个基站摆放位置是一个正方形,变成为1.6m,被测试标签放置正中心. 2 获得原始数据 test_ ...
- TDOA 之TDOA算法python实现
这里指的TDOA算法,实际是解两个双曲线方程,由于两个二次方程设计东西较多,如果强解,计算量很大,从网上参考了如下链接: 算法推到:https://blog.csdn.net/lpsl1882/art ...
- TDOA 基础之 双曲线
TDOA 的算法基础就是时间差,根据时间差换算出距离差,后面的数学理论知识就是双曲线交点问题. 双曲线方程是2次方程,解算曲线交点也就是两个2次方程求解. 首先看双曲线定义(百度百科): 双曲线(Hy ...
- 设置WindowServer2012 时间同步NTP
在powershell中以管理员身份运行以下命令即可 w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:MANUAL Stop-Ser ...
- Hadoop技巧(02):时间同步
阅读目录 序 时间同步 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 在实际部署 ...
随机推荐
- 【转帖】如果进入CPU的世界,时间会是怎样的?
如果进入CPU的世界,时间会是怎样的? 2018-02-26 20:52:46 world6 阅读数 1295更多 分类专栏: 网络 缓存服务 架构 版权声明:本文为博主原创文章,遵循CC 4.0 ...
- 分布式自增ID算法snowflake
分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的,作为索引非常不好,严重影响性能. ...
- C++ 与 MATLAB 混合编程总结(14)
1. 前言 因为毕业设计的需求,研究了一下,C++如何与MATLAB一起混合编程,中间走了一些弯路,这里总结一下. 我用的主要是C++如何调用MATLAB,而没有涉及MATLAB如何调用C++. 注意 ...
- MAC帧封装
通过控制台输入一段文字,输出MAC帧的2进制和16进制的字符串,主要是求FCS.这里只考虑单帧的情况,即只考虑输入数据在1字节~1500字节之间的情况,对于更长的数据暂不考虑. 1.MAC帧基本格式 ...
- MGR安装记录
装好所有MySQL5.7, 打开GTID 修改my.cnf文件: ## group replication transaction_write_set_extraction = XXHASH64 ## ...
- C# 、子窗体调用父窗体属性、方法
namespace Test { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } p ...
- 如何判断当前修改过的datatable的某一列值是否为int型或double类型
如何判断当前修改过的datatable的某一列值是否为int型或double类型 今天在做datatable数据验证时碰到要对datatable的列数据进行数据类型校验,因此记录一下本人校验的方法,如 ...
- 转 winfrom组件圆角
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 线程二(Monitor)
Monitor 类的命名空间是 System.Threading,它的用法和 lock 本质是一样的. 使用 Monitor 类锁定资源的代码如下. Monitor.Enter(object); tr ...
- python学习笔记(CMD运行文件并传入参数)
好久没更新博客了 最近换了份新工作 有时间来整理一篇 在命令行CMD中执行文件过程中如何传入并识别参数 # -*- coding: utf-8 -*- # CMD运行类 # 作者: # 时间: 201 ...