# CentiTrack: Towards Centimeter-Level Passive Gesture Tracking with Commodity
WiFi

Zijun Han, Zhaoming Lu†, Xiangming Wen, Wei Zheng, Jingbo Zhao and Lingchao
Guo The authors are with the School of Information and Communication
Engineering, Beijing University of Posts and Telecommunications, Beijing,
China. The authors are in Beijing Key Laboratory of Network System
Architecture and Convergence and Beijing Laboratory of Advanced Information
Networks. E-mail:{zijunhan, lzy0372, xiangmw, zhengweius, Zhjb, rita
<EMAIL_ADDRESS>is corresponding author.

###### Abstract

Gesture awareness plays a crucial role in promoting human-computer interface.
Previous works either depend on customized hardware or need a priori learning
of wireless signal patterns, facing downsides in terms of the privacy concern,
availability and reliability. In this paper, we propose CentiTrack, the first
centimeter-level passive gesture tracking system that works with only three
commodity WiFi devices, without any extra hardware modifications or wearable
sensors. To this end, we first identify the Channel State Information (CSI)
measurement error sources in the physical layer process, and then denoise CSI
by the complex ratio between adjacent antennas. Principal Component Analysis
(PCA) is further adopted to separate the reflected signals from noises.
Benchmark experiments are conducted to verify that the phase changes of
denoised CSI are proportional to the length changes of dynamic path reflected
off the hand. In addition, we adopt the Multiple Signal Classification (MUSIC)
algorithm to estimate the Angle-of-Arrivals (AoAs) of dynamic paths, and then
locate the initial position of hands with triangulation. We also propose a
novel static componnets elimination algorithm for tracking correction by
eliminating the components unrelated to motion. A prototype of CentiTrack is
fully realized and evaluated in various real scenarios. Extensive experiments
show that CentiTrack is superior in terms of tracking accuracy, sensing range
and device cost, compared with the state-of-the-arts.

###### Index Terms:

Gesture awareness, Commodity WiFi devices, CSI, MUSIC, AoA.

##  I Introduction

Gesture awareness is one of the most ancient and intuitive ways for
communications, which carries rich, profound and subtle information. Human
beings also desire to interact with computers or other electronic devices by
gestures. In this way, gesture recognition has been a basic human-computer
interaction mechanism to control not only Internet of Things (IoT) devices but
also VR/AR devices [1]. It seems to be with broad application prospect due to
its simplicity and intuitiveness, e.g., users can easily raise the temperature
of air conditioners or switch on the lights just by making gestures in smart
home.

Thus far, diverse solutions have been proposed including acoustic signals- [2,
3, 4, 5], cameras- [6, 7, 8, 9, 10], infrared- [11, 12], radio frequency
(RF)-based [13, 14, 15, 16, 17, 18, 19, 20, 21]. Among these solutions, WiFi-
based systems stand out as particularly promising due to the ubiquity,
pervasive availability as well as privacy preservation. The development of
WiFi Network Interface Cards (NICs), such as Intel 5300 and Atheros AR9580
series, has granted the researchers access to a fine-grained channel
measurement from the physical layer [22], i.e., Channel State Information
(CSI). CSI describes the detailed propagation of signals from the transmitter
(TX) to the receiver (RX) through multiple paths at the granularity of
Orthogonal Frequency Division Multiplexing (OFDM) subcarriers [23]. Multiple
attempts [24, 25] have been done for gesture recognition based on CSI.
However, most of solutions go through the process of extracting features, and
further perform classification by a priori learning of signal propagation
patterns (e.g., machine learning), which is limited to recognize only a group
of pre-defined gestures with limited categories. Moreover, their
generalization abilities to diverse domains (e.g., diverse environments, users
or locations) are insufficient. In light of this, [26] and [27] explore
learning-free solutions by tracking various hand motion traces. Nevertheless,
these schemes in practice track users’ hand-held devices, which belong to
active tracking, and are reluctant and discomfort for users.

Generally, passive tracking is based on the signals reflected off the objects
to extract essential motion information. As far as we know, there are mainly
six WiFi-based passive tracking schemes, i.e., WiTrace [1], WiDraw [16],
IndoTrack [28], Dynamic Music [29], Tracking from One Side [30] and Widar [31,
32]. In particular, WiTrace [1] aggregates Doppler Frequency Shift (DFS) from
multiple links, but it relies on specialized transceivers (USRP-N210) and
leverages an external clock for synchronization. Furthermore, it estimates the
initial position based on the result of two preamble gestures as the
fingerprints, which is labor-intensive and inconvenient. WiDraw [16] adopts
Angle-of-Arrival (AoA) values of incident Line-of-Sight (LoS) signals for
gesture tracking using commodity WiFi devices. Whenever the user’s hand
occludes a signal coming from a certain LoS, the signal strength of the AoA
representing the same LoS will experience a drop. However, it needs
calibration in advance and relies on densely deployed TXs, which leaves rich
channel parameters unexplored and makes it less conducive for practical usage.
Moreover, IndoTrack [28], Dynamic Music [29], Tracking from One Side [30] and
Widar [31, 32] belong to human body tracking schemes, with parameters
including AoA, DFS, Angle-of-Departure (AoD) or Time-of-Flight (ToF),
regarding the human body as a single cylinder with coarse-grained decimeter-
level granularity. Table I provides a comprehensive comparison of the recent
WiFi-based tracking systems.

TABLE I: Comparison of state-of-the-art WiFi-based tracking systems Category | System Name | Objective | Granularity | Range | #(TX, RX)/Link | Parameter | Cost
---|---|---|---|---|---|---|---
Active | SpotFi [33] | TX | 132 cm | 5 m | 2 | AoA | General
WiCapture [26] | TX | 0.88 cm | 5 m | 2 | AoD | General
MilliBack [27] | Backscatter device | 0.49 cm | 0.8 m | 4/5 | DFS | General
Passive | IndoTrack [28] | Body | 0.48 m | 6 m | 2 | AoA, DFS | Cheap
Dynamic Music [29] | Body | 0.6 m | 8 m | 2 | AoA | Cheap
Tracking from One Side [30] | Body | 0.55 m | 7 m | at least 3 | AoA, Attenuation | Cheap
Widar [31] | Body | 0.35 m | 4 m | 2 | DFS | Cheap
Widar2.0 [32] | Body | 0.75 m | 8 m | 1 | AoA, DFS, ToF | Cheap
WiTrace [1] | Hand | 2.09 cm | 1.2 m | 2 | DFS, Fingerprint | Expensive
WiDraw [16] | Hand | 5 cm | 0.6 m | at least 25 | AoA | General
Ours | Hand | 1.5 cm | 1.5 m | 2 | AoA, DFS | Cheap

In this paper, we raise the question: Is it possible to build a fine-grained
passive gesture tracking system with limited WiFi infrastructures in smart
home where users would not like to intensively deploy devices for sensing,
which: (i) accurately and automatically tracks gestures without customized
hardware or modifications on devices; (ii) robustly works without influence of
various parameters including weak illumination, occlusion, user diversity and
scenario layout, etc.; and (iii) low cost and compatible with wireless
transmissions? To this end, we propose CentiTrack, aimed at passive
centimeter-level gesture tracking with only three commodity WiFi devices. The
key idea is to leverage fluctuated CSI values induced by hand motions via
signal reflections for gesture tracking. However, three challenges need to be
addressed: (i) How to discover and reflect the hand motion with noisy CSI;
(ii) How to establish the model linking CSI with hand traces; (iii) How to
eliminate the motion-unrelated static components?

For the first challenge, the physical world WiFi channels are typically far
from being clean. CSI samples have abundant distortions from both aspects of
amplitude and phase. To achieve centimeter-level gesture tracking, we first
identify the CSI measurement error sources in the physical layer process, and
then denoise CSI by the complex ratio between two adjacent antennas. Principal
Component Analysis (PCA) is further leveraged to separate the reflected
signals from other measurement noises. We also carry out several benchmark
experiments to verify that the phase changes of denoised CSI are proportional
to the length changes of dynamic path reflected off the hand. In this way,
CentiTrack can aggregate the length changes of dynamic paths from multiple
links to reflect 2D hand motion.

For the second challenge, despite precise changes of dynamic paths, it is
tricky to estimate the absolute hand traces directly without the initial
position. To cope with it, we adopt the Multiple Signal Classification (MUSIC)
algorithm to calculate AoAs of dynamic paths, and then locate the initial
position with triangulation. Intuitively, the signals from dynamic paths are
incoherent with those from static paths, yet the signals from static paths are
coherent and thus can be merged into one static component. Therefore, a three-
antenna array provided by most commodity WiFi NICs is competent to estimate
dynamic AoAs. Experimental results yield that CentiTrack achieves the mean
estimation error of the initial position by 5.4 cm, and whole 2D hand traces
by 1.5 cm within a 1.5 m $\times$ 1.5 m tracking area.

For the third challenge, the signals of static paths composed of LoS and
static reflectors are orders of magnitude stronger than those of dynamic
paths. In addition, static paths may slowly change due to the hand blocking
static reflectors, and erratic motions like posture changes or limb swings
during tracking. These static components will translate the complex CSI traces
in whole or in part, and seriously degrade the tracking accuracy. We observe
that static components applied to the CSI trace are actually the translations
of the trace segments to diverse degrees, so we propose a novel static
components elimination algorithm for tracking correction. For CSI traces, we
first translate it to the origin to remove the strong static components, and
further decompose it into several independent circles by multi-peak searching
algorithm. Linear interpolation between adjacent circle centers is finally
adopted to eliminate slow changing static components.

We prototype CentiTrack on three WiFi devices equipped with Intel 5300 NICs.
We evaluate its effectiveness and robustness by numerous experiments in three
indoor scenarios. Benefits provided by its accurate tracking performance can
track users’ writings/drawings in practical applications, be it handwriting,
intelligent household appliance controlling in smart homes or artificial
intelligence enabled healthcare in hospitals where typically WiFi devices
would be easily deployed, without dedicated infrastructures.

The rest of the paper is organized as follows. First related work is reviewed
in Section II. We introduce the background and observations of CSI in Section
III and describe CSI-based distance estimation in Section IV. Section V
presents the system architecture. The implementation, evaluation and use case
are provided in Section VI. We give the discussion in Section VII, and finally
conclude in Section VIII.

##  II Related Work

CentiTrack is mainly related to works in the field of gesture recognition and
gesture tracking. The former focuses on recognizing a set of pre-defined
gestures [13, 15, 24, 25, 34], while the latter intends to track hand traces
[16, 20, 26, 27]. Over the years, various gesture recognition and tracking
systems have been developed including acoustic signals- [2, 3, 4, 5], cameras-
[6, 7, 8, 9, 10], infrared- [11, 12], inertial sensors- [35, 36] and RF-based
[13, 14, 15, 16, 17, 18, 19, 20, 21], which can be mainly divided into RF-
based and non-RF-based.

###  II-A Non-RF-based Gesture Recognition and Tracking

Non-RF-based gesture recognition and tracking systems mainly relies on cameras
and acoustic signals. Camera-based solutions are a well-researched topic for
years, which leverage depth or infrared cameras [7] for human-computer
interactions. In addition to their high computational cost, the dedicated
hardware setup, lighting conditions and privacy concerns may incur users’
reluctance. Besides, they cover only limited LoS areas. Acoustic signals-based
solutions [2, 3, 4, 5] typically adopt the DFS for tracking tasks, but they
only have a small tracking range, which is a major barrier to the large-scale
deployment. Other works on inertial sensing [35, 36] or on-body systems [37,
38] explore sensing devices carried by or attached to the user target. For our
proposed scheme, it is device-free, transparent to users and can apply to
large-scale space, despite weak illumination or occlusion.

###  II-B RF-based Gesture Recognition and Tracking

Recent years have witnessed the ever-fast development of RF-based sensing
applications. Received Signal Strength (RSS) and CSI extracted in wireless
signals have been widely used for gesture recognition [13, 14, 15, 34]. For
instance, WiFinger [13] leverages CSI to recognize a set of nine digits
finger-grained gestures with accuracy of 90.4%. WiFi Gestures [14] achieves
recognition accuracy by 91% while classifying four gestures across six
participants, without the need for per-participant training. WiGest [15]
explores changes in RSS to sense in-air hand gestures around the users’ mobile
devices, and achieves a recognition accuracy by 96%. However, most of the
systems demand a priori learning of signal patterns, which is limited to
recognize only a fixed set of pre-defined gestures. With multiple antennas or
devices, RF-based gesture tracking schemes make breakthroughs in estimating
the trace and speed of hands [16, 17, 18, 19, 20, 21]. RF-IDraw [20] is the
first RF-based system that enables a virtual touch screen and adopts AoA for
fine-grained tracking. WiCapture [26] leverages commodity WiFi radios and
achieves an accuracy of 0.88 cm with higher sensing range. More recently,
MilliBack [27] proposes phase differential iterative schemes to infer the
position of a writing tool, and further track various handwriting traces with
a median error of 0.49 cm. While these schemes can achieve considerable
tracking accuracy, they require the user to hold an RF TX or backscatter
device, which are reluctant and inconvenient for users in the long run. Works
[34, 39] make progress in whole-home passive gesture detection, resistance to
occlusion. However, they require either costly customized wireless hardware
[39], or specific modifications on devices [34]. WiDraw [16] first passively
tracks users’ hands based on commodity WiFi devices with a median error of 5
cm, but it has a limited tracking range which is less than 0.6 m. Besides, it
relies on at least 25 TXs to cover all incident LoS signal directions. In
contrast, CentiTrack enables a fine-grained tracking accuracy by 1.5 cm over a
distance of 1.5 m, with only three devices. WiTrace [1] adopts templates to
restrict random hand movements, and achieves the mean tracking error of 2.09
cm within 1.2 m sensing range. However, it is implemented by specialized
USRP-N210 platforms, raising downsides in availability issue. Furthermore, it
introduces an external clock for phase offsets elimination, and is cumbersome
to estimate the initial location based on the result of two preamble gestures
as the fingerprints.

Figure 1: Illustration of multiple paths.

Based on commodity devices, CentiTrack automatically locates the initial
location by AoA estimation, and corrects CSI phase offsets by signal
processing.

##  III Background and Observations

In this section, we first describe the basic concept of CSI, and then present
the theoretical model of CSI regarding dynamic hand motion as a background
introduction.

###  III-A Overview of CSI

CSI estimates the properties of wireless channels at the granularity of OFDM
subcarriers [23]. Specifically, the transient CSI $H(f,t)$ with carrier
frequency $f$ at time $t$, can be derived as:

$H(f,t)=Y(f,t)/X(f,t),$ (1)

where $Y(f,t)$ and $X(f,t)$ are the Fourier transformation of transmitted and
received signals respectively. The channel noises are implicitly included in
$H(f,t)$. Due to reflection, refraction or scattering, wireless signals
propagate from TX to RX through multiple paths, resulting in multipath
distortions [22]. Mathematically, CSI is the superposition of signals from all
the propagation paths, which can be represented as:

$H(f,t)=\sum\limits_{l=1}\limits^{L}\alpha_{l}e^{-j2\pi\frac{d_{l}(t)}{\lambda}},$
(2)

where $L$ is the total number of paths, $\alpha_{l}$ and $d_{l}(t)$ are the
amplitude attenuation and the propagation length of signal through path $l$
respectively, $\lambda$ is the wavelength. An 802.11a/g/n RX implements an
OFDM system with 56 subcarriers for each of its antennas. Theoretically, each
CSI sample contains 56 matrices with dimensions of $N_{TX}$ $\times$ $N_{RX}$,
where $N_{TX}$ and $N_{RX}$ are the number of transceiver antennas.

###  III-B From CSI to Geometric Distance

As shown in Fig. 1, all of the propagation paths can be divided into static
paths or dynamic paths. Static paths consist of LoS path and the reflection
paths from such static objects as walls and ceiling, which do not change with
time, thus they can be considered as a constant. While for dynamic paths, they
are reflected by active objects, and each path has a DFS and variable length.
Thus, Eq. (2) can be expanded as:

$H(f,t)=H_{s}(f,t)+H_{d}(f,t)=H_{s}(f,t)+\sum\limits_{l\in
P_{d}}\alpha_{l}e^{-j2\pi\frac{d_{l}(t)}{\lambda}},$ (3)

Figure 2: Illustration of the CSI dynamics.

where $H_{s}(f,t)$ is the aggregate CSI of all static paths, and $P_{d}$ is
the set of dynamic paths. When the environment is static, $P_{d}$ is empty.

The hand-reflected signals may transmit through multiple paths (e.g., path A
and B in Fig. 1), which will generate multiple dynamic components. Based on
the observation that the strength of signal which is reflected for more than
once (e.g., path B) will be further attenuated than that of direct reflection
path signal (e.g., path A). In this case, the signal of direct reflection path
is dominated among all the dynamic components. Therefore, without loss of
generality, we postulate that hand motion introduces only one dynamic path,
i.e., $P_{d}=1$. Mathematically, $H_{d}(f,t)$ can be considered as a point
$(\alpha\cos(2\pi\frac{d(t)}{\lambda}),-\alpha\sin(2\pi\frac{d(t)}{\lambda}))$
on complex plane. When hand motion results in an increase of $d(t)$ by $l$,
there is a rotation of $H_{d}(f,t)$ around its origin, i.e.,
$(\alpha\cos(2\pi\frac{d(t)}{\lambda}),-\alpha\sin(2\pi\frac{d(t)}{\lambda}))\to(\alpha\cos(2\pi\frac{d(t)+l}{\lambda}),-\alpha\sin(2\pi\frac{d(t)+l}{\lambda}))$.
To be specific, when $d(t)$ increases or decreases by $k\lambda$, $H_{d}(f,t)$
rotates $2k\pi$ clockwise or counterclockwise. As time evolves, $H_{d}(f,t)$
samples will draw In-phase (I)/Quadrature (Q) points to construct circular
traces with radius $\alpha$, and $H(f,t)$ is a $H_{s}(f,t)$ translation based
on $H_{d}(f,t)$, which is shown in Fig. 2. The phase changes of CSI can be
leveraged to estimate the motion distance, while the the rotation direction
determines the motion direction (i.e., close to or away from transceiver). The
amplitude $\alpha$ (i.e., the radius of circle) is inversely proportional to
the length of reflection path, so the circles formed by the rotation are not
exactly with the same radius. Our intuition is to measure the phase changes of
the dynamic path caused by hand motion, and derivate the length changes for
gesture tracking in 2D space.

##  IV CSI-Based Accurate Distance Estimation

In this section, we first identify the CSI measurement error sources and
present the denosing process for accurate estimation, and then carry out
several benchmark experiments to verify our derivation.

###  IV-A CSI Error Sources and Correction

Figure 3: Illustration of signal processing in WiFi NICs.

In real-world WiFi systems, CSI measurements have abundant distortions from
both aspects of amplitude and phase, which cannot be directly used for
tracking tasks. The main wireless signal processing in WiFi NICs is pointed
out in Fig. 3. Firstly, the incident passband signal is down converted to the
baseband signal $s(t)$ based on antennas, and then processed by the Automatic
Gain Controller (AGC) to compensate for the amplitude of signal and sampled by
Analog-to-Digital (ADC) to obtain the digital $s[n]$. The Packet Boundary
Detector (PBD) executes energy detection or correlation between $s[n]$ and a
predefined 802.11 preamble to identify the packet. Once a packet is confirmed,
the signal central frequency will be calibrated by the Central Frequency
Offset (CFO) corrector. The RX then estimates the CSI based on $s[n]$ with
interpolation of 802.11 preamble. Therefore, CSI describes not only the
frequency response of the wireless channel in passband, but also the errors of
the internal circuit in baseband [40].

(a) Amp. at 20th subcarrier on antenna 1 and 2. (b) Ratio of Amp. at 20th
subcarrier. (c) Amp. of PCA results.

Figure 4: Before and after Amp. denoising, where (a) is raw Amp., (b) is the
Amp. ratio, and (c) is the PCA result.

(a) Phase at 20th subcarrier on antenna 1 and 2. (b) Phase difference at 20th
subcarrier. (c) Phase of PCA results.

Figure 5: Before and after phase denoising, where (a) is raw phase, (b) is the
phase difference, and (c) is the PCA result.

For the amplitude, it fluctuates due to the power control uncertainty errors
of AGC and surrounding electromagnetic noises. Fig. 4 (a) depicts high
impulses and burst noises when hand moves back and forth around the WiFi
transceiver. We observe that the moment, duration and profile of these noises
are nearly identical across RX antennas. Indeed, the impulse noise is scale
noise, which is consistent across the antennas of the same RX, despite the
varying of power scale with time. WiFi cards are generally installed with
several antennas for Multiple Input and Multiple Output (MIMO) transmission.
Thus, we leverage the ratio of amplitude between two adjacent antennas to
eliminate the noises. It can also be seen that the amplitude fluctuations
related to motions vary with antennas due to the physical spatial spacing in
between. Thus, amplitude ratio can remove noises and persist signals of
interest, as illustrated in Fig. 4 (b).

For the phase, the sampling frequencies and central frequencies of the
transceiver are not perfectly synchronized, which will lead to Sampling
Frequency Offset (SFO) and CFO. The SFO causes $s[n]$ a time shift $\tau_{o}$
with respect to $s[t]$, and thus introduces near constant errors $\lambda_{o}$
to the CSI phases from different subcarriers. The CFO is compensated by the
CFO corrector, but due to the hardware imperfection, the compensation is
incomplete [23], leading to time-variant random phase offsets $\beta$.
Besides, due to correlator sensitivity of PBD, the packet detection introduces
another time shift $\tau_{b}$, resulting in errors $\lambda_{b}$ to the
phases. From the above error sources, the phase measurement $\phi_{k}$ for
subcarrier $k$ can be expressed:

$\displaystyle\begin{split}\phi_{k}=&\theta_{k}+k\cdot(\lambda_{o}+\lambda_{b})+\lambda_{c}+\beta+z,\end{split}$
(4)

where $\theta_{k}$ is the true phase rotation caused by signal propagation,
$\lambda_{o}$, $\lambda_{b}$ and $\beta$ are the phase offsets caused by PBD,
SFO and CFO, respectively. $\lambda_{c}$ is the random initial phase offset
due to the jitters of Phase-Locked Loop (PLL) [40]. $k$ ranges from -28 to 28
for 20 MHz bandwidth in IEEE 802.11n specification, and $z$ is the additive
white Gaussian noise. As shown in Fig. 5 (a), these errors significantly
distort CSI true phase, and thus prevent its practical usage. Note that these
errors are identical across RX antennas for a particular subcarrier, as all
the receiver chains on the same WiFi NIC are time synchronized. Therefore, we
eliminate these errors by the phase difference [28, 41] between antennas
across all subcarriers. Take antenna 1 and 2 for example:

$\displaystyle\begin{split}\widetilde{\theta_{k}}=\phi_{1,k}-\phi_{2,k}=\theta_{1,k}-\theta_{2,k}+\Delta
z.\end{split}$ (5)

The phase deniosing results can be shown in Fig. 5 (b). With the denoised
amplitude $\widetilde{\alpha}$ and phase $\widetilde{\theta}$ of CSI, a new
complex sample can be derived:
$H_{ratio}(f,t)=\widetilde{\alpha}\cdot\cos(\widetilde{\theta})+j\widetilde{\alpha}\cdot\sin(\widetilde{\theta})$,
which is exactly the complex ratio of CSI between adjacent antennas in
substance. Based on the observation [42], when LoS path exits,
$H_{ratio}(f,t)$ will rotate clockwise as the length of reflection path
increases. Otherwise, when LoS is occluded, it will rotate counterclockwise.
In other words, the estimated motion direction (i.e., close to or away from
transceiver) based on rotation direction of $H_{ratio}(f,t)$ is diametrically
opposite when LoS exists compared to not. We refer readers to [42] for more
detailed theoretical derivation, and we will take the existence of LoS as an
example for research in later part. We also note that, due to hand motion, the
changes of CSI on different subcarriers are correlated. Therefore, we further
separate $H_{ratio}(f,t)$ from noises by performing PCA across all the
subcarriers. The first PCA component is preserved, and the results can be
shown in Fig. 4 (c) and Fig. 5 (c).

Figure 6: Scenario for benchmark experiments.

###  IV-B Verification via Benchmark Experiments

In this part, we will verify the performance of $H_{ratio}(f,t)$ via the
proof-of-concept experiments. As shown in Fig. 6, the verification experiments
are carried out in a typical laboratory environment. We set a pair of WiFi
transceiver 1 m apart, and they are equipped with Intel 5300 NICs and
vertically-polarized omni-directional commodity patch antennas. We upgrade the
device driver following [43] and configure NICs to run at the central
frequency of 5.32 GHz with 20 MHz bandwidth. Transceiver and hands are set on
the same line, so the length of dynamic path changes by two times of the
distance of hand motion. To precisely control the displacement of hands, the
movement distance is measured by the ruler along the line. When hands move
towards or away from the transceiver, the reflection path length changes
accordingly.

(a) Moving away from transceiver. (b) Raw CSI trace. (c) $H_{ratio}(f,t)$
trace.

Figure 7: Hand moves away from transceiver.

As shown in Fig. 7, hand first moves 5.6 cm (i.e., around one $\lambda$)
horizontally away from the transceiver with the start position of 0.5 m from
RX. The complex traces in Fig. 7 (b) and (c) are made up of the I/Q parts of
raw CSI measurements and $H_{ratio}(f,t)$, respectively. It can be seen that
the raw CSI trace is chaotic, and $H_{ratio}(f,t)$ rotates clockwise in
accordance with circle in complex plane, with a 4$\pi$ radian. Then, we take
8.5 cm (i.e., around 1.5 $\lambda$) towards transceiver with the start point
at 0.6 m. We can get a counterclockwise rotation of $H_{ratio}(f,t)$, with a
6$\pi$ radian in Fig. 8. These above prove that the denoised CSI, i.e.,
$H_{ratio}(f,t)$, can verify our derivation, and thus competent for the
gesture tracking tasks.

##  V The Proposed Scheme

In this section, we present our design and implementation of CentiTrack by
drawing/writing in the air. The system consists of five basic modules: System
Design, Motion Detection, Initial Position Identification, Tracking
Calibration and Tracking Smoothing, as shown in Fig. 9.

###  V-A System Design

CentiTrack leverages one TX and two RXs to track hands on a 2D plane. Consider
a free-space scenario and one pair of WiFi transceiver, there are several
ellipses with foci at TX and RX, where each ellipse corresponds to one
reflection path. All the reflectors are on their own ellipses, and hands are
no exception. According to the properties of ellipse, the length of reflection
path remains unchanged when the hand moves in the tangent direction of its
ellipse (i.e., equal to the major axis), as shown in Fig. 10 (a). If the
motion has a moving component in the normal direction of ellipse, the movement
will change the path length and thus result in DFS.

(a) Moving towards transceiver. (b) Raw CSI trace. (c) $H_{ratio}(f,t)$ trace.

Figure 8: Hand moves towards transceiver.

Therefore, another pair of transceiver is arranged perpendicular to the first
transceiver pair as illustrated in Fig. 10 (b), to aggregate movement
components in the normal direction of both ellipses. Here, we take TX as the
origin, transceiver pair TX-RX1 as the x-axis, and TX-RX2 as the y-axis to
establish a Cartesian coordinate, where two RXs are at $(L_{1},0)$,
$(0,L_{2})$. If we know the reflection path length $p$ and $q$ of the two
ellipses, the coordinates of hands $(x,y)$ can be solved:

$\displaystyle\begin{split}&\sqrt{x^{2}+y^{2}}+\sqrt{(x-L_{1})^{2}+y^{2}}=p,\\\
&\sqrt{x^{2}+y^{2}}+\sqrt{x^{2}+(y-L_{2})^{2}}=q,\end{split}$ (6)

where $x>0,y>0$. The length changes of dynamic path can be estimated based on
the radians of arcs in $H_{ratio}(f,t)$. Therefore, given the initial length
of reflection path $p_{0}$ and $q_{0}$, i.e., initial position
$(x_{0},y_{0})$, the absolute values of $p$, $q$ and the coordinates of hands
$(x,y)$ can be updated thereafter.

###  V-B Motion Detection

For gesture tracking, we need to detect the start and end location of each
hand trace over time. When hand keeps static, the amplitude of
$H_{ratio}(f,t)$ is considerably stable. Once hand begins to move, the
amplitude will undergo large fluctuations. As shown in Fig. 11, Std represents
the standard deviation of $H_{ratio}(f,t)$ I component for each short period.
We adopt a 0.1s sliding window with a 50% overlay to detect the real-time
signal variance. For simplicity, both Std and I component are normalized to
$[0,1]$. It can be seen that the variance of static periods is much smaller
than that of dynamic periods. Therefore, the motion start and end point can be
easily detected by an empirical threshold, which is typically ten times of Std
of the static periods. We also note that the Motion Detection module works on
both pairs of transceivers simultaneously to complement each other.

Figure 9: System architecture of CentiTrack.

(a) One pair of transceiver. (b) Two pairs of vertical transceiver.

Figure 10: Geometrical relationship between hand motion and the length change
of reflection path. Figure 11: Motion detection in static and dynamic periods.

###  V-C Initial Position Identification

####  V-C1 Empirical Study

The trace of hand motion is determined not only by the changes of path length
but also by its initial position. The biased initial position will severely
degrade the tracking accuracy. Take the case that users push hands along the
perpendicular bisector of a pair of transceiver with a constant LoS. We record
the ground truth of the start position $P_{s}$ and end position $P_{e}$.
Following simple geometry, the length change of the reflection path is $\Delta
d=2(\sqrt{(\frac{LoS}{2})^{2}+P_{e}^{2}}-\sqrt{(\frac{LoS}{2})^{2}+P_{s}^{2}})$.
Given a fixed length change, the geometry distance $|P_{e}-P_{s}|$ will vary
as $P_{s}$. We study these variations with the Fresnel Zone model [44].
Consider a free space, the transceiver TX and RX transmit WiFi signals with a
wavelength $\lambda$, as illustrated in Fig. 12 (a). The Fresnel Zones are
concentric ellipses, and the $n^{th}$ Fresnel Zone corresponds to the region
surrounded by the $(n-1)^{th}$ and the $n^{th}$ ellipse. The point $P_{n}$ on
the outer boundary of the $n^{th}$ Fresnel Zone satisfies the formula:

$\displaystyle\begin{split}|TXP_{n}|+|P_{n}RX|-LoS=n\lambda/2,\end{split}$ (7)

where $|TXP_{n}|$ and $|P_{n}RX|$ are the distances from TX and RX to point
$P_{n}$, respectively.

(a) 1D space. (b) 2D space.

Figure 12: Empirical study of initial position estimation in 1D and 2D space.
Figure 13: Uniform linear M-antenna array: For AoA of $\theta_{l}$, the
incident signal travels an additional distance of $d\sin(\theta_{l})$ to the
first antenna compared to the second, resulting in an additional phase of
$-2\pi d\sin(\theta_{l})/\lambda$ at the first antenna.

Thus, the length difference $\Delta d$ of the reflection path between any two
adjacent boundaries is always $\lambda/2$, e.g., boundary $a$ and $b$, or
boundary $c$ and $d$. With the length change of $\lambda/2$, we make two
assumptions about the hand movement: 1) from point $P_{a}$ to $P_{b}$ (i.e.,
$P_{s}=P_{a}$, $P_{e}=P_{b}$); 2) from point $P_{c}$ to $P_{d}$ (i.e.,
$P_{s}=P_{c}$, $P_{e}=P_{d}$). Without loss of generality, we set LoS as 1 m,
$a=10$, $c=20$. In this way, at the carrier frequency of 5.32 GHz
($\lambda=5.6$ cm), the geometry distances $|P_{b}-P_{a}|=2.2$ cm,
$|P_{d}-P_{c}|=1.8$ cm. Likewise, in 2D space in Fig. 12 (b), hand also moves
along the perpendicular bisector of one pair of transceiver on the y-axis. The
initial position is marked with $(x_{0},y_{0})$ and the geometric distance is
$L_{0}$. For the same change of path length, if the initial position changes
to $(x_{0}^{{}^{\prime}},y_{0}^{{}^{\prime}})$, the geometric distance would
become $L^{{}^{\prime}}_{0}$, and there would be a deviation of $\phi$ in
moving direction [1].

####  V-C2 Initial Position Estimation

Mutiple Signal Classification (MUSIC) [45] is widely adopted to calculate the
AoAs of incoming signals for device-based tracking or localization tasks [33,
26], where the direct path (i.e., LoS) points to the active target.
Nevertheless, in this paper, the location estimation belongs to device-free
(i.e., passive) task, and the direct path is independent of hand location. Our
intuition is that hand serves like a moving “TX” which reflects the delayed
signals to RX. With one “TX” and two RXs, we can locate the hand with
triangulation.

The basic idea of MUSIC is that incident signals from different angles will
introduce different phase changes across RX antennas [29]. Consider a uniform
linear M-antenna array in the RX prototype and a free-space environment with
$L$ paths. Let the spacing between successive antennas at RX be $d$, which is
half-wavelength of the signal, $\theta_{l}$ denotes the AoA for the $l^{th}$
path. The signal along $l^{th}$ path travels different distances from TX
antenna to different RX antennas and hence, the signal at different antennas
accumulates different phases. As illustrated in Fig. 13, for the $l^{th}$ path
with AoA $\theta_{l}$, the signal travels an extra distance of
$d\sin(\theta_{l})$ received at the first antenna compared to the signal at
the second one. Therefore, a phase difference of $-2\pi
d\sin(\theta_{l})/\lambda$ is accumulated at successive antennas. For
simplicity, the phase shifts can be expressed as a function of the AoA
$\theta_{l}$:

$\Phi(\theta_{l})=e^{-2\pi d\sin(\theta_{l})/\lambda}.$ (8)

Hence, the vector of signals received at RX along the $l^{th}$ path can be
denoted by:

$\vec{a}(\theta_{l})=[1\ \Phi(\theta_{l})\ \dots\
\Phi(\theta_{l})^{M-1}]^{\text{T}},$ (9)

where $\vec{a}(\theta_{l})$ is known as the steering vector. Steering vectors
will be as many as the number of propagation paths, and the overall streeing
matrix $A$ can be defined as:

$A=[\vec{a}(\theta_{1})\ ...\ \vec{a}(\theta_{l})\ ...\ \vec{a}(\theta_{L})].$
(10)

The received signal $X(t)$ at the antenna array is the superposition of all
incident signals, i.e.,

$\displaystyle\begin{split}X(t)=&[x_{1}(t)\ ...\ x_{M}(t)]^{\text{T}}\\\
=&\sum\limits_{l=1}\limits^{L}\vec{a}(\theta_{l})s_{l}(t)+N(t)\\\
=&AS(t)+N(t),\end{split}$ (11)

where $s_{l}(t)$ is the $l^{th}$ path signal at the first antenna, $N(t)$ is
the Gaussian noise with zero mean and $\sigma^{2}$ variance. The key idea
behind the MUSIC is the eigenstructure analysis of correlation matrix $R_{X}$
of the received signal $X$:

$\displaystyle\begin{split}R_{X}=&\mathbb{E}[XX^{\text{H}}]\\\
=&A\mathbb{E}[SS^{\text{H}}]A^{\text{H}}+\mathbb{E}[NN^{\text{H}}]\\\
=&AR_{S}A^{\text{H}}+\sigma^{2}I,\end{split}$ (12)

where $X^{\text{H}}$ indicates the conjugate transpose of $X$, $R_{S}$ is the
source correlation matrix, and $I$ is an identity matrix. The correlation
matrix $R_{X}$ has $M$ eigenvalues $\zeta_{1}\ ...\ \zeta_{M}$ associated with
$M$ eigenvectors $\textbf{E}=[e_{1}\ e_{2}\ ...\ e_{M}]$. The smallest $M-n$
eigenvalues correspond to the noise while the other $n$ eigenvalues correspond
to the $n$ incident signals. In this way, a noise vector subspace
$\textbf{E}_{\textbf{N}}=[e_{1}\ ...\ e_{M-n}]$ and a signal subspace
$\textbf{E}_{\textbf{S}}=[e_{M-n+1}\ ...\ e_{M}]$ can be constructed. The
signal and the noise subspaces are orthogonal so that the spatial spectrum can
be expressed as:

(a) Dynamic and static paths. (b) Location with triangulation.

Figure 14: Initial position estimation by AoAs.

$P(\theta)_{MUSIC}=\frac{1}{\vec{a}^{\text{H}}(\theta)\
\textbf{E}_{\textbf{N}}\ \textbf{E}_{\textbf{N}}^{\text{H}}\
\vec{a}(\theta)},$ (13)

where peak locations in the pseudospectrum represent AoAs of incident signals.
Techniques-wise, the AoAs of paths are relatively stationary and cannot change
rapidly from packet to packet [26]. Inspried by this, CSI from $N$ packets are
concatenated to further mitigate random noises following:

$X=[X_{1}\ \dots\ X_{N}]^{\text{T}}.$ (14)

In addition, CnetiTrack automatically evaluates the number of signals with
MUSIC improved by the Minimum Description Length (MDL) principle [46]. MDL can
identify the division of signals into subspaces confronting low Signal-to-
Noise Ratio (SNR) or non-adaptive eigenvalue threshold [47]. The MDL is
performed as:

$\mathop{\arg\min}_{\omega}\frac{1}{2}\omega(2M-\omega)\lg{N}-N(M-\omega)\lg{\left(\frac{\prod\limits_{i=\omega+1}\limits^{M}\zeta_{i}^{1/(M-\omega)}}{\frac{1}{M-\omega}\sum\limits_{i=\omega+1}\limits^{M}\zeta_{i}}\right)},$
(15)

where $\omega\in[0,1,...,M-1]$. The number of signals is determined as the
value of $\omega$ for which MDL is minimized.

A typical indoor environment usually contains around 4$\thicksim$8 significant
reflection paths [48]. However, with three-antenna array of most commodity
WiFi NICs (e.g., Intel 5300 NIC), only two paths can be captured with MUSIC.
Therefore, how to estimate AoAs related to hands with limited antennas becomes
the key to the problem. We have divided all the signal propogation paths into
one dynamic path and multiple static paths. Note that signals of static paths
have the same central frequency and fixed phase differences, they are
therefore coherent with each other. The motion of hands will not only
introduce DFS on the dynamic path signal, but also change the path length. For
signals to be coherent with each other, they must be with the same central
frequency and fixed phase differences over time [29]. Thus, the signal of
dynamic path is incoherent with those of static paths. MUSIC is designed to
identify incoherent multiple signals, so all the coherent static paths which
are out of the interest can be merged into one path [49], which significantly
reduce the path number on the pseudospectrum. The signal of LoS is typically
much stronger than those of static reflection paths, thus the merged path AoA
searched on the spectrum is very close to the AoA of LoS. When hands begin to
move, the dynamic path will be detected along with the merged static path, as
shown in Fig. 14 (a).

Therefore, the very properties of whether paths are coherent or not make
three-antenna array competent for initial position estimation. We also note
that works [33, 49] focus on eliminating the coherence by sacrificing the
effective number of sensors and all incident signals will be detected. In this
paper, all the static paths except LoS are useless for gesture tracking, so
there is no need to distinguish them with extra efforts. Given one TX, and two
RXs with LoS of $L_{1}$ and $L_{2}$, we can solve AoAs of dynamic path
$[\theta_{1},\theta_{2}]$ and LoS $[\theta_{a},\theta_{b}]$ on RXs, and thus
locate the hand $(x,y)$ with triangulation as shown in Fig. 14 (b):

$\displaystyle\begin{split}x=&\frac{L_{2}-L_{1}\cdot\tan{(\theta_{a}-\theta_{2})}}{\tan{(\theta_{b}-\theta_{1})}^{-1}-\tan{(\theta_{a}-\theta_{2})}},\\\
y=&\frac{L_{1}-L_{2}\cdot\tan{(\theta_{b}-\theta_{1})}}{\tan{(\theta_{a}-\theta_{2})}^{-1}-\tan{(\theta_{b}-\theta_{1})}}.\end{split}$
(16)

###  V-D Tracking Calibration

Theoretically, given the initial positions and the derived length changes of
dynamic path, the 2D hand motion traces can be estimated. However, the CSI
deviates from the above theoretical model, which is mainly reflected in three
aspects. Firstly, the signals of static paths mainly composed of LoS and
static reflectors are orders of magnitude stronger than that of hand-reflected
dynamic path, which will make CSI trace deviate from the origin. Secondly, the
static components are not absolutely constant, where the circular traces are
not strictly concentric. This is mainly because the hand blocks the static
reflectors, as well as the erratic motions of other body parts during
tracking, such as posture changes or limb swings. Last, the magnitude of the
dynamic path, i.e., circle radius, changes continuously, which is inversely
proportional to the reflection path length. These aspects above will severely
degrade the tracking accuracy. Thus, we propose the following so-called Static
Component Elimination (SCE) algorithm for tracking calibration.

We first take the case that hand moves towards transceiver, $H_{ratio}(f,t)$
should rotate counterclockwise on the complex plane with the decrease of path
length. As illustrated in Fig. 15, when user moves hand from position A to B
in a short distance, the rotation is a non-concentric spiral trace. The trace
is first translated to the origin by subtracting its average. In this way,
most of the strong static components can be roughly eliminated, and the result
is denoted by $\mathcal{M}$. We can get the phase of each CSI sample based on
$\mathcal{M}$, denoted by $\mathcal{A}$, as shown in Fig. 15 (c). Due to phase
flip, there are several peaks and troughs in $\mathcal{A}$, in which each
group of adjacent peaks is mapped to a complete circle segment of the whole
trace. We directly unwrap $\mathcal{A}$ by changing absolute jumps greater
than $1.5\pi$ to a complement of $2\pi$ in Fig. 15 (d). The unwrapped curve
increases over time, which indicates user moves hand towards the transceiver,
and the slope of curve is positively related to the moving speed.

Input: Denoised CSI trace, $H_{ratio}(f,t)$.

Output: Sequence of phase differential iterations,
$\mathcal{A}^{{}^{\prime}}$.

1 begin

2 Translate $H_{ratio}(f,t)$ to origin;

3 Split motion segments by phase flip directions;

4 for  _each segment $s$_ do

5 Decompose $s$ into circles
$[\mathcal{M}_{1},\mathcal{M}_{2},...,\mathcal{M}_{n}]$ and two arcs by multi-
peak searches;

6 Solve centers of circle
$[\mathcal{O}_{\mathcal{M}_{1}},\mathcal{O}_{\mathcal{M}_{2}},...,\mathcal{O}_{\mathcal{M}_{n}}]$;

7 for  _each group of adjacent circles $\mathcal{M}_{u}$ and
$\mathcal{M}_{v}$_ do

8 Carry out linear interpolation between
$[\mathcal{O}_{\mathcal{M}_{u}},\mathcal{O}_{\mathcal{M}_{v}}]$;

9 Calibrate $\mathcal{M}_{u}$ and $\mathcal{M}_{v}$ by interpolation results;

10

11 Calibrate the two arcs by $\mathcal{O}_{\mathcal{M}_{1}}$ and
$\mathcal{O}_{\mathcal{M}_{n}}$;

12 Aggregate the calibrated results;

13 Achieve the phase of samples;

14

15 return Sequence of phase differential iterations
$\mathcal{A}^{{}^{\prime}}$;

16

17

Algorithm 1 Static Component Elimination

The unwrapped result $\mathcal{A}$, however, is suffered from the slow changes
of static paths, leading to the translations to certain parts of whole trace.
Therefore, some radians corresponding to CSI trace in unwrapped $\mathcal{A}$
may be incomplete, and results in a large deviation of the estimated traces.
Recall to $\mathcal{M}$, without loss of generality, it can be decomposed into
several circles $[\mathcal{M}_{1},\mathcal{M}_{2},...,\mathcal{M}_{n}]$ and
two independent arc segments by the multi-peak searching algorithm. The mean
value of each circle, i.e., the coordinate of circle center, can be denoted by
$[\mathcal{O}_{\mathcal{M}_{1}},\mathcal{O}_{\mathcal{M}_{2}},...,\mathcal{O}_{\mathcal{M}_{n}}]$.
For $H_{ratio}(f,t)$ samples belonging to two consecutive circles
$\mathcal{M}_{u}$ and $\mathcal{M}_{v}$, we carry out linear interpolation in
interval $[\mathcal{O}_{\mathcal{M}_{u}},\mathcal{O}_{\mathcal{M}_{v}}]$, with
the number of interpolations equal to that of CSI samples. In this case, each
sample on $\mathcal{M}_{u}$ and $\mathcal{M}_{v}$ can be calibrated by
subtracting interpolated result accordingly, and the results are marked with
$[\mathcal{M}_{1}^{{}^{\prime}},\mathcal{M}_{2}^{{}^{\prime}},...,\mathcal{M}_{n}^{{}^{\prime}}]$.
The arc segments are the first and last segments left after division, and they
can be calibrated by $\mathcal{O}_{\mathcal{M}_{1}}$ and
$\mathcal{O}_{\mathcal{M}_{n}}$, according to the proximity principle. The
intuition of decomposition and interpolation is that slow changes of static
paths will have a translation of CSI trace in part over time, so all circles
are not completely concentric. These translations applied to the CSI trace are
actually the translations of the trace segments to diverse degrees, so we
decompose the trace and adopt interpolation between adjacent circle centers to
cope with it. The trace after SCE is in Fig. 15 (e), and the phase marked with
$\mathcal{A}^{{}^{\prime}}$ is in Fig. 15 (f) and (g), where most of the
static components have been removed, with more complete and accurate radians.

(a) Hand movement. (b) CSI trace. (c) Phase $\mathcal{A}$. (d) Unwrapped phase
$\mathcal{A}$.

(e) CSI trace after SCE. (f) Phase $\mathcal{A}^{{}^{\prime}}$. (g) Unwrapped
phase $\mathcal{A}^{{}^{\prime}}$.

Figure 15: Phase calibration when moving towards transceiver.

(a) Hand movement. (b) CSI trace. (c) The whole calibration. (d) Unwrapped
phase of (c).

(e) The segment calibration. (f) Phase of (e). (g) Unwrapped (f).

Figure 16: Phase calibration when reciprocating transceiver.

Besides, user may move hand back and forth around the transceiver while
performing gestures. As illustrated in Fig. 16, user moves hand first towards
(from position A to B) and then away from the transceiver (from position B to
C). As aforementioned, $H_{ratio}(f,t)$ should rotate first counterclockwise
(red curve) and then clockwise (green curve). In this way, the entire CSI
trace is interrupted by the two opposite rotations (i.e., AB and BC). If the
CSI trace is calibrated as an entirety, a large range of errors may be
introduced, thus degrading the tracking accuracy, as illustrated in Fig. 16
(c) and (d). Hence, CSI trace segments corresponding to towards or away from
the transceiver need to be separated based on phase flip directions. The above
static components elimination operations can be conducted for each segment
thereafter, and calibrated results are as shown in Fig. 16 (e) to (g). With
$\mathcal{A}^{{}^{\prime}}$ of both pairs of transceivers, the precise 2D
length changes of dynamic path over time can be derivated, i.e.,
$\frac{\mathcal{A}^{{}^{\prime}}}{2\pi}\lambda$. The pseudocode of this module
is shown in Algorithm 1.

###  V-E Tracking Smoothing

Given the initial position in the Cartesian coordinate system, the reflection
path length can be initialized. According to the changes of path length
$\frac{\mathcal{A}^{{}^{\prime}}}{2\pi}\lambda$, the absolute length can be
updated, and the motion traces of hands can be estimated thereafter. Due to
persistent system noise, the estimated fine-grained trace still carries
errors. Here we turn to the Savitzky-Golay filter [50], which leverages the
least square to fit a particular polynomial to a windowed part of the signal,
and further replaces the central point of the window with the polynomial value
of the point to generate smoothed output. Due to its low computational cost
and ability to effectively preserve the envelope of the signal waveform,
Savitzky-Golay filter is adopted for tracking smoothing.

(a) Basement. (b) Office. (c) Laboratory.

Figure 17: Vertical view of experimental scenarios: (a) a basement of size 4.5
m $\times$ 4 m; (b) an office of size 4 m $\times$ 4 m; (c) a laboratory of
size 7 m $\times$ 6 m.

##  VI Implementation and Evaluation

In this section, we implement CentiTrack and evaluate its 2D gesture tracking
accuracy, as well as related parameter study. Experiments are conducted in
three indoor scenarios, as shown in Fig. 17. The sensing area is set
perpendicular to the ground, and the LoS of transceivers is 1.5 m. Unless
otherwise stated, the users stand in front of our system and make gestures on
the sensing plane. The moving speed is less than or equal to 0.5 m/s, which is
in line with the real handwriting speed range of users. The ground truth is
supervised by Leap Motion [7], which can compute hands’ 2D coordinates in
millimeters with respect to the Leap Motion controller as the origin. The
reason why we do not adopt the template as the ground truth is that hands will
shake slightly during the movement, which will lead to additional estimation
errors. The tracking error of each trace is reported by the Euclidean distance
between the ground truth and estimated trace point by point, and then averaged
by all the points.

###  VI-A Implementation

We implement CentiTrack on totally three mini-PCs equipped with Intel 5300
WiFi NICs, where the TX is with one antenna, while three for each RX to form a
uniform linear array. All the antennas are commonly-seen horizontally-
polarized omni-directional antennas. Here, we make WiFi NICs run at the same
configuration as section IV-B. The Intel 5300 NIC reports 30 out of 56
subcarriers for each of its antennas. The sampling rate of CSI defaults to 300
Hz. Our system can run either offline or online via User Datagram Protocol
(UDP) protocol.

###  VI-B Evaluation Metrics

We evaluate the gesture tracking performance with up to four users from eight
metrics: (i) Initial position error. (ii) 2D tracking error. (iii) Impact of
different scenarios. (iv) Impact of different moving directions. (v) Impact of
sampling rate. (vi) Impact of user and trace length diversity. (vii) Impact of
other person walking around. (viii) Benefits of individual modules.

###  VI-C Experimental Results

(a) Initial position error. (b) CDF of initial position error. (c) CDF of 2D
tracking error. (d) Tracking W/O initial position.

Figure 18: 2D measurement including initial position estimation and 2D traces
tracking.

Figure 19: Impact of environments.

(a) CDF of distance error. (b) CDF of direction error.

Figure 20: Impact of moving directions.

Figure 21: Impact of sampling rate.

Figure 22: Per-second computation cost.

Figure 23: Impact of user diversity.

Figure 24: Impact of length diversity.

Figure 25: Impact of other person walking around.

Initial position error: We first evaluate the initial position estimation when
users perform 120 pairs of slight random heading movements, with four evenly
distributed ground truth initial positions as (0.4, 0.4), (0.6, 1.2), (1.2,
0.6) and (0.9, 0.9). As shown in Fig. 18 (a), the estimated results have an
excellent clustering, and the errors are independent of the spatial position.
Fig. 18 (b) shows that the 80th percentile estimated position error is within
8.0 cm. This is mainly due to the inherent search error of MUSIC algorithm and
some weak dynamic path interference. All in all, the results indicate that
CentiTrack is competent for the task of initial position estimation.

Tracking error: We next evaluate the 2D tracking accuracy when drawing lines,
random curves, and English letters in the air. All the movements range from 30
cm to 120 cm. We strat to evaluate the tracking accuracy of a total number of
250 movements including lines and circular curves on the 2D sensing plane.
Fig. 18 (c) depicts the distributions of 2D tracking errors. It can be seen
that for lines and curves, their median tracking errors are 0.6 cm and 1.0 cm,
and their 80th percentile errors are both within 1.5 cm. Then, we evaluate if
CentiTrack can effectively track the trace of English letters, which is more
challenging due to sharp turns or segments. In our study, 100 letters are
evaluated in total. As illustrated, the median and mean errors both remain
below 2.3 cm, and 80th percentile errors are within 3.0 cm. Due to sharp turns
and larger length, the errors of letters are slightly larger than those of
lines and curves. Note that without the initial position, the above tracking
performance will be seriously degraded. As shown in Fig. 18 (d), we take the
case that the initial position is 30 cm horizontally away from the ground
truth, the median error of total 350 traces will increase by 144%, i.e., from
0.9 to 2.2 cm. In addition, the distribution of errors will have a worse
tailing.

Impact of different scenarios: We conduct experiments in different scenarios
in order to demonstrate the influence of environment diversity. As shown in
Fig. 17, there are three scenarios including basement, office and laboratory,
and we collected 100 2D traces in each of them. Fig. 21 shows the
distributions of tracking errors at different spots. As shown, it achieves
considerably low mean tracking errors of 1.5 cm, 2.2 cm and 2.0 cm,
respectively. We note that CentiTrack still maintains high tracking
performance confronting diverse environments. However, this stability is
inversely related to the size of sensing area. With a larger sensing area, the
signal reflected by hands tends to be more vulnerable to noises, resulting in
degradation of accuracy. Besides, given the fixed moving speed and distance,
the longer the LoS is, the smaller the DFS will be, which further degrades the
sensitivity of system. Therefore, we configure the LoS by 1.5 m, which not
only is sufficient for gesture tracking, but also does not cause the reflected
signal to be weak or DFS to be insensitive.

Impact of different moving directions: To evaluate how moving direction
impacts the tracking performance, users are asked to move hands in straight
lines with various degrees related to y-axis. Fig. 21 shows the distribution
of direction and distance errors for five directions. CentiTrack remains high
performance for diverse moving directions, indicating it has slight impact on
the tracking accuracy.

(a) Benefits of individual modules. (b) Algorithm comparison.

Figure 26: Benefits of individual modules.

(a) 10 digits and 26 letters. (b) Confusion matrix of text recognition.

Figure 27: Handwriting and text recognition.

Impact of sampling rate: To find out the minimum CSI sampling rate required to
ensure high performance, we initialize the sampling rate at TX as 300 Hz, and
gradually drop CSI samples at regular intervals to achieve rates of 200 Hz,
100 Hz, 50 Hz, 20 Hz and 10 Hz. Fig. 21 shows the tracking errors with
different sampling rates, we can find that a higher sampling rate does lead to
a higher accuracy, but the performance degradation with lower rate is not
significant, when the rate exponentially decreases from 300 Hz to 20 Hz. It
demonstrates that CentiTrack can be compatible with low packet rate, which is
practical with real WiFi transmissions. However, further reducing the sampling
rate, from 20 Hz to 10 Hz, may result in aliasing of DFS estimation. Given 0.5
m/s moving speed, accroding to DFS definiton caused by hand motion,
$f_{D}=\frac{v_{hand}}{\lambda}$, the range of DFS is therefore within [-10
Hz, 10 Hz]. Thus, the minimum sampling rate required is at least
${2f_{D}}_{max}$, i.e. 20 Hz, due to the Nyquist Theorem. If users draw at a
higher speed, a higher minimum sampling rate is required accordingly.

Next, we also evaluate the per-second computation cost. The processing
computer is with the Intel i7-7700 CPU. As shown in Fig. 25, the major time
cost comes from initial position estimation by MUSIC. By decreasing the
sampling rate, the computation cost is gradually reduced. Given the rate by 20
Hz, the per-second cost is only 12 ms, enabling a real-time gesture tracking.

Impact of user and trace length diversity: To determine whether CentiTrack
consistently works for diverse users, we in total recruit four volunteers to
participate in experiments. The volunteers are with different genders, heights
and body shapes, and without training in advance. Given the differences in
moving speeds, ranges and styles, the tracking accuracy varies among users.
Fig. 25 plots the boxplot of the mean tracking errors for different users. As
shown, our system tracks all users’ hands with high accuracy, without knowing
any hand motion features of users. The results indicate that CentiTrack is
robust to user diversity and can achieve a high and stable tracking
performance. Fig. 25 also shows that CentiTrack can track reasonably long
traces (up to 120 cm) with only a slight increase in estimation error.

Impact of other person walking around: To evaluate the system robustness, we
conduct control groups where other volunteers were working or walking around
during tracking. As shown in Fig. 25, the closer the distance between the
walking volunteer and the transceiver, the larger the tracking error will be.
The signal variations induced by other volunteers will make it more difficult
to detect hand motion accurately. The result above shows that CentiTrack has
high precision even if another person walking 1.5 m away from users.
Therefore, our system is robust to interference caused by indoor daily
activities.

Benefits of individual modules: The accurate tracking performance stems from
both the proposed Tracking Calibration and Tracking Smoothing processes. Fig.
27 (a) shows the effects of these two modules on total 350 traces. It can be
seen that, without the SCE, the mean tracking error increases from 1.3 to 2.3
cm. The necessity of the static components elimination is underlined here. The
tracking accuracy is also improved by 0.5 cm with the Savitzky-Golay (S-G)
filter, which benefits from the smooth envelope. Besides, we compare the
performance of the proposed SCE with the state-of-the-arts, i.e., Extracting
Static Component algorithm (ESC) [1] and our previous work Static Components
Elimination algorithm (SCE1.0) [51]. As shown in Fig. 27 (b), we compute the
tracking errors on 100 letter traces, because the algorithms will have more
obvious correction effect on the more challenging letters tracking. ESC
isolates the static components by detecting whether the gap between alternate
local maximum and minimum points is larger than an empirical threshold. For
CSI signals, the static components are always affected by surrounding noise
and interference, therefore it is difficult to reliably detect the local
maximum and minimum points by a pre-configured threshold. Different from ESC,
SCE1.0 combines the I/Q parts in CSI trace and decomposes the whole trace to
calibrate the signals, which has better static components elimination results.
As a subsequent work of SCE1.0, we decompose CSI traces, and adopt linear
interpolation between the circle centers to further eliminate slow changing
static components in CentiTrack.

###  VI-D Use Case: Handwriting and Text Recognition

In this section, we evaluate CentiTrack by allowing the users to input digits
or letters to devices by writing in the air. An in-air handwriting prototype
is thus implemented, where RXs report CSI and sends to a central server via
UDP protocol real time. Users can write a digit, letter or cursive word once a
time to splice them into a word or sentence. When the signal variance caused
by user pauses is below the empirical threshold for $\tau_{a}$, we regard it
as a pause and wait for next writing for splicing. When the pause exceeds
$\tau_{b}$, the splicing is considered complete. We interface CentiTrack with
Google Input Method Editors (GIME). As users write in the air, we feed the
coordinates of estimated traces into GIME and use the recognition
functionality to interpret the texts.

(a) Circle. (b) Triangle. (c) Five-pointed star. (d) Cursive “CentiTrack”.

Figure 28: Samples of estimated traces.

We evaluate the recognition accuracy of digits for text input. The
experimental settings are the same as the one in 2D tracking scenario. The
users can draw digits or letters in different sizes and initial positions. We
collect 20 samples for each digit from 4 users, i.e., $20\times 10\times
4=800$ data in total. An example of the estimated digits is illustrated in
Fig. 27 (a). Fig. 27 (b) shows the detail of recognition accuracy. It can be
seen that most of the digits achieve an accuracy of greater than 94%. Fig. 28
also shows some samples of the estimated trace, including several arbitrary
movements and the cursive form of “CentiTrack”, indicating that our system is
as fine-grained as the actual handwriting.

##  VII Discussion and Limitations

All the major commodity WiFi chip families (Atheros, Intel, and Marvell)
expose CSI [52, 53]. With low computation cost, robustness and wireless
transmission compatibility, we believe CentiTrack can easily apply to any
commodity WiFi infrastructure. In CentiTrack, two paris of transceiver are
placed vertically to establish a Cartesian coordinate system. However, this
can also be achieved by non-vertical placement, except that the transceiver
pairs are not on the axis. To be specific, based on the AoAs [$\theta_{1}$,
$\theta_{2}$] of two LoS path from TX to RXs, and the vertical arrangement of
RX antenna array, we can determine a unique triangle with three WiFi devices
as its vertices. In this way, the coordinate system can be established, and
the gesture tracking task can be realized.

Our current implementation has following limitations. We currently estimate
the initial position of hand by AoAs. Nevertheless, this method cannot work
when user starts to move hand on the connection of two RXs. This is because
all points on this connection have the same pair of AoAs. To cope with it, we
delay several CSI samples to derive the initial position when the estimated
AoAs are on the connection line. Besides, our scheme is not based on range
information, it will have the accumulative tracking errors. While, the
tracking error is quite acceptable (2.2 cm) even the trace length is up to 120
cm.

##  VIII Conclusion

In this paper, we propose CentiTrack, the first passive gesture tracking
system with only three commodity WiFi devices, which achieves centimeter-level
accuracy without any dedicated devices or extra hardware modifications. We
fully implement CentiTrack and carry out comprehensive evaluations as well as
related parameter study. The extensive experiments yield that it can track
gestures with mean error lower than 1.5 cm, which is comparable to camera-
based solutions. Benefits provided by its accurate performance can track
users’ writings/drawings in practical applications, be it handwriting or
intelligent household appliance controlling in smart homes. In the future, we
will prove that CentiTrack can achieve 3D hand motion tracking.

## Acknowledgment

This work was supported by the National Natural Science Foundation of China
under grant No.61671073.

