数字钥匙关键技术:UWB(超宽带)实现原理一文讲透

news2024/11/12 23:51:52

在之前的文章《一文讲透超宽带(UWB)前世今生》中,我们从起源、定义、标准、发展、应用等角度概述了UWB技术。根据UWB的特性,其基础功能分为:数据传输、雷达成像、测距定位。接下来我们将概述其数据传输和雷达成像功能,并对UWB当前的主要运用:测距定位功能进行深入解析。

图1 UWB主题图片

►►►数据传输功能概述

1.1 UWB数据传输原理

UWB利用纳秒级的非正弦波窄脉冲传输数据,因此所占的频谱范围很宽。UWB实质是脉冲调制波,它通过对具有很陡的上升和下降时间的冲击脉冲进行直接调制,而非使用传统的无线传输方式所采用的载波调制。UWB发射的信号既可看成是基带信号(从常规无线电考虑),也可看成是射频信号(从发射信号频谱分量考虑)。

► UWB具有天然的安全性,由于UWB信号一般把信号能量弥散在极宽的频带范围内,对于一般通信系统来说,UWB信号相当于白噪声信号,从电子噪声中将脉冲信号检测出来是一件非常困难的事。

► UWB的射频部分采用随机编码对UWB脉冲信号进行伪随机化后,脉冲监听将更加困难。

► 实际应用中,CCC联盟与802.15.4工作组提出在UWB的PHY层和数据链路层中,在每一帧的发送中,都对整体数据与时间戳加密(防篡改时间戳),这样使UWB通信有了极高的安全性。

图片

图2 UWB数据传输

1.2UWB数据传输应用

UWB的标准中主要定义了相关的物理层与链路层,所以并没有一个类似于蓝牙的协议栈,因此用户可以直接将自己的数据向信道中发送,如苹果所使用的U1芯片,采用的UWB的协议就是苹果自行定义的私有协议,对于任何一个UWB的组织用户都可以使用自己的通讯协议进行数据的交流。

图3 UWB在802.15.4中定义的MAC层通用帧格式

如上图,UWB芯片的SDK包中,给到的用户的发送函数直接为发送数据的API,用户需要自己配置mac地址,配置信道,而所有的UWB芯片当配置一致的情况下,其实都是能够监听到数据的。所有的数据传输实际上都是由使用的厂商自定义的。

►►►雷达成像功能概述

2.1UWB雷达原理

“雷达”是英文Radar的音译,Radar是Radio Detection and Ranging的缩写,意为“无线电探测和测距”,即用无线电探测目标并测定目标的空间位置。雷达也被称做“无线电定位”。其原理是雷达设备发射电磁波对目标进行照射并接收其回波,由此获得目标至电磁波发射点的距离、径向速度、方位、高度等信息。

UWB利用超短脉冲信号,通过测量信号的时延和幅度来确定目标的位置和速度。因此,UWB可用作雷达成像。UWB雷达的超宽带信号带宽非常宽,可以达到几个GHz。这种信号具有很短的脉冲宽度和很高的峰值功率,可以穿透障碍物并在复杂环境中进行探测。

UWB雷达发射脉冲信号,并接收该脉冲信号经障碍物反射后的回波,通过对回波扰动的分析来判断UWB雷达附近是否存在物体,这种检测方式我们称之为CIR(Channel Impulse Response,信道脉冲响应)技术。UWB雷达通过接收到的CIR来探测周围物体及其运动。当UWB雷达周围有物体时,CIR对应位置就会有脉冲峰;当周围物体运动时,由于多普勒效应,对应的CIR值就会变化。通过分析CIR频谱来估计目标运动状态。

图4 UWB在不同物体的CIR表现

2.2UWB成像原理

UWB成像技术是UWB雷达的扩展应用,UWB成像可以简单理解为UWB脉冲波组成一堵无形的墙,这面墙向前走的时候碰到任何物体都会局部反弹回去,这面初始平整的墙返回的时候就有了凹凸变化,这个凹凸变化就描绘出了物体的一个面。

UWB成像通过软件算法解析实现,对于UWB硬件底层,只需要将检测的这一个区域变化的曲线,如上图的一个整体趋势告知算法,用算法的运算来描绘出物体的样貌,这种成像的方式是应用层所关注且通用的,除UWB雷达外,底层硬件不管使用毫米波雷达还是激光雷达,其成像原理都是采用的这种方式。

图5 UWB雷达成像原理

