CSI in thoery. Channel state information (CSI) represents the coefficent of a wireless channel. In Wi-Fi systems using OFDM modulation, the CSI of every sub-carrier is a complex number, i.e., csi = a+bj, as shown in following figure. The CSI of a packet transmitted with M transmitting antennas, N receiving antennas, 20MHz channel bandwitdh, is a complex matrix of size M×N×56. If the bandwith is 40MHz, then the size of CSI matrix becomes M×N×114. |
|
The following figure (a) and (b) depicts the amplitude and amplitude in dB level of four CSI. We see that the amplitudes are similar in shape with each other but with offsets with each other. Figure c plots the phase of four CSI. Similarly, the phase has obvious offset across CSIs. The phase offsets results in the rotation of CSI in the complex plane, as shown in above figure.
|
|
|
Atheros-CSI-Tool is an open source 802.11n measurement and experimentation tool. It enables extraction of detailed PHY wireless communication information from the Atheros WiFi NICs, including the Channel State Information (CSI), the received packet payload, and other additional information (the time stamp, the RSSI of each antenna, the data rate, etc.). Atheros-CSI-Tool is built on top of ath9k, which is an open source Linux kernel driver supporting Atheros 802.11n PCI/PCI-E chips, so theoretically this tool is supposed to be able to support all types of Atheros 802.11n WiFi chipsets. We have tested it on Atheros AR9580, AR9590, AR9344 and QCA9558. Atheros-CSI-Tool is open source and all functionalities are implemented in software without any modification to the firmware. Therefore, you are able to extend the functionalities of Atheros-CSI-Tool with your own codes under the GPL license. You are welcome to get back to us with new functionalities contributed to the tool.
Atheros-CSI-Tool works on various Linux distribution, e.g., Ubuntu, OpenWRT, Linino, and so on. Different Linux distribution works on different hardware. Ubuntu works for personal computers like laptops or desktops. OpenWRT works for embeded devices such as Wi-Fi routers. Linino works for IoT devices, such as Arduino YUN. We provides the source code for Ubuntu version and OpenWRT version of Atheros CSI tool. The installation instructions can be found from our WiKi. We also provide the PDF version of the installation guide for Ubuntu version and OpenWRT version .
We build a general-purpose antenna extension solution with commodity Wi-Fi using our Atheros CSI tool. The proposed solution, SWAN, builds an array of stitched antennas extended from the radio chains of commodity Wi-Fi. SWAN has low hardware cost and provides easy-to-use interfaces embedded in the Linux kernel. Integrated with Atheros CSI tool, SWAN collects CSI from all the antennas in the array and group the CSI into a large matrix, which is further used for Wi-Fi sensing purposes such as estimating the AoA. The architecture of SWAN is shown in the following figure. We also build a prototype of SWAN using commodity devices, including Wi-Fi AP, Arduino and RF switches. More information about SWAN could be found from this page.
Maintainer: Yaxiong Xie       Author: Mo Li, Yaxiong Xie       Collaborators: Zhenjiang Li, Kyle Jamieson