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