本文推出了一个叫做QGesture的系统,在一维和二维部署场景下,它能对人的手势的运动距离和方向进行测量。部署场景:
比如,人在房间中做出一个推的动作,系统会识别出csi数据的模式,进而调整音量大小。下图是系统结构图概览:
考虑下图的一维部署情景,空间中有n条无线电磁波路径。其中由于人的手向接收机(client)匀速运动而产生的路径称为动态分量,而其余n-1条路径称为静态分量。
相位-距离关系模型的构建:
静态路径的叠加结果是一个可看做常数的复数值。而动态路径B由于人手的运动,其路径每减少一个波长,相位便改变2pi。在复平面的表现则是,若只考虑动态分量,理想情况下应该是一个绕原点旋转的信号,叠加上静态分量后,会成为一个有一定偏移量的旋转信号。结果如下:
另外可以发现,对于不同子载波,其静态分量的大小是不同的。该图可以简单地用下列代码仿真:
x=2*pi*1/0.06;
t=0:0.1:10;
%static component
s=3*cos(x)-3i*sin(x);
%dynamic component
d=cos(0.4*t)-1i*sin(0.4*t);
%channel state information
h=s+d;
plot(d);hold on;
plot(h);
仿真结果如下:蓝色信号是只考虑动态分量的信号,橙色信号是考虑了静态分量的叠加信号。
人手的移动距离d:
因此可以用相位改变量来估计移动距离。
csi的测量值包含以下几种误差:
相位:CFO、SFO/PBD;幅度:发射机功率的改变、环境噪声
1)移除CFO:对于该系统,使用2*3的MIMO,有6个天线对。注意到对于0号子载波相位,只包含CFO+人手移动的信息,因此选取0号子载波可以移除SFO+PBD。然而,不同天线对上的静态分量是不同的。任意选取其一作为参考CFO的话,可能会破坏我们需要的人手移动的信息。因此选取具有最大静态分量的天线对,可认为它是最合理的CFO参考值,几乎不包含人手移动的相位。然后将其他天线对上的相位减去该参考CFO,就消除了CFO。
2)移除SFO/PBD:线性拟合。将不同子载波序号下的csi相位拟合出slope,然后用不同子载波的相位减去拟合出的方程。
使用低通移动平均滤波器降噪,可消去高频噪声,理论依据是人移动造成的频率范围在1~100Hz,具体分析见我的博客[原创·论文阅读]Gait Recognition Using WiFi Signals
进行系统设计前,来看一下实际收到的csi值,这里的csi值已经经过了降噪处理。
可以发现,1)圆心在移动,说明静态分量在缓慢改变,并非常量;2)半径在变化,说明动态分量的a(f,t)也在改变。
解释如下:静态分量是一系列静态分量的叠加,有的静态路径是发射机经由人的躯干、胳膊反射到了接收机。当人在做推的动作时,身体其他位置也在缓慢移动,造成了这部分静态分量的改变。
半径变化是由于人手的位置不同,该位置的无线能量也有不同。有鉴于此,设计方法来移除静态分量。
论文在这部分说的比较复杂,其实原理很简单,寻找I或Q信号的交替的极大极小值,将每一对极值的平均值移除即可。
如图,有16个尖峰,则移动距离为16*2pi=32pi,应用公式
可得d=32*pi*5/(2*2*pi)=40cm,符合实际结果。
之后选取相位变化最敏感的子载波计算相位改变量。
A是发射机,B和C是接收机,则A、B和A、C可分别看做椭圆的两个焦点。欲知人手位置D的坐标(x,y),其表达式中含L1、L2、d1、d2项。在知道这四个参数后,x,y不难计算。
实际上,实验者是以一个已知的角度(30度、45度等)运动,然后用计算出的坐标对比groundtruth,并不满足arbitrary direction的追踪要求。
前导动作的设计是为了激活QGesure。选用punch和double punch。系统中预先训练了检测前导动作的二分类器。当检测到目标前导动作时,系统启动并开始追踪用户动作,之后可以完成控制音量等功能。
从上图可以看出,实验者首先推出一段距离(约为3~6个cycles),在短暂停顿后再次推出。信号的特征提取也是比较容易的。
evaluation和implementation无甚亮点,不再赘述。