2.3UWB雷达成像应用

当前UWB雷达成像应用最广泛的领域主要包括:

► 军事领域:便携式UWB穿墙雷达能够实现对障碍物后面目标的探测、定位、成像和追踪。在应用层面主要包含建筑内部成像,探测、跟踪运动目标。在军事装备、火灾及地震救援等场景有着广泛的应用前景和价值。

► 医疗领域:非接触式UWB生命监测雷达不同于传统的电极和传感器接触的检测形式,可实现较远距离无接触式检测患者的呼吸和心跳,可以在不影响患者正常休息的情况下,实现对患者的生命体征实时监测。

► 车载领域:UWB活体雷达通过活体微动作感知算法,实现车内生命体征的非接触式存在性检测,支持静态呼吸检测,有效防止儿童、宠物等无行为能力的乘客滞留车内。UWB脚踢雷达基于运动感知算法,实现车尾箱的非接触式脚踢检测。

►►►测距定位功能解析

3.1测距原理

最简单最直接的知道距离的方式便是获取时间,距离 = 时间*速度。电磁波在空中的飞行时间ToF(Time of flight,飞行时间)可以认为是光速(299792458 m/s)。UWB作为一种高频脉冲调制波可以为我们提供准确到皮秒级别的时间戳精度。那么我们可以简单算一下,1ps的时间光传播了多少米呢?29979245800*1E-12 = 0.02998cm。这个理论精度无疑是非常好的。当然实际精度不可能这么好,原因在于我们无法找到一个ps级别不出现误差的晶振,那么在正常有源晶振的情况下,UWB的实际精度可以保证在10cm以内,10cm这个精度在现有的无线点对点测距领域已经遥遥领先于其它无线技术了。

► 双向测距(TWR,Two Way Ranging)

双向测距顾名思义就是通过两边的一收一发以及一发一收的相互配合下进行的测距,与比较常见的红外测距不同,红外测距就是典型的单向测距即为只用一个设备,发和收获取到了位置,缺点也很明显,必须有一个合适的反射点,双向测距则解决了这个问题,双方进行通讯后获取到了距离信息,且是双方都可以获取到测距信息。

► 单边双向测距(SS-TWR,Single Side-TWR)

前文讲解了测距的基本物理原理,这里我们就来讲解一下UWB测距的最基础的实现原理,单边双向测距。

SS-TWR原理,如下图,Device A在其自己时钟TA1 时刻发起测距,Device B在其自己时钟TB1时刻收到了Device A发起的测距帧,即Tprop1 = (TB1-TA1 ) Device A 于Device B的距离就应该是Tprop  *C(光速)。但是由于Device A 和Device B 时钟不同步,所以无法确认Tprop1 的值。为了确定Tprop1 的值,Device B在收到Device A发起的测距帧后,固定延时Treply 的时间回复Device A,发射时间为TB2, Device A在TA2的时刻收到,即Tprop2 =   (TA2-TB2),假设在这段时间,Device A设备Device B的位置没有发生过改变。那么理论Tprop1 = Tprop2。为了确认Tprop的时间,在Device A的时间轴上,从发送时刻TA1 到收到Device B 回复帧的时刻TA2的耗时Troud = (TA2-TA1 ),在Device B的时间轴上,收到Device A 发起测距帧的时刻TB1到自己回复Device A 的时刻TB2的耗时Treply = (TB2-TB1 )。所以Tprop = (Troud - Treply)/2。即距离为Tprop  *C。

图6 SS-TWR测距原理

举个例子:

地球和火星的距离。来自地球的老王,打电话给在火星上的老马并看了现在的时间12:00:00(时分秒),老马接到电话,时间是18:00:00,过了一会儿,在18:05:00老马打了电话给老王,老王在12:13:00接到电话。因为他们的频率是一致都是以秒为单位(假设),通过这些数据可以计算信号在地球和火星间飞行的时间,往返的时间是13-5=8分钟,(8分钟/2)*C(光速)即为地球距离火星的距离。

► 双边双向测距(DS-TWR,Double Side - TWR)

其实双边测距是从单边测距扩展而来,主要是用于解决测距双方时钟精度不一致导致的误差问题。

在SS-TWR的基础上,由于设备自身时钟,由于温度以及设备精度误差等原因导致的时钟偏移,即Treply延时时间越长,从而导致计算距离时的误差越大。为了减小以及消除这种误差,DS-TWR增加反向测量补偿,如下图所示。使用两个往返时间测量,降低Treply的延时带来的误差。

距离为Tprop  *C。

图7 DS-TWR测距原理

3.2基于测距的定位方式(三边定位)

► 基于测距的定位原理

我们已经获知了距离,如果我们想进一步知道这个待定位对象(未知点)在这个空间的哪个地方或者在这个二维平面的哪个坐标点,就需要定位解算,从距离转化为坐标点必须有三个已知点以及待定位对象(未知点)与这三点之间的距离,拿到这些数据后即可获知待定位对象(未知点)的坐标点。基于测距的定位原理,其实从数学的角度分析,抽象后只有一种,就是毕达哥拉斯定理(Pythagorean Theorem)。这位古希腊数学家用代数的方式来描述平面几何,毕达哥拉斯定理其实在中国有一个更广为人知的名字即“勾股定理”。

► 三边定位解算

对于距离推算坐标,最简单的方式就是画圆,在理想情况下(三个圆均相交),三个圆会相交于一点,公式如下:

已知三点位置 (x1, y1), (x2, y2), (x3, y3)

已知未知点 (x0, y0) 到三点距离 d1, d2, d3

以 d1, d2, d3 为半径作三个圆,根据毕达哥拉斯定理,得出交点即未知点的位置计算公式:

但是对于距离计算,是不存在绝对理想的情况的,很大概率是三个圆相交甚至相离的情况下,计算出估计出一个近似值。

图8 三角定位原理

设未知点位置为 (x, y), 令其中的第一个球形 P1 的球心坐标为 (0, 0),P2 处于相同纵坐标,球心坐标为 (d, 0),P3 球心坐标为 (i, j),三个球形半径分别为 r1, r2, r3,z为三球形相交点与水平面高度。则有:

当 z = 0 时, 即为三个圆在水平面上相交为一点,首先解出 x:

将公式二变形,将公式一的 z^2 代入公式二,再代入公式三得到 y 的计算公式:

当然以上只是一个基本的公式推导,有助于大家进行理解,但是实际使用时我们不可能去不断进行坐标的转化然后解算,这样的处理过于浪费时间,代码也是很难实现。这时我们只需要引入线性代数将矩阵运算带入其中就可以简单快速的得到通用解答式。

基本公式组保持不变

进行拆解销项

经过线性代数矩阵的分割后

若我们令

为A矩阵

为B矩阵

那么待求未知点坐标(X,Y)为

至此这个求坐标问题就变为如何求A矩阵的逆矩阵,这里推荐简单好用的高斯逆矩阵,据说某些DSP芯片也可以直接求出逆矩阵,不管怎么样这种方式会带来更高的通用性与算法速率。

当然以上均为理想情况,但是实际使用时肯定会有各类误差影响导致这个圆不相切,有可能相交也有可能相离,这时候就应该再次用一种噪声消除的算法来进行处理以将数据运算到较为贴合现实值的坐标点上。

3.3基于到达时间差的定位方式(TDOA)

► TDOA

TDOA(Time Difference Of Arrival,到达时间差),是基于各参考基站(以下简称Anc)与待定位对象(以下简称Tag)之间的距离之差通过求解非线性双曲方程组来推断待定位对象相对于各参考基站的相对位置的定位方法。当基站之间的时间是完全同步的情况下,且晶振在一段时间内的误差极小(ppm的值极小),那么时间差值就是距离差值,原因是电磁波的传播速度是固定的。当Tag端发射一个信号到达几个Anc端后,只需要测量Tag发出的信号到达各Anc的到达时间之差即可得到对应的距离之差。

► 双曲定位解算

使用TDOA的前提就是各个基站有一个很精准的时间同步,这样才能保证Tag端发送出来的时间到达各个基站后有一个很高精度的时间差值。那么时间差值又如何转化为距离差值后又转化为坐标点呢?如果说测距后的三边定位是来解三个圆的相切问题,那么TDOA就是来解非线性双曲方程组。在TDOA定位系统中,进行定位解算时,首先需要根据到达时间差建立双曲线方程组:

Tag坐标:(X,Y)

各Anc坐标:(Xi,Xi),i = 1,2,3

各Anc到Tag的距离记为:

各Anc与A1到Tag的距离差记为:

那么这时候方程组的建立如下

求解非线性方程组的第一步通常都是要做线性化处理。

一种常见的线性化处理是进行泰勒级数展开并保留前两项,这里就不详细展开说明了,整体求解的图示如下:

图9 双曲定位原理

3.4基于相位差的定位方式(AOA/PDOA)

► AOA

AOA(Angle of Arrival,到达角度测距),是基于信号到达角度的定位算法是一种典型的基于测距的定位算法,通过某些硬件设备感知发射节点信号的到达方向,计算接收节点与锚节点之间的相对方位或角度,然后再利用三角测量法或其他方式计算出未知节点的位置。

► PDOA

PDOA(Phase Diference of Arrival,信号到达相位差),是通过测量相位差求出信号往返的传播时间来计算往返距离。本质上PDOA是AOA定位算法的一种延申。

► 相位差定位解算

其中α代表两根天线接收的信号中的First-Path 的到达相位之差(Phase Difference of Arrival),这也是PDOA 名字的来由。

图10 相位差定位原理

关于信驰达

深圳市信驰达科技有限公司(RF-star)是一家专注于物联网射频通信方案的高新技术企业,车联网联盟(CCC)和智慧车联产业生态联盟(ICCE)会员,通过ISO9001和IATF16949质量体系认证。2010年成立之初即成为美国TI公司官方授权方案商,之后陆续得到Silicon Labs、Nordic、Realtek、Espressif、ASR、卓胜微等海内外知名芯片企业的认可和支持。公司提供物联网无线模块和应用方案,包括BLE、Wi-Fi、UWB、Zigbee、Thread、Matter、Sub-1G、Wi-SUN、LoRa等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/987772.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOV7改进-对小目标有效的BiFormer注意力机制

如果要在sppcspc后面加一个注意力模块BiFormer 1、 普通加 1、models-common.py搜这个模块 2、直接加 3、全部复制下来,models新建文件 4、common导入进来 5、填上一层的输出通道数 2、模块里加 难点:在配置文件找到对应的这一块 yolov7x中 1、…

GE IS220PDIAH1A 336A4940CSP1 控制主板模块

GE IS220PDIAH1A 336A4940CSP1 是一款控制主板模块,通常用于工业自动化和控制系统中。以下是可能与这种控制主板模块相关的一些产品功能: 信号处理: GE IS220PDIAH1A 336A4940CSP1控制主板模块通常负责信号处理,可以接收、放大、滤…

机器学习算法基础--线性回归算法

目录 1.算法求解步骤 2.算法核心代码 3.算法效果展示 1.算法求解步骤 线性回归算法流程: #1.数据导入与处理 #2.创建线性回归模型并拟合数据 #3.计算回归直线的斜率和截距 #4.预测 x5 时的y值 #5.进行进一步预测 #5.进行进一步预测 2.算法核心代码 #机器学习算法基础第一…

数据结构与算法:练习与实践的重要性

文章目录 为什么练习与实践很重要?1. 熟练应用2. 问题解决能力3. 代码效率4. 面试准备 如何练习与实践?1. 在线评测平台2. 自主设计数据结构3. 解决不同类型的问题 持续学习与实践 🎉欢迎来到数据结构学习专栏~数据结构与算法:练习…

MySQL使用CASE WHEN统计SQL语句代替子查询SQL统计,CASE WHEN常用写法,根据不同的条件对数据进行分类、分组和聚合

MySQL中,写一个CASE WHEN的统计SQL语句,代替子查询SQL统计语句 假设我们有一个名为"orders"的表,其中包含订单信息,包括订单号(order_id)、订单金额(order_amount)等列。我们想要统计每个订单级别的订单数量&#xff0c…

深度学习:基于循环神经网络RNN实现自然语言生成

目录 1 循环神经网络介绍 1.1 什么是循环神经网络 1.2 RNN的网络结构 1.3 RNN的工作原理 ​编辑 1.4 RNN的应用场景 2 基于RNN实现语句生成 2.1 句子生成介绍 2.2 基于pytorch实现语句生成 2.3 完整代码 2.4 该模型的局限 3 总结 1 循环神经网络介绍 1.1 什么是循环…

Anaconda - 操作系统安装程序 简要介绍

Anaconda 简要介绍 1. Anaconda 简介2. Anaconda 体系结构3. Anaconda 开发模型4. Anaconda 启动概述5. Anaconda 源码1. 接口2. 自定义组件3. 硬盘分区:使用python-blivet包4. Bootloader5. 各个步骤的配置:6. 安装软件包:7. 安装控制&#…

华为强势回归,苹果iPhone15ProMax独占潜望式镜头,预计销量受损

9月8日消息,据集邦咨询发布的产业洞察报告显示,苹果即将发布的iPhone 15 Pro Max将会独占潜望式镜头,该机型的占比预计将会达到40%左右。报告同时预估,今年iPhone 15系列手机的出货量将达到8000万,相比去年同期增长6%以…

无需公网IP教你如何外网远程访问管家婆ERP进销存

文章目录 前言 1.管家婆服务2. 内网穿透2.1 安装cpolar内网穿透2.2 设置远程访问 3. 固定访问地址4. 配置固定公网访问地址 前言 管家婆辉煌系列产品是中小企业进销存、财务管理一体化的典范软件,历经十余年市场的洗礼,深受广大中小企业的欢迎&#xff…

冠达管理:不要误读“房贷利率降低”

最近,人人都知道房贷利率降了,但如果细问“怎么降的、哪些城市降了、将产生何种影响”,恐怕不少人都是水中望月。正因此,部分房地产中介、营销机构利用购房者的信息不对称劣势,刻意夸张房贷利率下降关于楼市价格的影响…

16 除自身以外数组的乘积

除自身以外数组的乘积 题解1 前缀积*后缀积题解2 空间优化 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数…

YAPI的搭建和使用

https://www.cnblogs.com/yehuisir/p/12315137.html 1、#进入数据库 mongo 2、#进入admin库 use admin 3、#添加一个用户root(此步骤可不执行) db.createUser({user:"root",pwd:"123456abc.COM",roles:["root"]}) …

【合作 】联通、壳牌、联想、国金证券等众多企业签约 Eolink !

联通、壳牌、联想、华润置地、中国铁塔等多家知名企业签约 Eolink,携手落地 API 全生命周期管理,感谢广大企业对 Eolink 的信任和选择! Eolink 致力于为企业提供最全面的 API 研发管理解决方案,提供高效、可靠的工具以及服务&…

深入了解 Axios 的 put 请求:使用技巧与最佳实践

在前端开发中,我们经常需要与后端服务器进行数据交互。其中,PUT 请求是一种常用的方法,用于向服务器发送更新或修改数据的请求。通过发送 PUT 请求,我们可以更新服务器上的资源状态。 Axios 是一个流行的 JavaScript 库&#xff0…

解析进程复制:父子进程内存地址的神秘之处

当涉及到进程复制时,有时会出现一个令人困惑的现象:在父进程和子进程中,某些变量的内存地址似乎是相同的,尽管它们实际上是独立的进程。下面我将简单解释这个现象以及背后的原因。 进程复制:父子进程的神秘关系 在多…

Vue3统一导出局部组件和全局组件

局部组件统一导出 components新增ComponentA.vue、ComponentB.vue两个组件 新增index.js进行组件统一导入 import ComponentA from ./ComponentA.vue import ComponentB from ./ComponentB.vueexport {ComponentA,ComponentB }使用 <template><ComponentA /><…

leetcode 150.逆波兰表达式求值

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;逆波兰表达式求值 思路&#xff1a; 假设这样一组表达式 { "2" , "1" , "" , "3" , "*" } 这是一种后缀表达式&#xff0c;首先我们准备一个栈&#xff0c;当如果不是…

电动汽车行业,这个技能绝了!

在当今不断演变的汽车工业中&#xff0c;电动汽车已经崭露头角&#xff0c;并迅速改变着我们的出行方式。这种创新的交通方式不仅减少了尾气排放&#xff0c;还为我们带来了更加环保和可持续的未来愿景。在电动汽车的核心&#xff0c;蓄电池技术正发挥着至关重要的作用。 然而&…

阿里巴巴推出D.Design文生图网站(免费10-20张图)

简介&#xff1a; d.design是阿里巴巴推出的一个基于人工智能的设计工具&#xff0c;可以帮助用户轻松创建3D模型和场景。该工具提供了丰富的素材库和功能&#xff0c;可以满足用户的各种需求。 ​堆友堆友是Alibaba Design打造的设计师全成长周期服务平台&#xff0c;围绕品质…

Python中处理异常和错误

作为一种强大且灵活的编程语言&#xff0c;Python 提供了许多机制来处理程序运行过程中可能出现的异常和错误。本文将详细介绍如何在 Python 中以“优雅、高效”的方式进行异常处理&#xff0c;并提供实用技巧帮助开发者更好地应对各种情况。无论您是初学者还是有经验的开发人员…