WiDir: Walking Direction Estimation Using Wireless Signals(UbiComp 2016)
针对的问题:虽然行走方向是很重要的上下文信息,但是在室内环境下仍然缺乏连续高效的行走方向估计方法(设备无关的,device-free)
面临的挑战:现有的室内定位精度不够,不足以用来直接产生准确的方向估计;如何从所有子载波的CSI信息中提取出方向信息;单个菲涅耳区不能检测所有的行走方向(角度死角),且不能映射到笛卡尔坐标系;
解决方案:通过分析不同子载波的相位差导致的波形时延,计算两个子载波的互相关,提取出Fresnel direction(inwards or outwards the Fresnel zone);通过部署多个WiFi设备形成二维菲涅耳区,根据不同维度的运动距离和方向生成笛卡尔坐标系下的方向信息;
实现细节:
- CSI背景(关于子载波的分布):20MHz的信道有56个子载波,载波下标为-28~1,1~28,载波间隔为0.3125MHz或312.5KHz,每个载波的频率为 fcarrier+0.3125k,其中fcarrier为中心载波的频率 ;CSI值是每 Ng 个相邻载波输出一个, Ng 由802.11n-2009标准有三种:1,2,4,选择哪个 Ng 由制造商决定,Intel 5300 NIC的实现是输出30个CSI,即20MHz时 Ng=2 ,40MHz时 Ng=4 ,则输出CSI的载波间隔分别为相应的 Ng∗0.3125MHz ;40MHz信道有114个OFDM子载波,载波间隔也为0.3125MHz(这个背景介绍对于WiFi信道和载波分布不清楚的还是很有用的!)
- Fresnel direction
- 菲涅耳区的相位分析:
定义Fresnel phase ρ : ρ=2π(d1−d0)/λ+φ ,其中 d0和d1 分别为直接路径和反射路径, λ 为信号波长, φ 为由反射和衍射引起的附加相位(extra phase introduced by diffraction/reflection);
接收信号的瞬时功率满足: c2=a2+b2+2abcosρ ,为类正弦波形;则如果存在类正弦波形的上下波动,则表明反射物体正连续穿越菲涅耳区的等相轮廓线( ρ相同 ),但是不足以判断运动方向; - 多个频率的相位分析
由于不同子载波的频率不同(波长不同),各个子载波的菲涅耳区大小不同,则等相椭圆的大小不同,故人体运动穿过的等相椭圆的先后次序不同,从内往外走时,对于同一个 ρ ,先穿过波长较小的载波的等相椭圆;
(疑问:不同载波的频率/波长不同,则相位随时间的变化速度不同,则 Δρ和Δt 随时间也不断变化?)
发射源运动时,由于不同子载波的初始Fresnel phase ρ 不同,因此不同子载波产生的正弦波动存在一定的相位延迟 Δt ,即不同子载波的波动存在先后关系(precedence relationship),向内运动时,长波长的子载波先波动(低频),如图:
不同波长的载波的相位差为:
Δρ=2π(d1−d0)(1λ1−1λ2)=2π(d1−d0)(f1−f2)/c=2π(d1−d0)Δf/c
其中附加相位 φ 被抵消了;
由于当 Δρ 为 π 时,无法判断不同载波到达的先后顺序,所以本文设置 2π 为最大允许的相位延迟,并据此选取子载波(调整 Δf ): Δf=Δρc/2π(d1−d0) (限制最大相位延迟,从而可以判断不同载波波动的先后次序!) - 相位延迟估计:信号处理中,可通过解析方法获得两个波形的相位延迟(Hilbert transformation),然而利用解析信号进行精确的相位提取需要信号为单成分的(one frequency component at any given time),而人体运动引起的CSI波形的扰动包含多个频率成分,不能直接利用解析方法提取相位延迟;
所以分析时间延迟,信号处理中,计算时间延迟估计最常用的方法是通用互相关方法,本文采用互协方差方法进行延迟计算(减去平均值后的时间序列的互相关)(疑问:不同载波由于波长不同,导致各自的时间序列的波动频率不同吧,这样计算不同载波的时间序列的互相关性得到的时间延迟有意义?)
利用信号的互相关计算时间延迟,必须保证两个信号之间的相似性,因此为了保证人体的运动速度不变,取得窗口大小为0.1s(constant speed),在5GHz和正常人体速度下,该窗口包含1到7个周期;(窗口为0.1s保证了序列之间的相似性,可以解决了上述疑问?) - Fresnel direction估计:估计时间1s,滑动窗口大小0.1s,滑动步长为50%窗口大小,计算每个窗口的延迟,根据时间延迟的结果判断方向(正延迟多or负延迟多,计算延迟的时候以频率大/波长小的为标准?)
针对一维菲涅尔区,只有当相对步行角度大于30度时,可以计算Fresnel direction(存在检测死角);
- 菲涅耳区的相位分析:
- 将Fresnel direction映射到笛卡尔坐标系(local direction):引入二维菲涅耳区
- 方向和距离估计:引入另一个正交的菲涅耳区可以计算出一维情况下相对角度较小时的运动方向
距离估计:利用波动的周期数,本文选用频域的FFT方法计算,小相对角度下距离计算不可靠(每个载波单独计算?);
方向计算:在两个维度下的波动数计算都可靠下的情况下,利用波动数比值的反正切值作为角度(波动数只是对距离的一个近似吧?特别是运动起点距离两个视距路径的距离不同时);当存在不可靠的小角度时,利用时延分布进行方向估计,越平行于LOS时延分布的符号累积绝对值越小,越垂直则越大,则利用时延分布的累积作为距离近似; - Local direction:当两个维度的Fresnel direction均可靠时,方向向量为 [sgn(dirx)Dx,sgn(diry)Dy]T ,其中 dirx 为累积延迟符号, Dx 为波动数;当存在不可靠Fresnel direction时,方向向量为 [dirx,diry]T
- 方向和距离估计:引入另一个正交的菲涅耳区可以计算出一维情况下相对角度较小时的运动方向
实验评价
- 系统流程图
两个CSI波形利用sync报头对齐;流程图第三部分的reliable判断,利用时延的累积分布值大小; - 实现:3个mini-PC,外接全向天线(一个作为AP,两个作为接收器);利用额外的电脑进行数据处理(利用TCP/IP协议交换数据);发送器利用injection mode进行数据发送,每十秒丢弃一些包作为同步信号;5GHz,40MHz信道,波长短,波动数多;采样率500 pkts/s;
- 数据去噪:需保持相位不变(因为本文利用的就是不同载波的相位差);基于降维的方法(PCA)和FIR滤波器不适用,且IIR滤波器也不能在保持波形的情况下有效去噪;本文利用Savitzky-Golay filter(also called digital smoothing
polynomial filters or least-squares smoothing filters)(这个去噪方法倒是比较新颖,可以保持波形,不改变相位信息,mark一下!)
- 实验设置:判断Fresnel direction可靠性的时延分布阈值,设置为窗口的四分之一(one quarter of the window)(是指四分之一秒窗口的累积时延值么?)
- 实验结果:不同房间环境和不同角度都可以进行有效检测;受环境变化影响小;能检测连续改变的方向(circle and zigzag)
- limations and discussion:
- 多径影响:人体产生的多径不止本文考虑的主要路径;当人体遮挡室内静态路径时,会改变菲涅耳区的形状,特别是附近存在金属物体时;解决方案:当金属物体仅位于路径的小部分可以利用反向分析处理(backward analysis)
- 网格近似:本文利用等相轮廓线的交叉对网格进行近似,而二维菲涅耳区轮廓线不是直线,需进行直角化处理;相邻轮廓线之间的距离会随相位的增加而减小,导致网格大小变化;大多数房间不是正方形,引起菲涅耳区形状和大小的变化;这些因素均会导致距离估计误差;解决方案:如果可以计算信号的Fresnel phase,则可以利用相位延迟计算人体位置;
- 检测范围和设备部署:为了扩大检测范围需要部署多个设备,需要考虑设备的部署位置以达到最佳的检测效果(combination);
- 多人检测:可以考虑利用多组TX-RX和successive cancellation技术的原理实现,但也要考虑硬件导致的CSI的失真问题;
本文亮点:提出了一个利用商用设备的设备无关的人体运动方向检测系统(device-free!);利用了基于菲涅耳区的多频(载波)相位分析;
- 系统流程图