## References

  * [1] Lei Wang, Ke Sun, Haipeng Dai, Alex X. Liu, and Xiaoyu Wang. “WiTrace: Centimeter-Level Passive Gesture Tracking Using WiFi Signals,” In Proceedings of the IEEE International Conference on Sensing, Communication and Networking (SECON), IEEE, 2018.
  * [2] Yunting Zhang, Jiliang Wang, Weiyi Wang, Zhao Wang, and Yunhao Liu. “Vernier: Accurate and Fast Acoustic Motion Tracking Using Mobile Devices,” In IEEE INFOCOM 2018-IEEE Conference on Computer Communications, IEEE, pp. 1709-1717, 2018.
  * [3] Wenguang Mao, Jian He, and Lili Qiu. “CAT: High-precision Acoustic Motion Tracking,” In Proceedings of the 22nd Annual International Conference on Mobile Computing and Networking (MobiCom’16), ACM, pp. 69-81, 2016.
  * [4] Wei Wang, Alex X. Liu, and Ke Sun. “Device-free Gesture Tracking Using Acoustic Signals,” In Proceedings of the 22nd Annual International Conference on Mobile Computing and Networking (MobiCom’16), ACM, pp. 82-94, 2016.
  * [5] Sangki Yun, Yi-Chao Chen, and Lili Qiu. “Turning a Mobile Device into a Mouse in the Air,” In Proceedings of the 13th Annual International Conference on Mobile Systems, Applications, and Services (MobiSys’15), ACM, pp. 15-29, 2015.
  * [6] Q. Cai and J. K. Aggarwal. “Automatic Tracking of Human Motion in Indoor Scenes across Multiple Synchronized Video Streams,” In Proceedings of the 6th International Conference on Computer Vision (ICCV’98), IEEE, pp. 356-362, 1998.
  * [7] Leap motion, inc. leap motion: Mac & pc gesture controller for game, design and more, 2010. https://www.leapmotion.com/.
  * [8] C. Zhang, J. Tabor, J. Zhang, and X. Zhang. “Extending Mobile Interaction through Near-Field Visible Light Sensing,” In Proceedings of the 21st Annual International Conference on Mobile Computing and Networking (MobiCom’15), ACM, pp. 345-357, 2015.
  * [9] J. Song, G. Soros, F. Pece, S. R. Fanello, S. Izadi, C. Keskin, and O. Hilliges. “In-air Gestures around Unmodified Mobile Devices,” In Proceedings of the 27th annual ACM symposium on User interface software and technology (UIST’14), ACM, pp. 319-329, 2014.
  * [10] X. A. Chen, J. Schwarz, C. Harrison, J. Mankoff, and S. E. Hudson. “Air+Touch: Interweaving Touch & in-Air Gestures,” In Proceedings of the 27th annual ACM symposium on User interface software and technology (UIST’14), ACM, pp. 519-525, 2014.
  * [11] R.Want, A. Hopper, V. Falcao, and J. Gibbons. “The Active Badge Location System,” In ACM Transactions on Information Systems (TOIS), ACM, 1992.
  * [12] A. Ward, A. Jones, and A. Hopper. “A New Location Technique for the Active Office,” In IEEE Personal Communications, IEEE, 1997.
  * [13] S. Tan and J. Yang. “WiFinger: Leveraging Commodity WiFi for Fine-grained Finger Gesture Recognition,” In Proceedings of the 17th ACM International Symposium on Mobile Ad Hoc Networking and Computing (MobiHoc’16), ACM, pp. 201-210, 2016.
  * [14] Rajalakshmi Nandakumar, Bryce Kellogg, and Shyamnath Gollakota. “Wi-Fi Gesture Recognition on Existing Devices,” CoRR, 2014. http://arxiv.org/ftp/arxiv/papers/1411/1411.5394.pdf.
  * [15] Heba Abdelnasser, Moustafa Youssef, and Khaled Harras. “WiGest: A Ubiquitous WiFi-based Gesture Recognition System,” In Proceedings of IEEE Conference on Computer Communications (INFOCOM), IEEE, 2015.
  * [16] L. Sun, S. Sen, D. Koutsonikolas, and K.-H. Kim. “WiDraw: Enabling Hands-Free Drawing in the Air on Commodity WiFi Devices,” In Proceedings of the 21st Annual International Conference on Mobile Computing and Networking (MobiCom’15), ACM, pp. 77-89, 2015.
  * [17] T. Wei and X. Zhang. “mTrack: High-Precision Passive Tracking using Millimeter Wave Radios,” In Proceedings of the 21st Annual International Conference on Mobile Computing and Networking (MobiCom’15), ACM, pp. 117-129, 2015.
  * [18] F. Adib, Z. Kabelac, D. Katabi, and R. C. Miller. “3D Tracking via Body Radio Reflections,” In Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation (NSDI’14), ACM, pp. 317-329, 2013.
  * [19] F. Adib, Z. Kabelac, and D. Katabi. “Multi-Person Localization via RF Body Reflections,” In Proceedings of the 12th USENIX Conference on Networked Systems Design and Implementation (NSDI’15), ACM, pp. 279-292, 2015.
  * [20] J. Wang, D. Vasisht, and D. Katabi. “RF-IDraw: Virtual Touch Screen in the Air using RF Signals,” In Proceedings of the 2014 ACM Conference on SIGCOMM (SIGCOMM’14), ACM, pp. 235-246, 2014.
  * [21] K. Joshi, D. Bharadia, M. Kotaru, and S. Katti. “Wideo: Fine-Grained Device-Free Motion Tracing using RF Backscatter,” In Proceedings of the 12th USENIX Conference on Networked Systems Design and Implementation (NSDI’15), ACM, pp. 189-204, 2015.
  * [22] Zijun Han, Lingchao Guo, Zhaoming Lu, Xiangming Wen and Wei Zheng. “Deep Adaptation Networks Based Gesture Recognition using Commodity WiFi,” IEEE Wireless Communications and Networking Conference (WCNC), IEEE, 2020.
  * [23] Yaxiong Xie, Zhenjiang Li and Mo Li. “Precise Power Delay Profiling with Commodity WiFi,” In Proceedings of the 21st Annual International Conference on Mobile Computing and Networking (MobiCom’15), ACM, pp. 53-64, 2015.
  * [24] Yu Gu, Fuji Ren, and Jie Li. “PAWS: Passive Human Activity Recognition Based on WiFi Ambient Signals,” IEEE Internet of Things Journal, vol. 3, pp. 796-805, 2016.
  * [25] Qizhen Zhou, Jianchun Xing, Juelong Li and Qiliang Yang. “A Device-free Number Gesture Recognition Approach Based on Deep Learning,” 12th International Conference on Computational Intelligence and Security (CIS), IEEE, pp. 57-63, 2016.
  * [26] Manikanta Kotaru, Alexander Anemogiannis, Samuel Joseph and Sachin Katti. “Position Tracking for Virtual Reality Using Commodity WiFi,” In Proceedings of the 23rd Annual International Conference on Mobile Computing and Networking (MobiCom’17), ACM, pp. 488-489, 2017.
  * [27] Ning Xiao, Panlong Yang, Xiang-Yang Li, Yanyong Zhang, Yubo Yan and Hao Zhou. “MilliBack: Real-Time Plug-n-Play Millimeter Level Tracking Using Wireless Backscattering,” In Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies, ACM, Vol. 3, no. 3, pp. 1-23, 2019.
  * [28] Xiang Li, Daqing Zhang, Qin Lv, Jie Xiong, Shengjie Li and et al. “IndoTrack: Device-Free Indoor Human Tracking with Commodity Wi-Fi,” Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies, vol. 1, 72, 2017.
  * [29] Xiang Li, Shengjie Li, Daqing Zhang, Jie Xiong, Yasha Wang and Hong Mei. “Dynamic-MUSIC: Accurate Device-Free Indoor Localization,” In Proceedings of the 2016 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp’16), ACM, pp. 196-207, 2016.
  * [30] Chitra R. Karanam, Belal Korany and Yasamin Mostofi. “Tracking from One Side - Multi-Person Passive Tracking with WiFi Magnitude Measurements,” In Proceedings of the 18th International Conference on Information Processing in Sensor Networks (IPSN ’19), ACM, pp. 181-192, 2019.
  * [31] Kun Qian, Chenshu Wu, Zheng Yang, Yunhao Liu and Kyle Jamieson. “Widar: Decimeter-Level Passive Tracking via Velocity Monitoring with Commodity Wi-Fi,” In Proceedings of the 18th ACM International Symposium on Mobile Ad Hoc Networking and Computing (Mobihoc’17), ACM, vol. 6, pp. 1-10, 2017.
  * [32] Kun Qian, Chenshu Wu, Yi Zhang, Guidong Zhang, Zheng Yang and Yunhao Liu. “Widar2.0: Passive Human Tracking with a Single Wi-Fi Link,” In Proceedings of the 16th Annual International Conference on Mobile Systems, Applications, and Services (MobiSys’18), ACM, pp. 350-361, 2018.
  * [33] M. Kotaru, K. Joshi, D. Bharadia, and S. Katti. “SpotFi: Decimeter Level Localization using WiFi,” In ACM SIGCOMM Computer Communication Review, ACM, vol. 45, pp. 269-282, 2015.
  * [34] Qifan Pu, Sidhant Gupta, Shyamnath Gollakota, and Shwetak Patel. “Whole-home Gesture Recognition Using Wireless Signals,” In Proceedings of the 19th Annual International Conference on Mobile Computing and Networking (MobiCom’13), ACM, pp. 27–38, 2013.
  * [35] Agata Brajdic and Robert Harle. “Scalable Indoor Pedestrian Localization Using Inertial Sensing and Parallel Particle Filters,” In Proceedings of 2012 International Conference on Indoor Positioning and Indoor Navigation (IPIN’12), IEEE, pp. 1-10, 2012.
  * [36] Oliver Woodman and Robert Harle. “RF-Based Initialization for Inertial Pedestrian Tracking,” In Proceedings of the 7th International Conference on Pervasive Computing (Pervasive’09), ACM, pp. 238-255, 2009.
  * [37] Gabe Cohn, Daniel Morris, Shwetak Patel and Desney Tan. “Humantenna: Using the Body as an Antenna for Real-Time Whole-Body Interaction,” In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI’12), ACM, pp. 1901-1910, 2012.
  * [38] Gabe Cohn, Sidhant Gupta, Tien-Jui Lee, Dan Morris, Joshua R. Smith and et al.. “An Ultra-Low-Power Human Body Motion Sensor using Static Electric Field Sensing,” In Proceedings of the 2012 ACM Conference on Ubiquitous Computing (UbiComp’12), ACM, pp. 99-102, 2012.
  * [39] Fadel Adib and Dina Katabi. “See through Walls with WiFi,” In Proceedings of ACM SIGCOMM, ACM, pp. 75-86, 2013.
  * [40] Hongzi Zhu, Yiwei Zhuo, Qinghan Liu and Shan Chang. “$\pi$-Splicer: Perceiving Accurate CSI Phases with Commodity WiFi Devices,” IEEE Transactions on Mobile Computing, IEEE, Vol. 17, no. 9, pp. 2155-2165, 2018.
  * [41] H. Wang, D. Zhang and Y. Wang et al, “RT-Fall: A Real-time and Contactless Fall Detection Approach with Commodity WiFi Devices,” IEEE Transactions on Mobile Computing, IEEE, vol. 16, no. 2, pp. 511-526, 2017.
  * [42] Youwei Zeng, Dan Wu, Jie Xiong, et al. “FarSense: Pushing the Range Limit of WiFi-based Respiration Sensing with CSI Ratio of Two Antennas,” In Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies, vol. 3, 121, 2019.
  * [43] Daniel Halperin, Wenjun Hu, Anmol Sheth and David Wetherall. “Predictable 802.11 Packet Delivery from Wireless Channel Measurements,” ACM SIGCOMM Computer Communication Review-SIGCOMM’10, vol. 40, pp. 159-170, 2010.
  * [44] Hristo D Hristov. “Fresnel Zones in Wireless Links, Zone Plate Lenses and Antennas,” Artech House, Inc., United States, pp. 345, 2000.
  * [45] R. Schmidt. “Multiple emitter location and signal parameter estimation,” IEEE Transactions on Antennas and Propagation, IEEE, vol. 34, no. 3, pp. 276-280, 1986.
  * [46] M. Wax and T. Kailath. “Detection of Signals by Information Theoretic Criteria,” IEEE Transactions on Acoustics, Speech, and Signal Processing, IEEE, vol. 33, no. 2, pp. 387-392, 1985.
  * [47] Wenqi Bi, Xiang-Yang Li, Panlong Yang, Guang Li, Hao Zhou and et al.. “Signal Tracking Using Commodity WiFi,” In Proceedings of the 2018 4th International Conference on Big Data Computing and Communications (BIGCOM), IEEE, 2018.
  * [48] N. Czink, M. Herdin, H. Ozcelik and E. Bonek. “Number of Multipath Clusters in Indoor MIMO Propagation Environments,” Electronics Letters, IEEE, vol. 40, no. 23, pp. 1498-1499, 2004.
  * [49] Jie Xiong and Kyle Jamieson. “ArrayTrack: A Fine-Grained Indoor Location System,” In Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation (nsdi’13), ACM, pp. 71-84, 2013.
  * [50] Khadija Baba, Lahcen Bahi, and Latifa Ouadif. “Enhancing Geophysical Signals through the Use of Savitzky-Golay Filtering Method,” Geofisica Internacional, vol. 53, no. 4, pp. 399-409, 2014.
  * [51] Zijun Han, Zhaoming Lu, Xiangming Wen, et al. “In-Air Handwriting by Passive Gesture Tracking using Commodity WiFi,” IEEE Communications Letters (Early Access), IEEE, 2020.
  * [52] Daniel Halperin, Wenjun Hu, Anmol Sheth and David Wetherall. “Tool Release: Gathering 802.11n Traces with Channel State Information,” ACM SIGCOMM Computer Communication Review, vol. 41, no. 1, pp. 53, 2011.
  * [53] S. Sen, J. Lee, K.-H. Kim, and P. Congdon. “Avoiding Multipath to Revive Inbuilding WiFi Localization,” In Proceeding of the 11th Annual International Conference on Mobile Systems, Applications, and Services (MobiSys’13), ACM, pp. 249-262, 2013.