Python Libraries
Automatic Gain Control (AGC)
Implementation of an automatic gain control finite state machine:
Read Digital RSSI values computed by LMS7002M RF transceiver IC and compute RX power:
Read/Write Data to File
Read/write complex numpy array from/to file prefixed with name, in twos-complement binary format:
Class used to record data into HDF5 file:
Type Conversion
Convert floating point iq values to uint32 (FPGA format) and vice versa:
TX/RX for CSI Collection
Classes for transmitting/receiving and collecting CSI between (i) boards on same Base Station and (ii) Base Station and clients:
OFDM/802.11/LTE
Library that allows users to generate random data stream of OFDM symbols, and modulate/demodulate according to a specified modulation order. Available modulation orders: [BPSK, QPSK, 16-QAM, 64-QAM]
Library for generating different training sequences. Supports the following sequences: [802.11 STS, 802.11 LTS, Zadoff-Chu (3GPP LTE), and Gold Sequence]
Find the indices of 802.11 LTS in the input signal:
Signal Analysis and Power Calculation
Library for CSI analysis:
Calculate an estimate of the power spectral density employing a Hann window and analyze bins for noise floor and peaks:
Detect peaks in data based on their amplitude and other features (original source):
Detect peaks in a vector (original source):
Compute average power in an input signal. Alternative to Matlab’s bandpower function (original source):
Plotting Tools
Plot RX waveform (output) from SOUNDER_TXRX.py demo script. Can be used with other output data files as long as the data format remains the same:
Parse and verify contents of hdf5 files (e.g., from channel sounding). The main script is plot_hdf5.py and it relies on the library provided by hdf5_lib.py:
-
plot_hdf5.py: Please see more details here.
OFDM plotter. Plots (i) TX/RX IQ signals, (ii) Correlation of training sequence, (iii) Constellation, and (iv) Channel magnitude. Mainly used by SISO_OFDM.py script:
Utils
Print sensor values from array of Irises (e.g., temperature sensor for Zynq SoC, RF Front-end, and LMS7):
Find Iris boards on network and list them:
Sample offset calibration. Eliminate sample offset among boards in a Base Station:
Codebooks
Set of sequences primarily used for training. Available sequences: [Gold length 127, Gold length 511, Kasami length 63, and Kasami length 255]: