Agora  1.2.0
Agora project
ofdmtxrx.ofdmTxRx Class Reference

Public Member Functions

def __init__ (self)
 
def bpsk_mod (self, val)
 
def qpsk_mod (self, val)
 
def qam16_mod (self, val)
 
def qam64_mod (self, val)
 
def bpsk_dem (self, iq)
 
def qpsk_dem (self, iq)
 
def qam16_dem (self, iq)
 
def qam64_dem (self, iq)
 
def generate_data (self, n_ofdm_syms=100, mod_order=4, cp_length=16, datastream=[])
 
def modulation (self, in_data, mod_order)
 
def demodulation (self, in_data, mod_order)
 
def cfo_correction (self, rxSignal, lts_start, lts_syms_len, fft_offset)
 
def sfo_correction (self, rxSig_freq_eq, pilot_sc, pilots_matrix, n_ofdm_syms)
 
def phase_correction (self, rxSig_freq_eq, pilot_sc, pilots_matrix)
 
def demult (self, csi, data, noise=None, method='zf')
 
def calcBW (self, csi, noise=None, method='zf')
 

Public Attributes

 n_ofdm_syms
 
 mod_order
 
 cp_length
 

Detailed Description

OFDM Library

Constructor & Destructor Documentation

◆ __init__()

def ofdmtxrx.ofdmTxRx.__init__ (   self)

Member Function Documentation

◆ bpsk_dem()

def ofdmtxrx.ofdmTxRx.bpsk_dem (   self,
  iq 
)
BPSK Demodulation
ARGS
    - iq: Complex data symbol
RETURNS:
    - val: Integer value (data symbol) between 0 and 1
Here is the caller graph for this function:

◆ bpsk_mod()

def ofdmtxrx.ofdmTxRx.bpsk_mod (   self,
  val 
)
BPSK Modulation
ARGS
    - val: Integer value (data symbol) between 0 and 1
RETURNS:
    - iq: Complex data symbol
Here is the caller graph for this function:

◆ calcBW()

def ofdmtxrx.ofdmTxRx.calcBW (   self,
  csi,
  noise = None,
  method = 'zf' 
)
Here is the call graph for this function:

◆ cfo_correction()

def ofdmtxrx.ofdmTxRx.cfo_correction (   self,
  rxSignal,
  lts_start,
  lts_syms_len,
  fft_offset 
)
Apply Carrier Frequency Offset
Input:
    rxSignal     - Received IQ Signal
    lts_start    - Sample where LTS begins
    lts_syms_len - Length of LTS Symbol
    fft_offset   - Number of CP samples for FFT
Output:
    coarse_cfo_est - CFO estimate
Here is the call graph for this function:

◆ demodulation()

def ofdmtxrx.ofdmTxRx.demodulation (   self,
  in_data,
  mod_order 
)
Demodulate data stream of n_ofdm_syms number of symbols, according to mod_order.
Here is the call graph for this function:

◆ demult()

def ofdmtxrx.ofdmTxRx.demult (   self,
  csi,
  data,
  noise = None,
  method = 'zf' 
)
csi: Frame, User, Antenna, Subcarrier
data: Frame, Uplink Syms, Antenna, Subcarrier
Here is the call graph for this function:

◆ generate_data()

def ofdmtxrx.ofdmTxRx.generate_data (   self,
  n_ofdm_syms = 100,
  mod_order = 4,
  cp_length = 16,
  datastream = [] 
)
Generate random data stream of n_ofdm_syms number of symbols,
and modulate according to mod_order.
ARGS:
    - n_ofdm_syms: Number of OFDM symbols
    - mod_order: Modulation Order
2 - BPSK
4 - QPSK
16 - 16QAM
64 - 64QAM
    - cp_length: Length of cyclic prefix
RETURNS:
    - signal: Time domain signal after IFFT and added Cyclic Prefix
    - data: Modulated data stream (Constellation)
    - data_i: Random data to be transmitted
    - sc_idx_all: Indexes for both data and pilot subcarriers
Here is the call graph for this function:

◆ modulation()

def ofdmtxrx.ofdmTxRx.modulation (   self,
  in_data,
  mod_order 
)
Demodulate data stream of n_ofdm_syms number of symbols, according to mod_order.
Here is the call graph for this function:

◆ phase_correction()

def ofdmtxrx.ofdmTxRx.phase_correction (   self,
  rxSig_freq_eq,
  pilot_sc,
  pilots_matrix 
)
Apply Phase Correction
Input:
    rxSig_freq_eq - Equalized, time domain received signal
    pilot_sc      - Pilot subcarriers (indexes)
    pilots_matrix - Pilots in matrix form
Output:
    phase_error   - Computed phase error

◆ qam16_dem()

def ofdmtxrx.ofdmTxRx.qam16_dem (   self,
  iq 
)
16QAM Demodulation
ARGS
    - iq: Complex data symbol
RETURNS:
    - val: Integer value (data symbol) between 0 and 15 (i.e., 0:1:15)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ qam16_mod()

def ofdmtxrx.ofdmTxRx.qam16_mod (   self,
  val 
)
16QAM Modulation
ARGS
    - val: Integer value (data symbol) between 0 and 15 (i.e., 0:1:15)
RETURNS:
    - iq: Complex data symbol
Here is the caller graph for this function:

◆ qam64_dem()

def ofdmtxrx.ofdmTxRx.qam64_dem (   self,
  iq 
)
64QAM Demodulation
ARGS
    - iq: Complex data symbol
RETURNS:
    - val: Integer value (data symbol) between 0 and 63 (i.e., 0:1:63)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ qam64_mod()

def ofdmtxrx.ofdmTxRx.qam64_mod (   self,
  val 
)
64QAM Modulation
ARGS
    - val: Integer value (data symbol) between 0 and 63 (i.e., 0:1:63)
RETURNS:
    - iq: Complex data symbol
Here is the caller graph for this function:

◆ qpsk_dem()

def ofdmtxrx.ofdmTxRx.qpsk_dem (   self,
  iq 
)
QPSK Demodulation
ARGS
    - iq: Complex data symbol
RETURNS:
    - val: Integer value (data symbol) between 0 and 3 (i.e., 0:1:3)
Here is the caller graph for this function:

◆ qpsk_mod()

def ofdmtxrx.ofdmTxRx.qpsk_mod (   self,
  val 
)
QPSK Modulation
ARGS
    - val: Integer value (data symbol) between 0 and 3 (i.e., 0:1:3)
RETURNS:
    - iq: Complex data symbol
Here is the caller graph for this function:

◆ sfo_correction()

def ofdmtxrx.ofdmTxRx.sfo_correction (   self,
  rxSig_freq_eq,
  pilot_sc,
  pilots_matrix,
  n_ofdm_syms 
)
Apply Sample Frequency Offset
Input:
    rxSig_freq_eq - Equalized, frequency domain received signal
    pilot_sc      - Pilot subcarriers (indexes)
    pilots_matrix - Pilots in matrix form
    n_ofdm_syms   - Number of OFDM symbols
Output:
    rxSig_freq_eq - Frequency domain signal after SFO correction
Here is the call graph for this function:

Member Data Documentation

◆ cp_length

ofdmtxrx.ofdmTxRx.cp_length

◆ mod_order

ofdmtxrx.ofdmTxRx.mod_order

◆ n_ofdm_syms

ofdmtxrx.ofdmTxRx.n_ofdm_syms

The documentation for this class was generated from the following file: