|
def | init () |
| Functions #. More...
|
|
def | find_optimal_gain (sdrTx, sdrRx) |
|
def | animate (i, num_samps_rd, rxStream, sdr, sdrTx, ofdm_params, tx_struct, ota, ofdm_obj, agc_en, infoTx) |
|
def | txrx_app (args, rate, ampl, ant, txgain, rxgain, freq, bbfreq, serialTx, serialRx, ofdm_params, num_samps_rd, ota, ofdm_obj, agc_en) |
|
def | main () |
| Main #. More...
|
|
|
bool | running = True |
| Global Parameters #. More...
|
|
int | pkt_count = 0 |
|
int | nextValRX = 0 |
|
int | nextValTX = 0 |
|
int | prevValTX = 0 |
|
int | FIG_LEN = 2**13 |
|
int | APPLY_CFO_CORR = 1 |
|
int | APPLY_SFO_CORR = 1 |
|
int | APPLY_PHASE_CORR = 1 |
|
| fig = plt.figure(figsize=(10, 20), dpi=120) |
| Create Plots #. More...
|
|
| hspace |
|
| top |
|
| bottom |
|
| gs = gridspec.GridSpec(ncols=4, nrows=5) |
|
| ax1 = fig.add_subplot(gs[0, :]) |
|
| title = ax1.text(0.5, 1, '|', ha="center") |
|
| label |
|
| animated |
|
| fontsize |
|
| ax2 = fig.add_subplot(gs[1, :]) |
|
| ax3 = fig.add_subplot(gs[2, :]) |
|
| ax4 = fig.add_subplot(gs[3, :]) |
|
| ax5 = fig.add_subplot(gs[4, 0:2]) |
|
| ax6 = fig.add_subplot(gs[4, 2:4]) |
|
SISO_OFDM.py
Generates, transmits, and receives and OFDM signal.
The user can select one of the following modulation schemes BPSK/QPSK/16QAM/64QAM
It requires two Iris boards (chained or unchained). The TX board will transmit
the signal from RF chain A and the RX board will receive it at RF chain A as well
(script can be extended to support both chains).
The script can be run in two modes:
- SIM (simulation using an AWGN channel)
- OTA (over-the-air transmission)
Figure "SISO_OFDM_output.png" inside the "figures" folder shows an the output
generated for a 16-QAM OTA transmission
NOTE ON GAINS:
Gain settings will vary depending on RF frontend board being used
If using CBRS:
rxgain: at 2.5GHz [3:1:105], at 3.6GHz [3:1:102]
txgain: at 2.5GHz [16:1:81], at 3.6GHz [15:1:81]
If using only Dev Board:
rxgain: at both frequency bands [0:1:30]
txgain: at both frequency bands [0:1:42]
The code assumes both TX and RX have the same type of RF frontend board.
Usage example: python3 SISO_OFDM.py --mode="SIM"
Based on the wl_example_siso_ofdm.m script developed for the WARP platform:
http://warpproject.org/trac/wiki/WARPLab/Examples/OFDM
---------------------------------------------------------------------
Copyright © 2018-2019. Rice University.
RENEW OPEN SOURCE LICENSE: http://renew-wireless.org/license
---------------------------------------------------------------------