Code Level Collaboration via GitLab

It is critical to work together to discuss, to implement, and to review the development collaboratively in code level. For git based development, we have two ways of collaboration: One Shared Repository Forked + Pull/Merge Request The former one is the simplest form. The repository owner grants access to team members, and everyone works directly on this repository. Once you push something, it is something, and everyone should pull your work. [Read More]

Setup Research Blog on GitLab with Custom Domain and HTTPS

The job described in title can be divided into several steps: Follow GitLab Pages Documentation to create your GitLab Pages at Buy your favorite custom domain [Optional] Transfer your domain resolving to DNSPod in case of domain being blocked by GFW Associate your domain to GitLab Pages Enable SSL/TLS connection via Let’s Encrypt I am not writing long to guide you step by step, because GitLab Pages Documentation is a very good guide for us to go through the above steps. [Read More]

Perfect Singleton in C++11

in Just One Line

Short version: Perfect C++11 Singleton Template Long version: Singleton is one of the widely adopted design patterns to encapsulate a service class or any class whose functionalities tightly bind to one particular instance. It varies a lot in different programming languages to implement a singleton class. Most of them are tedious, and done in copy-and-paste way. C++, yes, the old one, is even more tedious to do so. Fortunately, C++11 makes great efforts to transform the old C++ into a much modern one, or modern C++. [Read More]

Facts about CSI Phase Measured by Atheros 9300 NIC

Facts, The Verified Facts...

In this short page, several verified facts about CSI phase information are listed. More is pending, and discussions are welcome. 1. 0-th subcarrier of the 1st antenna, the most dominating. 0-th Subcarrier CSI phase measurement contains several noises/errors: CFO (Carrier Frequency Offset), SFO (Sampling Frequency Offset), PDD (Packet Detection Delay), and random initial phase, etc. Their impacts to OFDM CSI is different. SFO and PDD cause phase rotation (or slope component across subcarriers); CFO and random initial phase together cause random-like overall phase shift (or intercept component). [Read More]

Advanced PicoScenes (2): Arbitrary Carrier Frequency Tuning

Enabling UWB Sensing on Commodity Wi-Fi Devices

In this tutorial, we explore a much more valuable feature of PicoScenes: arbitrary carrier frequency tuning, or enabling Ultra Wide Bandwidth (UWB) sensing on commodity Wi-Fi devices. Two ways are provided to access this feature: Carrier Frequency Direct Tuning, and Carrier Frequency Scanning. In the following text, I use CF for the abbreviation of Carrier Frequency. Carrier Frequency Direct Tuning Tuning NIC phy0 to an arbitrary CF demands only one argument: –freq. [Read More]

Advanced PicoScenes (1): Injection with ACK

ms Grade BI-DIRECTIONAL CSI Measurement

The previous tutorial introduces PicoScenes and exemplify the simple injector and logger modes. In this tutorial, we move forward to an advanced feature of PicoScenes: Injection with ACK, or chronos-initiator and chronos-responder modes. For a simple description, these two modes working together enable BI-DIRECTIONAL CSI measurement with ms grade round-trip delay (RTD). This tutorial is an extended topic on PicoScenes. You should refer the previous tutorial for basic usage of PicoScenes. [Read More]

PicoScenes: Get Started

Basic CSI Measurement Guide

This tutorial will guide you how to perform CSI measurement using PicoScenes. Major Steps Kernel and PicoScenes Installation Install PicoScenes MATLAB Toolbox Prepare NICs for CSI Logging Prepare PicoScenes Argument Text File Perform CSI Measurement using PicoScenes Parse .csi Files using PicoScenes MATLAB Toolbox Recover Normal Wi-Fi Mode Step 1:Kernel And PicoScenes Installation Follow the installation tutorial Step 2: Install PicoScenes MATLAB Toolbox Click , then click the Download button (cloud with downward arrow icon), and choose picoscenes-matlab-toolbox. [Read More]

TechNote: Subcarrier Occupation in 802.11n HT20, HT40 and HT40+/- Channel Modes

Use HT20 or HT40 Mode!

Section 20.3.7 in 802.11n Standard states clearly about the subcarrier occupation in HT20/HT40/HT40+/HT40- channel mode: … In the 20 MHz HT format, the signal is transmitted on subcarriers –28 to –1 and 1 to 28. In the case of the 40 MHz HT format, a 40 MHz channel is used. The channel is divided into 128 subcarriers. The signal is transmitted on subcarriers –58 to –2 and 2 to 58. [Read More]