RENEWLab  1.1.0
RENEW project
AGC_SIM_DEMO Namespace Reference

Functions

def init ()
 Functions #. More...
 
def agc_thread ()
 
def animate (i)
 
def rxsamples_app (args, srl, freq, bw, rxgain, clockRate, out)
 
def main ()
 Main #. More...
 

Variables

 agc_fsm = None
 Global Parameters #. More...
 
 threadT = None
 
 IQmag = None
 
 sdr = None
 
 rxStream = None
 
 sampsRx = None
 
 timeScale = None
 
int rxChan = 0
 
int fft_size = 1024
 
int rate = 5e6
 
int num_samps = 2**12
 
 freqScale = np.arange(-rate // 2, rate // 2, rate // fft_size)
 
int numBufferSamps = 1000
 
 rssiPwrBuffer = collections.deque(maxlen=numBufferSamps)
 
 timePwrBuffer = collections.deque(maxlen=numBufferSamps)
 
 freqPwrBuffer = collections.deque(maxlen=numBufferSamps)
 
 noisPwrBuffer = collections.deque(maxlen=numBufferSamps)
 
 filename
 LOGGER #. More...
 
 level
 
 format
 
 fig = plt.figure(figsize=(20, 8), dpi=100)
 
 hspace
 
 top
 
 ax1 = fig.add_subplot(4, 1, 1)
 
 label
 
 animated
 
 fontsize
 
 ax2 = fig.add_subplot(4, 1, 2)
 
 ax3 = fig.add_subplot(4, 1, 3)
 
 True
 
 linestyle
 
 ax4 = fig.add_subplot(4, 1, 4)
 
int countMegd = 0
 

Detailed Description

 AGC_SIM_DEMO.py

 Script designed to demonstrate the operation of the AGC State machine.
 This AGC runs on the host machine and therefore it implements a VERY
 coarse version of the AGC (non-real time). That is, only one gain
 adjustment occurs at each buffer read.
 It requires two Iris boards. One TX and one RX. The TX is continuously
 transmitting and we use the digital RSSI measurements obtained from the
 LMS7 in order to adapt the RX amplifiers. As of this moment, there is
 no way of synchronizing a received frame to the reading
 of the RSSI. Therefore, we need to keep the TX continuously
 sending a signal.
 NOTE: Iris boards don't need to be chained

 Basic Operation:
   1) Run SISO_TX.py or another TX script on TX Iris board
   2) Run this script (AGC_SIM_DEMO.py) on the RX Iris board.
      The AGC thread will trigger the AGC "maxNumFrames" number of times
      and will plot the received signal

 Usage example: python3 AGC_SIM_DEMO.py --serial="RF3C000034"

---------------------------------------------------------------------
 Copyright © 2018-2019. Rice University.
 RENEW OPEN SOURCE LICENSE: http://renew-wireless.org/license
 ---------------------------------------------------------------------

Function Documentation

◆ agc_thread()

def AGC_SIM_DEMO.agc_thread ( )
Here is the call graph for this function:

◆ animate()

def AGC_SIM_DEMO.animate (   i)
Here is the call graph for this function:

◆ init()

def AGC_SIM_DEMO.init ( )

Functions #.

◆ main()

def AGC_SIM_DEMO.main ( )

Main #.

Here is the call graph for this function:

◆ rxsamples_app()

def AGC_SIM_DEMO.rxsamples_app (   args,
  srl,
  freq,
  bw,
  rxgain,
  clockRate,
  out 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ agc_fsm

AGC_SIM_DEMO.agc_fsm = None

Global Parameters #.

◆ animated

AGC_SIM_DEMO.animated

◆ ax1

AGC_SIM_DEMO.ax1 = fig.add_subplot(4, 1, 1)

◆ ax2

AGC_SIM_DEMO.ax2 = fig.add_subplot(4, 1, 2)

◆ ax3

AGC_SIM_DEMO.ax3 = fig.add_subplot(4, 1, 3)

◆ ax4

AGC_SIM_DEMO.ax4 = fig.add_subplot(4, 1, 4)

◆ countMegd

int AGC_SIM_DEMO.countMegd = 0

◆ fft_size

int AGC_SIM_DEMO.fft_size = 1024

◆ fig

AGC_SIM_DEMO.fig = plt.figure(figsize=(20, 8), dpi=100)
        Create Plots              #

Figure 1

◆ filename

AGC_SIM_DEMO.filename

LOGGER #.

◆ fontsize

AGC_SIM_DEMO.fontsize

◆ format

AGC_SIM_DEMO.format

◆ freqPwrBuffer

AGC_SIM_DEMO.freqPwrBuffer = collections.deque(maxlen=numBufferSamps)

◆ freqScale

AGC_SIM_DEMO.freqScale = np.arange(-rate // 2, rate // 2, rate // fft_size)

◆ hspace

AGC_SIM_DEMO.hspace

◆ IQmag

AGC_SIM_DEMO.IQmag = None

◆ label

AGC_SIM_DEMO.label

◆ level

AGC_SIM_DEMO.level

◆ linestyle

AGC_SIM_DEMO.linestyle

◆ noisPwrBuffer

AGC_SIM_DEMO.noisPwrBuffer = collections.deque(maxlen=numBufferSamps)

◆ num_samps

int AGC_SIM_DEMO.num_samps = 2**12

◆ numBufferSamps

int AGC_SIM_DEMO.numBufferSamps = 1000

◆ rate

int AGC_SIM_DEMO.rate = 5e6

◆ rssiPwrBuffer

AGC_SIM_DEMO.rssiPwrBuffer = collections.deque(maxlen=numBufferSamps)

◆ rxChan

int AGC_SIM_DEMO.rxChan = 0

◆ rxStream

AGC_SIM_DEMO.rxStream = None

◆ sampsRx

AGC_SIM_DEMO.sampsRx = None

◆ sdr

AGC_SIM_DEMO.sdr = None

◆ threadT

AGC_SIM_DEMO.threadT = None

◆ timePwrBuffer

AGC_SIM_DEMO.timePwrBuffer = collections.deque(maxlen=numBufferSamps)

◆ timeScale

AGC_SIM_DEMO.timeScale = None

◆ top

AGC_SIM_DEMO.top

◆ True

AGC_SIM_DEMO.True