RENEW Project Documentation

Version 1.0

Reconfigurable Ecosystem for Next-generation End-to-end Wireless

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:

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]:

Last updated on 30 Jun 2020 / Published on 12 Feb 2019