[7] TyrLoc: A Low-cost Multi-technology MIMO Localization System with A Single RF Chain 论文精读

发布时间 2023-06-26 17:38:18作者: 爱和九九

来自mobisys '21 的一篇工作,读一读。先吐槽一下,这个论文的图,竟然不是矢量图?

看题目其实挺有意思,使用一个射频链去实现了MIMO,听上去很不可思议不?

摘要

这项工作提出了TyrLoc的设计和实现,这是一种精确的多技术切换MIMO定位系统,可以部署在低成本的sdr上。TyrLoc仅使用单个RF Chain在相干时间内异步打开天线阵列中的每个天线,从而模仿MIMO平台来精确定位WIFI,蓝牙低功耗(BLE)和LoRa设备的位置。TyrLoc做出了三个关键的技术贡献。首先,TyrLoc修改廉价的PlutoSDR固件,该固件控制天线切换模式并标记与每个天线相关的信号。其次,它开发了一种两阶段细粒度载波频率偏移(CFO)校准算法,该算法利用灵活的天线切换方向,比基线方法精度高10倍。第三,TyrLoc采用插值变换方法,以方便在存在缺失天线的情况下估计到达角(AoA)。在多路径丰富的室内环境下,基于aoc的定位实验表明,采用8根天线的TyrLoc在WIFI、BLE和LoRa中值误差分别为63cm、39cm和32cm。

结论

 结论总结的内容和摘要里的contribution 差不多,就是三点:

1、他们修改了PlutoSDR固件,使得具有单个接收RF链的SDR实现大规模的天线阵列;

2、设计了一种新的两阶段的校准CFO的算法;

3、在WIFI、BLE和Lora上测试了TyrLoc的定位效果。

OK,那接下来我们来看看他具体是咋做的。

 

介绍

 开篇从Localization的角度来展开故事,即现如今室内定位已经被广泛使用,WIFI,BLE和Lora都被广泛用于室内定位,但是存在两个问题:

1、缺乏一种通用的多技术手段,或者说一种廉价的室内定位系统来给WIFI,BLE,Lora同时提供定位服务。

2、定位精度很大程度取决于天线阵列的尺寸,即size,现成的设备通常只配备了几个射频链,而一个链路只能链接一个天线,因此这大大限制了天线阵列的大小。

因此,将不同的射频信号统一起来做定位,就可以创造一个共存的,多模态的无线环境,这是很有意义的一件事情。比较直观的解决方案就是为每种技术都提供一种专门的定位服务,但是将这些技术捆绑在一起也太过于笨重且愚蠢,且昂贵了。

商用设备的优势常常忽略其劣势。比如WIFI通过CSI做定位可以从很少的网卡中提取CSI,但是BLE和LORA,目前没有一种商用器件去提供这种信息,这限制了它们的定位精度。

因此,作者想要用SDR去进行通用定位。

随后作者比较了通用的SDR:

 作者发现,大部分低端SDR都是SISO,而高端有些会配备MIMO,但是MIMO的价格十分昂贵。

此外,在日常实验或者生活中如果要做一个大型天线,这是很困难的,我们需要同步多台高端的SDR,不管是MIMO还是SISO都可以,因此做一个大型天线阵列很麻烦,还很贵。因为低端SDR很多都不支持同步。

因此,一个关键问题出现了——有没有一种可能,我们用低端的SDR去做一个通用的多技术定位系统?或者我们先不说这么大,我们先说同步,有没有可能用低端的SDR去实现一个天线阵列?

因此,作者设计了以下原型:

 即,用一台低端SDR,具体来说是SISO的PlutoSDR+一个RF开关+一个FPGA板子,实现了一个东西叫TyrLoc,主要挑战有三方面:

1、如何修改SDR固件让其支持MIMO?

一方面是采用一个FPGA板子和一个一口八通道开关来控制切换模式,并修改FPGA模块让未被使用的六位ADC输出天线序号标识,另外还设计了一个串并转换的模块去解决GPIO不足的问题(通用输入/输出(General Purpose Input/Output)

通常,GPIO接口用于与外部设备进行数字通信,例如读取传感器数据或控制外部设备。然而,某些情况下,可用的GPIO引脚数量可能有限。为了解决这个问题,可以使用串行-并行转换模块。

串行数据是按照时间顺序一个接一个地传输的数据位,而并行数据是同时传输多个数据位的方式。串行-并行转换模块的作用是接收串行数据,并将其转换为并行数据,以便在更少的GPIO引脚上同时传输更多的数据位。

通过将串行数据转换为并行数据,可以实现在有限的GPIO接口上传输更多的数据,从而解决GPIO不足的问题。这样,系统可以通过较少的GPIO引脚实现更多的功能或与更多的外部设备进行通信。

2、在没有参考射频链的前提下,如何校准CFO?

本文提出了一种针对于单射频链路的虚拟MIMO天线阵列消除CFO的方案,2 stage。

3、如果在交换间隔内没有收到数据包,如何保证AOA的鲁棒性?

直白的说,就是如果天线中有天线丢包了,如何处理这种情况?他们设计了一种方案。

最后,他们测量了AOA和定位分别在WIFI,BLE和LoRa上的精度。

 

总体设计

 首先,整体上,TyrLoc由三部分组成,分别是天线切换模块、信号处理软件模块和多技术定位模块。

天线切换模块

天线切换模块将配备单对收发器的PlutoSDR转换为一个具有8个天线阵列的虚拟MIMO系统。

利用一个单刀多掷开关,将开关链接到射频链,并部署一个FPGA板子去控制天线的切换。与此同时,对于不同天线要打上不同的tag,并且在ADC中,利用未被使用的6比特来存储天线的tag id,因此在理论上,TyrLoc可以实现最大 2^6 = 64天线阵列。

TyrLoc还实现了通用异步收发器(universal asynchronous receiver-transmitter (UART) )模块,更改并行信号为串行,并与天线切换同步标记数据。(为什么要实现异步收发?留下疑问)

信号处理软件模块

这个模块的作用在于将不同天线上时间异步接收到的信号采样进行缝合,利用对齐后的信号进行信道参数估计。

对于报文的检测,TyrLoc采用的是被动接收数据包,通过Schmidl-Cox算法检测WIFI数据包的起始时间,对于BLE和LoRa则是使用其前导结构检测。

另外,软件模块也包含CFO的校准问题——前面提到的2 stage的CFO 校准,这是TyrLoc的主要创新点。

最后,对于一个非均匀(前面提到了,有可能天线阵列中某天线可能会丢包)的天线阵列如何估计其AOA,也要写到信号处理模块中。

多技术定位模块

 即利用上述协议无关的多天线阵列构建算法与2stage的CFO校准算法去实现基于AOA的室内定位,要在WIFI、BLE和LoRa设备上分别做定位!

 

 硬件设计

上图:

 

 总体来看,一共有三个模块。PlutoSDR连接一块FPGA板子,板子连接一个RF Switch。

作者将硬件的实现挑战分了三条:

1、如何生成循环控制信号?即自动化地、反复生成的控制信号,看这文章的意思是PlutoSDR是不能直接生成循环控制信号的。

2、如何利用两个GPIO分别接收信号并向单刀多掷开关发送信号?因为一个GPIO每次只能传输1bit,这显然是不够用的。

3、如何消除接收信号与天线切换之间的不同步?

 

因此,首先作者设计了一个开关控制器,一个有限状态机,可以解码控制命令,并且根据一定的开关频率和模式产生循环控制信号。

 另外,他们用一个UART扩展了SDR的GPIO#1,将原本的并行信号转换为串行信号,从而可以从#1发出,而相应的,FPGA板子上也要有一个额外的UART将接收到的串行信号再解码回以前的并行信号,但是要3路,因为SP8T需要三个串口输入。与此同时,使用SDR里的UART将#2作为控制命令发出的端口。

最后,要对天线打tag,不同天线接收到的数据应该能够区分,为此作者找到了一个点,即ADC输出的数据为IQ两路,每一路均为16bit的数据,比如Q,一个16比特数据中,一位用来表示正负sign,另外12位用来表示具体的数据,而剩下的3位是未使用的3位数据,用其可以表示000-111八位数字,即可完成对天线的tag。

 到此,前两个问题大概有了方案,看第三个同步的问题。

 

 具体来说,就是4个时间段的delay。

T 1-2 : Antenna Tagger 把天线序列+1,随后将UART从空闲状态唤醒;

T 2-3 : PlutoSDR将信号发送给FPGA;

T 3-4 : FPGA需要花一个时钟的时间去发现数据的起点;

T 4-5 : 天线切换。

一共四个部分,每部分的时间都是已知的:

 

 异步CFO模型

 在忽略噪声的前提下,可以对接收信号建模:

 

 在相干时间内,认为信道响应是相等的,即h(t) = h(t+T);

得到:

 也就是说,在跨越一个周期之后的同一个包的相位,会被旋转,这便是CFO。

 随后作者介绍了Moose算法,即常用于计算CFO估计的算法, 主要就是使用获得的信号观测值,以最大似然估计的方式得到CFO,也就是△f的估计值。

首先将方程转变为离散:

 将yn带入,得到:

 则对于一个采样周期N来说,利用两组周期数据,即可得到:

 对这个方程使用极大似然估计,便可求得CFO的估计值以及其方差:

 然而这算法有个局限:

 因此作者设计了一种2stage的CFO估计,主要就是先粗略估计,将CFO缩小至规定范围内,随后在做二次估计:

 剩余部分,组装一个虚拟天线,切换策略以及evaluation就不再介绍,因为本文对我的价值到此结束了。

重要的还有一张图:

 即随着时间变化,其实相位也是会发生变化的,即使是在同步的情况下,这便是CFO引起的相移。当然,如果针对于AOA来说,这个CFO并不影响AOA的估计,因为φseta是固定的。

而异步天线不同,只能测量二者之和,不能将φseta分离出来,因此计算不了AOA,故必须消除CFO。

 

封底

这项工作提出了TyrLoc的设计和实现,这是一种精确的多技术切换MIMO定位系统,可以部署在低成本的sdr上。TyrLoc仅使用单个RF Chain在相干时间内异步打开天线阵列中的每个天线,从而模仿MIMO平台来精确定位WIFI,蓝牙低功耗(BLE)和LoRa设备的位置。TyrLoc做出了三个关键的技术贡献。首先,TyrLoc修改廉价的PlutoSDR固件,该固件控制天线切换模式并标记与每个天线相关的信号。其次,它开发了一种两阶段细粒度载波频率偏移(CFO)校准算法,该算法利用灵活的天线切换方向,比基线方法精度高10倍。第三,TyrLoc采用插值变换方法,以方便在存在缺失天线的情况下估计到达角(AoA)。在多路径丰富的室内环境下,基于aoc的定位实验表明,采用8根天线的TyrLoc在WIFI、BLE和LoRa中值误差分别为63cm、39cm和32cm。