# Pattern-Based Decoding for Wi-Fi Backscatter Communication of Passive Sensors
## 1 Introduction  
Ambient backscatter communication is widely considered a means of ultralow power communication of low-end passive sensors (e.g., sensor tag) in Internet of Things (IoT) environments. Ambient backscatter communication is realized by letting a sensor tag reflect and absorb ambient signals in the air according to sensing-data bits to transmit by controlling the state of a radio frequency (RF) switch. For example, a tag reflects ambient signals (reflection state) for transmitting data one, but absorbs ambient signals (absorption state) for transmitting data zero; a receiver then sees the amplitude changes of received signals from which it can decode data bits. A variety of ambient signals, such as TV broadcasts, Wi-Fi and FM radio, are considered for this purpose. In particular, Wi-Fi backscatter communication is promising since Wi-Fi access points (main signal sources) prevail and most smartphones/tablet PCs (data-collecting node or Internet gateway for Wi-Fi backscatter tags) are already equipped with a Wi-Fi transceiver. Such wide availability of Wi-Fi-equipped devices is the key advantage of Wi-Fi backscatter communication for the quick deployment of technology. Thus, Wi-Fi has been considered as a promising carrier source of backscatter communication in the literature [1; 2; 3; 4; 5; 6; 7]. Despite the advantage of Wi-Fi backscatter communication, decoding data bits from backscattered Wi-Fi signals is challenging since a Wi-Fi signal itself has inherent fluctuations due to the high peak-to-average-power-ratio (PAPR) nature of orthogonal frequency-division multiplexing (OFDM). Prior studies [1; 8; 9; 10] employed a naive approach for decoding, whereby the amplitudes of signal samples are compared with a threshold to be classified between data one and zero. The downside of this approach is that a receiver can reliably decode data bits only if ambient signals are typically more stable (less fluctuating) than Wi-Fi signals. In addition, decoding reliability would significantly be reduced if we allow faster switching between reflection and absorption states for a higher data rate (e.g., over a few hundred kbps). Moreover, the threshold that has been determined based on past signal samples may not always be applicable to forthcoming samples due to changing fluctuation patterns of Wi-Fi signals and wireless channels. In this paper, we propose a simple but novel algorithm to decode data bits from backscattered Wi-Fi signals. The key idea is the identification of unique patterns of signal samples that arise from the inevitable smoothing of Wi-Fi signals to filter out noisy fluctuation. We prove that the pattern of smoothed signal samples is obtained as the slope of a line using a closed-form equation. On this mathematical basis, we designed the proposed algorithm to identify the pattern of the changes of received signal samples as a slope, rather than classifying their amplitude levels. Hence, our algorithm is more robust to signal fluctuation than the previous threshold-based decoding variants and does not need tricky threshold configuration. To further improve reliability, the pattern is identified for a pair of adjacent bits, and the algorithm decodes a bit pair at a time rather than a single bit. This behavior enables the algorithm to make a decision for a bit from two patterns (one from a pair with the previous bit and the other from a pair with the next bit), thus making the decision more reliable against occasional fluctuation peaks. We demonstrate via testbed experiments that the proposed algorithm outperforms conventional threshold-based decoding variants in terms of a bit error rate (BER), reducing it by up to 94%. The prototype is based on the simplest design of a backscatter tag that data bits are modulated on Wi-Fi signals by binary switching, like Reference [1]. Since the proposed algorithm aims for reliable decoding from observation of signal changes, it can also be combined with or extended for other techniques, e.g.