csi-visualization
csi-visualization copied to clipboard
📊 Wi-Fi Channel State Information(CSI) visualization with python
CSI Visualization with Python
📊 Wi-Fi Channel State Information(CSI) visualization with python
Before use
This repo is based on CSI extracted with Nexmon CSI Extractor(Raspberry Pi, Wi-Fi chip: bcm43455c0).
Therefore, in order to use real-time plot and collect data for visualization, the Nexmon CSI extractor installation must be preceded.
(The csv data required by this repository can be obtained through csi-extractor)
2023 Update
- ~~pcap format is also available~~(To be implemented)
Installation
- Clone this repo and install the dependencies
pip install -r requirements.txt
- If you want to use real-time plot, clone this repo to the Raspberry Pi with Nexmon firmware installed.
Usage
python csiexplorer.py [CSI dir] --plt [Plot Type]
- Use sample data for Amplitude-PacketIdx plot
python csiexplorer.py sample --plt 1 --smp true
- Use real-time Amplitude or Phase plot
After installing the Nexmon firmware on the Raspberry Pi and setting the monitoring mode, run the code below.
sudo python3 csi_realTimeAmp.py
or
sudo python3 csi_realTimePhase.py
CSI explore
-
Amplitude-PacketIdx
-
Amplitude-Time
-
Heatmap (Amplitude-Packet)
-
Heatmap (Amplitude-Time)
-
Amplitude-SubcarrierIdx (all packet)
-
Amplitude-SubcarrierIdx Flow (single antenna set)
Real-Time Amplitude plot
![](https://github.com/cheeseBG/csi-visualization/raw/main/asset/realPlot.gif)