RENEWLab
1.1.0
RENEW project
|
|
static std::vector< std::complex< float > > | snoopSamples (SoapySDR::Device *dev, size_t channel, size_t readSize) |
|
static void | adjustCalibrationGains (std::vector< SoapySDR::Device * > rxDevs, SoapySDR::Device *txDev, size_t channel, double fftBin) |
|
static void | setIQBalance (SoapySDR::Device *dev, int direction, size_t channel, int gcorr, int iqcorr) |
|
static void | dciqMinimize (SoapySDR::Device *targetDev, SoapySDR::Device *refDev, int direction, size_t channel, double rxCenterTone, double txCenterTone) |
|
◆ adjustCalibrationGains()
static void adjustCalibrationGains |
( |
std::vector< SoapySDR::Device * > |
rxDevs, |
|
|
SoapySDR::Device * |
txDev, |
|
|
size_t |
channel, |
|
|
double |
fftBin |
|
) |
| |
|
static |
◆ dciqMinimize()
static void dciqMinimize |
( |
SoapySDR::Device * |
targetDev, |
|
|
SoapySDR::Device * |
refDev, |
|
|
int |
direction, |
|
|
size_t |
channel, |
|
|
double |
rxCenterTone, |
|
|
double |
txCenterTone |
|
) |
| |
|
static |
◆ setIQBalance()
static void setIQBalance |
( |
SoapySDR::Device * |
dev, |
|
|
int |
direction, |
|
|
size_t |
channel, |
|
|
int |
gcorr, |
|
|
int |
iqcorr |
|
) |
| |
|
static |
◆ snoopSamples()
static std::vector<std::complex<float> > snoopSamples |
( |
SoapySDR::Device * |
dev, |
|
|
size_t |
channel, |
|
|
size_t |
readSize |
|
) |
| |
|
static |
else Do nz_sc(j))' *H_hat(Apply nz_sc(j))') *squeeze(Y_data(end syms_eq(:, nz_sc(j),:)
type
Definition: iris_py.py:333
def siso_tdd_burst(serial1, serial2, rate, freq, txgain, rxgain, numSamps, prefix_pad, postfix_pad)
Functions #.
Definition: SISO_TXRX_TDD.py:74
num fading clusters np
Definition: getRxVec.m:112
bool scatter(const std::vector< NumericX > &x, const std::vector< NumericY > &y, const double s=1.0)
Definition: matplotlibcpp.h:721
bs_sched
Definition: rl_ofdm_siso.m:77
def close(self)
Definition: csi_lib.py:145
def signal_handler(rate, numSyms, use_trig, signal, frame)
Definition: SOUNDER_TXRX.py:387
int pin_thread_to_core(int core_id, pthread_t &thread_to_pin)
Definition: utils.cc:18
else Define an empty phase correction vector(used by plotting code below) pilot_phase_err
size_t reader_thread_num(void) const
Definition: config.h:218
ue_ids
Definition: rl_ofdm_downlink_mmimo.m:85
w
Definition: berr_perfect.m:45
Iris nodes parameters sdr_params
Definition: ofdm_siso.m:165
Number of subcarriers CP_LEN
Definition: rl_ofdm_siso.m:90
timeref
Definition: data_recorder.py:80
def calExpectedCapacity(csi, user=0, max_delay=100, conj=True, downlink=False)
Definition: channel_analysis.py:212
const std::string & beacon_seq(void) const
Definition: config.h:107
prefix_len
Definition: iris_py.py:408
else nsubi
Definition: getRxVec.m:131
Number of OFDM symbols for it needs to be less than MOD_ORDER
Definition: rl_ofdm_mimo.m:95
rx_syms_mat2
Definition: ofdm_plotter.py:62
int syncSearch(std::vector< std::complex< int16_t >> sync_buff, size_t sync_num_samps)
Definition: receiver.cc:762
Interpolate Zero pad then filter(same as interp or upfirdn without signal processing toolbox) tx_vec_air
const std::string & bs_channel(void) const
Definition: config.h:104
Repeat the pilots across all OFDM symbols pilots_mat
Definition: ofdm_simo.m:102
def __init__(self, serial_id=None, tx_freq=None, rx_freq=None, tx_gain=None, rx_gain=None, bw=None, sample_rate=None, n_samp=None, both_channels=False, agc_en=False)
Definition: iris_py.py:83
catch stop
Definition: rl_ofdm_downlink_miso.m:371
nt
Definition: rl_ofdm_simo.m:46
def is_fineTuningNotDone(self)
Definition: agc_fsm_iris.py:239
cal_mat
Definition: rl_ofdm_calib.m:99
Enable Residual CFO estimation correction SAMP_FREQ
Definition: rl_ofdm_mmimo_sim.m:41
static constexpr size_t kQueueSize
Definition: macros.h:20
Definition: csi_lib.py:221
ue_sdr_params
Definition: rl_ofdm_downlink_mmimo.m:172
x
Definition: rl_ofdm_mimo.m:362
def __init__(self, sdr, ch)
Definition: agc_fsm_iris.py:67
def setup_stream_rx(self)
Definition: iris_py_single_frame.py:249
rxBsStream
Definition: csi_lib.py:54
otherwise fprintf('Invalid MOD_ORDER(%d)! Must be in[2, 4, 16, 64]\n', MOD_ORDER)
mod_fcn_16qam
Definition: bits2syms.m:36
bool isDlData(int, int)
Definition: config.cc:896
fst_clr
Definition: rl_ofdm_mimo.m:407
b_scheds
Definition: ofdm_simo.m:58
Define the pilot tone values as BPSK symbols pilots
Definition: siso_ofdm_mf_sim.m:87
const unsigned int kRecvCore
Definition: scheduler.h:56
lts_t
Definition: rl_ofdm_downlink_miso.m:74
static void printVector(std::vector< std::complex< int16_t >> &data)
Definition: utils.cc:222
for isnr
Definition: rl_ofdm_simo.m:153
sec_clr
Definition: ofdm_mimo.m:353
Scale for Tx waveform([0:1]) else nt
for sid
Definition: rl_ofdm_downlink_mmimo.m:216
bool dl_data_slot_present(void) const
Definition: config.h:44
mod_fcn_qpsk
Definition: bits2syms.m:35
bs_sched
Definition: rl_ofdm_simo.m:72
std::vector< moodycamel::ProducerToken * > tx_ptoks_ptr_
Definition: scheduler.h:49
Map the data values on to complex symbols switch MOD_ORDER case BPSK tx_ul_syms
Definition: rl_ofdm_mmimo_sim.m:124
rx_data2
Definition: ofdm_plotter.py:57
UE schedule number of samples in a frame n_samp
Definition: rl_ofdm_mimo.m:215
demod_fcn_qpsk
Definition: rl_ofdm_mmimo_sim.m:75
def close(self)
Definition: csi_lib.py:364
double nco(void) const
Definition: config.h:56
data_len
Definition: rl_ofdm_mimo.m:256
def csi_from_pilots(pilots_dump, z_padding=150, fft_size=64, cp=16, frm_st_idx=0, frame_to_plot=0, ref_ant=0, ref_user=0)
Definition: hdf5_lib.py:30
end offset
Definition: rl_ofdm_downlink_miso.m:309
SampleBuffer * bs_tx_buffer_
Definition: scheduler.h:37
str
Definition: iris_py_single_frame.py:348
h5file
Definition: data_recorder.py:53
id FFT_OFFSET()
Definition: siso_ofdm_mf_sim.m:30
data
Definition: hdf5_lib.py:278
ue_scheds
Definition: ofdm_mimo.m:51
static std::vector< std::complex< float > > correlate_avx(std::vector< std::complex< float >> const &f, std::vector< std::complex< float >> const &g)
serial_id
Definition: iris_py.py:88
demod_fcn_16qam
Definition: rl_ofdm_mmimo_sim.m:76
debug_enabled
Definition: csi_lib.py:47
def init_datasets(self, group=None)
Definition: data_recorder.py:75
static std::vector< float > correlate_avx_s(std::vector< float > const &f, std::vector< float > const &g)
SampleBuffer * cl_tx_buffer_
Definition: receiver.h:97
mod_fcn_16qam, data arrayfun()
nbits
Definition: mod_demod.m:15
size_t buff_size
Definition: macros.h:68
Insert the data and pilot values
Definition: rl_ofdm_mmimo_sim.m:153
Remove the cyclic keeping FFT_OFFSET samples of CP(on average) payload_mat_noCP
modvec_16qam
Definition: berr_perfect.m:10
tx_vec_iris
Definition: rl_ofdm_downlink_miso.m:419
num clusters if length(angcTx)
def find_corr_idx(waveRxA, waveRxB)
Definition: sample_offset_cal.py:269
TX_GN
Definition: rl_ofdm_siso.m:66
@ kEventTxSymbol
Definition: macros.h:38
end Error rates nbits
Definition: berr_perfect.m:72
Number of samples that will go over the air N_ZPAD_PRE
Definition: ofdm_siso.m:75
id FFT_OFFSET()
Definition: siso_ofdm_mf_sim.m:30
rx_freq
Definition: iris_py.m:29
static int find_beacon(const std::vector< std::complex< float >> &iq)
Definition: comms-lib.cc:114
h5struct
Definition: hdf5_lib.py:277
std::vector< std::complex< float > > & pilot_sc(void)
Definition: config.h:195
bs_sched
Definition: rl_ofdm_calib.m:34
Theoretical BER fprintf("Channel type: %s \n", chan_type)
DATA_REP
Definition: rl_ofdm_calib.m:83
Waveform params N_OFDM_SYMS
Definition: rl_ofdm_mmimo_sim.m:20
Doppler shift in Hz
Definition: getRxVec.m:159
Scale for Tx waveform([0:1]) else nt
number of RX antennas dsepTx
Definition: getRxVec.m:76
myAxis
Definition: ofdm_mimo.m:399
Number of data symbols(one per data-bearing subcarrier per OFDM symbol) SYM_LEN
def bpsk_dem(self, iq)
Definition: ofdmtxrx.py:101
max_frames
Definition: iris_py_single_frame.py:84
n_ofdm_syms
Definition: ofdmtxrx.py:25
UL noise matrix H
Definition: rl_ofdm_mmimo_sim.m:186
int radioTx(size_t radio_id, const void *const *buffs, int numSamps, int flags, long long &frameTime)
Definition: ClientRadioSet.cc:351
for iue
Definition: rl_ofdm_mimo.m:313
uint32_t frame_id
Definition: macros.h:53
end end uplink_pilot_rx
Definition: rl_ofdm_downlink_miso.m:343
lts_t
Definition: rl_ofdm_mmimo_sim.m:59
bar(bw_span, fftshift(abs(squeeze(H_hat(ibs, iue, :)))), 1, 'LineWidth', 1)
Generate a payload of random integers tx_data
Definition: ofdm_siso.m:92
Definition: find_lts.py:1
unos
Definition: rl_ofdm_downlink_miso.m:221
sample period of upcoverted signal in ms idlyMax
Definition: getRxVec.m:168
obj
Definition: wrapper.py:23
const std::vector< std::string > & hub_ids(void) const
Definition: config.h:222
Enable Residual CFO estimation correction Define the preamble LTS for fine CFO and channel estimation lts_f
Definition: rl_ofdm_mimo.m:116
Radio(const SoapySDR::Kwargs &args, const char soapyFmt[], const std::vector< size_t > &channels)
Definition: Radio.cc:95
def disp_params(freq, rx_pwr_limit, golden_serial, golden_ant, golden_tx_gain, golden_rx_gain, gain_step, uut_serials, pf_rx, pf_tx, en_logging, detailed_logs, log_name_rx, log_name_tx, test_tx_only, test_rx_only)
Definition: iris_health_monitor.py:274
Definition: agc_fsm_iris.py:27
legend({ 'Rx', 'Tx'}, 'Location', 'EastOutside', 'fontsize', 12)
id a()
Definition: iris_py.m:254
if DO_RECIPROCAL_CALIBRATION tx_ref_hw_phase
Definition: rl_ofdm_mmimo_sim.m:97
Config * cfg_
Definition: recorder_worker.h:30
bs_ids
Definition: rl_ofdm_simo.m:71
ue_sdr_params
Definition: rl_ofdm_siso.m:177
end lts_t
Definition: siso_ofdm_mf_sim.m:110
for jp
Definition: rl_ofdm_calib.m:86
activate correlator end Transmit beamformed signal from all antennas and receive at UEs bad_pilot
Definition: rl_ofdm_downlink_miso.m:429
Pilot subcarrier indices SC_IND_DATA
Definition: ofdm_mimo.m:63
bs_ids
Definition: rl_ofdm_downlink_mmimo.m:34
bh
Definition: rl_ofdm_mimo.m:515
def stageCounter(self)
Definition: agc_fsm_iris.py:262
ue_dl_sched
Definition: rl_ofdm_downlink_miso.m:107
args
Definition: iris_py.py:349
preamble
Definition: rl_ofdm_mimo.m:124
void clientTxRx(int tid)
Definition: receiver.cc:594
if AUTO_OFFSET for ibs
Definition: rl_ofdm_downlink_miso.m:298
int beacon_size(void) const
Definition: config.h:53
def qam64_dem(self, iq)
Definition: ofdmtxrx.py:144
def frame_sanity(match_filt, k_lts, n_lts, st_frame=0, frame_to_plot=0, plt_ant=0, cp=16)
Definition: hdf5_lib.py:641
demod_fcn_64qam
Definition: rl_ofdm_mmimo_sim.m:77
Apply the pilot phase correction per symbol syms_eq_pc
Definition: rl_ofdm_mimo.m:392
Modulation order N
Definition: mod_demod.m:14
normalized correlation position of the last peak[~, max_idx]
Definition: rl_ofdm_downlink_miso.m:231
pilots_f_mat_comp
Definition: rl_ofdm_mimo.m:380
trig_dev
Definition: csi_lib.py:40
node_bs sdr_setupbeacon_single()
demod_fcn_64qam
Definition: demod_sym.m:19
def calDemmel(userCSI)
Definition: channel_analysis.py:47
SampleBuffer * cl_tx_buffer_
Definition: scheduler.h:39
mod_fcn_bpsk
Definition: bits2syms.m:34
demod_fcn_16qam
Definition: berr_perfect.m:54
bh
Definition: ofdm_mimo.m:459
oversampling ratio tx_var
Definition: getRxVec.m:80
void reset_DATA_clk_domain(void)
Definition: Radio.cc:180
Number of CP samples to use in FFT(on average) RECIP_PLOT
def tx_thread(sdr, rate, txStream, rxStream, waveTx, numSamps, numSyms, txSymNum, startSymbol)
Functions #.
Definition: SOUNDER_TXRX.py:125
bool plot(const std::vector< Numeric > &x, const std::vector< Numeric > &y, const std::map< std::string, std::string > &keywords)
Definition: matplotlibcpp.h:388
Pilot subcarrier indices SC_IND_DATA
Definition: rl_ofdm_mmimo_sim.m:26
id N_UE()
Definition: ofdm_mimo.m:39
std::vector< void * > zeros
Definition: receiver.h:101
def start(self)
Definition: wrapper.py:25
Definition: signalHandler.hpp:13
Sounder project version configuration file.
static std::vector< std::complex< float > > auto_corr_mult_avx(std::vector< std::complex< float >> const &f, const int dly, const bool conj=true)
std::mutex sync_
Definition: recorder_thread.h:64
def plot_data(pilot, rxdata, channelnum, framelen=512, framenum=100, pilotsymnum=1, uplinksymnum=0)
Definition: plt_simp.py:38
elseif(obj.n_sdrs > 1) &&length(lts_corr_frm) >
read data node_ue sdr_gettriggers()
Scale for Tx waveform([0:1]) % OFDM params SC_IND_PILOTS
USE_HUB
Definition: rl_ofdm_mimo.m:56
rx_fft
Definition: rl_ofdm_calib.m:97
std::vector< void * > pilotbuffA
Definition: receiver.h:99
end for sid
Definition: rl_ofdm_downlink_miso.m:259
static std::vector< uint32_t > cint16_to_uint32(const std::vector< std::complex< int16_t >> &in, bool conj, const std::string &order)
Definition: utils.cc:103
lts
Definition: rl_ofdm_calib.m:81
hold on
Definition: siso_ofdm_mf_sim.m:260
Author(s)[version, executable, isloaded]
Definition: rl_ofdm_mimo.m:32
Calculate the noise variance SIM_snr
Definition: siso_ofdm_mf_sim.m:119
Cyclic prefix length N_SYM_SAMP
Definition: rl_ofdm_downlink_mmimo.m:46
if mod(nbits, sym_bits) ~=0error("Length of bit stream has to be divisible by sym_bits")
DEBUG
Definition: rl_ofdm_mimo.m:43
int tx_advance(size_t id) const
Definition: config.h:96
n_samp
Definition: rl_ofdm_siso.m:162
size_t getPacketDataLength() const
Definition: config.h:258
n_zpad_samp
Definition: iris_py.m:35
id N_ZPAD_POST()
Definition: rl_ofdm_calib.m:123
bit_errs
Definition: berr_perfect.m:73
set trigger to start the frame Iris Rx Only UL data
Definition: getRxVec.m:239
const std::vector< std::vector< size_t > > & cl_dl_slots(void) const
Definition: config.h:153
bs_dl_sched_beacon
Definition: rl_ofdm_downlink_miso.m:105
Number of OFDM symbols for it needs to be less than MOD_ORDER
Definition: rl_ofdm_simo.m:84
else node_bs
Definition: getRxVec.m:201
def agc_init(sdr, rssi_target_idx, agc_en)
Definition: init_fncs.py:17
b_scheds
Definition: ofdm_mimo.m:49
def txrx_app(args, rate, ampl, ant, txgain, rxgain, freq, bbfreq, serialTx, serialRx, ofdm_params, num_samps_rd, ota, ofdm_obj, agc_en)
Definition: SISO_OFDM.py:422
void deactivateXmit(void)
Definition: Radio.cc:174
ue_sdr_params txgain
Definition: rl_ofdm_simo.m:176
function data
Definition: demod_sym.m:1
else Do yourselves
Definition: ofdm_mimo.m:310
def config_beacon(self, prefix_len=0)
Definition: iris_py.py:295
Cyclic prefix length N_DATA_SYMS
Definition: ofdm_siso.m:72
std::vector< void * > pilotbuffB
Definition: receiver.h:100
Definition: bandpower.py:1
bs_ids
Definition: rl_ofdm_calib.m:33
Logging macros that can be optimized out by the compiler.
Data subcarrier indices N_SC
Definition: siso_ofdm_mf_sim.m:24
Burn beacon to the BS(1) RAM node_ue1.sdrtx(tx_data(Burn data to the UE RAM if n_ue node_ue2 sdrtx(tx_data(:, 2))
lts_t
Definition: rl_ofdm_downlink_mmimo.m:66
repmat(lts_t, N_LTS_SYM, 1)]
Define the pilot tone values as BPSK symbols pt_pilots
Definition: rl_ofdm_mmimo_sim.m:140
const std::vector< double > & rx_gain(void) const
Definition: config.h:233
N_UE_NODE
Definition: rl_ofdm_downlink_miso.m:110
rx_vec_iris
Definition: rl_ofdm_simo.m:179
bool getRadioNotFound()
Definition: BaseRadioSet.h:30
Scheduler * Scheduler_new(Config *in_cfg)
Definition: scheduler.cc:310
SoapySDR::Stream * txs
Definition: Radio.h:16
Time Domain Do yourselves
Definition: rl_ofdm_siso.m:127
std::vector< Sounder::RecorderThread * > recorders_
Definition: scheduler.h:43
static void * clientTxRx_launch(void *in_context)
Definition: receiver.cc:580
start_index
Definition: rl_ofdm_calib.m:150
tdd_sched
Definition: iris_py.m:34
Number of N_SYM_SAMP
Definition: rl_ofdm_siso.m:93
void HandleEvent(Event_data event)
Definition: recorder_thread.cc:134
activate correlator node_bs sdrtrigger(trig)
void setTargetPrimaryDimSize(hsize_t dim_size)
Definition: hdf5_lib.h:40
ue_sched
Definition: ofdm_simo.m:154
def calContCapacity(csi, conj=True, downlink=False, offset=1)
Definition: channel_analysis.py:128
Number of CP samples to use in FFT(on average) %% Define the preamble % LTS for fine CFO and channel estimation lts_f
power of each path in linear scale ip
Definition: getRxVec.m:120
pilot_data_start
Definition: rl_ofdm_downlink_miso.m:119
txBsStream
Definition: csi_lib.py:55
def demult(csi, data, method='zf')
Definition: channel_analysis.py:362
N_SC
Definition: rl_ofdm_downlink_miso.m:50
Number of OFDM symbols for it needs to be less than Rx processing params FFT_OFFSET
Definition: rl_ofdm_calib.m:50
end Generate complex gains and Doppler shifts gain
Definition: getRxVec.m:158
end methods function obj
Definition: iris_py.m:41
void record(int tid, Packet *pkt)
Definition: recorder_worker.cc:282
int recv(void *const *buffs, int samples, long long &frameTime)
Definition: Radio.cc:120
moodycamel::ConcurrentQueue< Event_data > event_queue_
Definition: recorder_thread.h:45
Tx
Definition: siso_ofdm_mf_sim.m:284
Reshape the symbol vector to a matrix with one column per OFDM symbol tx_syms_mat
Definition: ofdm_mimo.m:98
Number of OFDM symbols for it needs to be less than MOD_ORDER
Definition: ofdm_simo.m:65
trig_dev
Definition: csi_lib.py:227
Modulation order(2/4/16/64=BSPK/QPSK/16-QAM/64-QAM) TX_SCALE
normalized correlation position of the last peak[~, max_idx]
Definition: rl_ofdm_downlink_mmimo.m:208
ifft_in_mat
Definition: siso_ofdm_mf_sim.m:101
h_dl_calib
Definition: rl_ofdm_mmimo_sim.m:111
Number of N_SYM_SAMP
Definition: rl_ofdm_simo.m:94
tdd_sched_index
Definition: getRxVec.m:212
bool stem(const std::vector< Numeric > &x, const std::vector< Numeric > &y, const std::map< std::string, std::string > &keywords)
Definition: matplotlibcpp.h:516
tx_syms
Definition: rl_ofdm_mimo.m:132
Leftover from zero padding
Definition: rl_ofdm_simo.m:149
for rp
Definition: rl_ofdm_calib.m:88
for ibs
Definition: rl_ofdm_mimo.m:262
def test_a_tx_rx_pair(sdr_tx, sdr_rx, tx_gain, rx_gain, freq, tx_ant, samp_rate=5e6, fft_size=1024, rx_num_samps=1024, wait_trigger=False, tx_amp=1, bb_freq=0, wave_freq=None, tx_num_samps=2 **10, lo_tone=False)
Definition: iris_health_monitor.py:573
end Take N_SC spamples from each LTS rx_lts_idx
Definition: rl_ofdm_mimo.m:319
demmel_text
Definition: ofdm_plotter.py:280
chan_est2
Definition: ofdm_plotter.py:58
int getUlSlotIndex(int, int)
Definition: config.cc:854
sample_rate
Definition: iris_py.py:92
def waitTimeout(self)
Definition: agc_fsm_iris.py:267
if pilotEnd length(rx_vec_pilot) display('Bad Uplink Pilot(RX)')
def is_saturationDetected(self)
Definition: agc_fsm_iris.py:244
Number of OFDM symbols for burst
Definition: rl_ofdm_calib.m:47
max_frames
Definition: iris_py.m:62
int xmit(const void *const *buffs, int samples, int flags, long long &frameTime)
Definition: Radio.cc:153
demmel
Definition: ofdm_plotter.py:54
just to agree with what the hardware spits out Init Iris nodes Set up the Iris experimenty else Create BS Hub and UE objects Note
Definition: rl_ofdm_mimo.m:210
else Iris params
Definition: rl_ofdm_mimo.m:54
aevms
Definition: ofdm_mimo.m:470
size_t fft_size(void) const
Definition: config.h:75
Number of subcarriers CP_LEN
Definition: rl_ofdm_downlink_miso.m:51
bs_sched
Definition: rl_ofdm_downlink_miso.m:40
hub_id
Definition: rl_ofdm_simo.m:200
mod_order
Definition: ofdmtxrx.py:26
int Rate
Definition: SISO_RX.py:87
def __init__(self, val)
Definition: wrapper.py:7
def process_rx_log(log_name_rx, rx_thresh)
Definition: iris_health_monitor.py:307
rx_gain
Definition: iris_py.m:32
bool satDetectedFlag
Definition: agc_fsm_iris.py:47
MOD_ORDER
Definition: rl_ofdm_downlink_mmimo.m:54
Number of CP samples to use in FFT(on average) LTS_CORR_THRESH=0.6
def collectCSI(self)
Definition: csi_lib.py:158
rx_fft_ref
Definition: rl_ofdm_calib.m:98
bsRxSamps
Definition: csi_lib.py:49
demod_fcn_64qam
Definition: berr_perfect.m:55
modvec_16qam
Definition: mod_sym.m:19
hsize_t getTargetPrimaryDimSize()
Definition: hdf5_lib.h:43
otherwise fprintf('Invalid MOD_ORDER(%d)! Must be in[2, 4, 16, 64]\n', MOD_ORDER)
data_len
Definition: rl_ofdm_downlink_mmimo.m:128
first
Definition: rl_ofdm_downlink_miso.m:244
Number of CP samples to use in FFT(on average) DO_APPLY_PHASE_ERR_CORRECTION
Average power on each SC sim_N0
Definition: siso_ofdm_mf_sim.m:121
imagesc(1:N_OFDM_SYM,(SC_IND_DATA - N_SC/2), 100 *fftshift(reshape(evm_mat(:, sp), [], N_OFDM_SYM), 1))
time domain lts
Definition: rl_ofdm_downlink_mmimo.m:67
excess delay of first path in cluster nsec dlyspdns
Definition: getRxVec.m:69
end ber_SIM
Definition: rl_ofdm_siso.m:57
end sp_cols
Definition: ofdm_mimo.m:416
end DO_APPLY_PHASE_ERR_CORRECTION
Definition: rl_ofdm_mimo.m:375
figure
Definition: rl_ofdm_downlink_miso.m:300
def qam64_mod(self, val)
Definition: ofdmtxrx.py:83
Parameters to feed python(pun very intended!) serial_ids
num_ants
Definition: csi_lib.py:44
def config_sdr_tdd_chained(self, tdd_sched=None)
Definition: iris_py_single_frame.py:182
double bw_filter(void) const
Definition: config.h:54
def recv_stream_tdd(self)
Definition: iris_py_single_frame.py:291
RX_GN
Definition: rl_ofdm_siso.m:67
filename
Definition: hdf5_lib.py:275
a
Definition: iris_py.m:254
sdr_ant
Definition: csi_lib.py:228
Cyclic prefix length N_DATA_SYMS
Definition: siso_ofdm_mf_sim.m:26
lts_corr
Definition: ofdm_mimo.m:207
Normalized threshold for LTS correlation DO_APPLY_PHASE_ERR_CORRECTION
Definition: ofdm_simo.m:82
Equalize with *known * channel
Definition: berr_perfect.m:49
rf_roundtrip
Definition: csi_lib.py:35
void Start(void)
Definition: hdf5_reader.cc:39
char * storepath
Definition: config.cc:914
def collect_calib_pilots(self)
Definition: csi_lib.py:250
def _plot(x, mph, mpd, threshold, edge, valley, ax, ind)
Definition: detect_peaks.py:157
Channel to tune Tx and Rx radios SIM_snr_db
Definition: siso_ofdm_mf_sim.m:14
pl_idx
Definition: rl_ofdm_mimo.m:288
def print_sensor(irises, *args)
Definition: print_sensor.py:14
size_t dl_slot_per_frame(void) const
Definition: config.h:89
const std::vector< std::vector< size_t > > & cl_ul_slots(void) const
Definition: config.h:150
Rx processing params FFT_OFFSET
Definition: rl_ofdm_mmimo_sim.m:35
end end n_samp
Definition: rl_ofdm_calib.m:95
def main()
Main #.
Definition: SISO_TXRX_TDD.py:225
~SignalHandler()
Definition: signalHandler.cpp:18
Definition: wrapper.py:12
agc_en
Definition: iris_py_single_frame.py:81
end ber_SIM
Definition: ofdm_simo.m:43
SDR Class: #######.
Definition: iris_py.py:78
data
Definition: bits2syms.m:26
FIG_LEN
Definition: ofdm_plotter.py:33
nt
Definition: ofdm_simo.m:30
Definition: fft_power.py:1
lts_corr
Definition: rl_ofdm_downlink_mmimo.m:205
samples
Definition: data_recorder.py:78
bs_sched_id
Definition: rl_ofdm_downlink_mmimo.m:237
float gainPGA
Definition: agc_fsm_iris.py:57
size_t num_antennas(void)
Definition: recorder_worker.h:26
end axis square
Definition: bits2syms.m:67
def demodulation(self, in_data, mod_order)
Definition: ofdmtxrx.py:242
pilot
Definition: csi_lib.py:224
Number of UE nodes end fprintf("Channel type: %s \n", chan_type)
Pilot subcarrier indices SC_IND_DATA
Definition: siso_ofdm_mf_sim.m:23
for ibs
Definition: rl_ofdm_downlink_mmimo.m:201
AUTO_OFFSET
Definition: rl_ofdm_downlink_miso.m:66
H_var
Definition: rl_ofdm_mmimo_sim.m:51
recip_bs_fft_mat
Definition: rl_ofdm_downlink_miso.m:252
void notifyPacket(NodeType node_type, int frame_id, int slot_id, int ant_id, int buff_size, int offset=0)
Definition: receiver.cc:279
def find_zc_pilot(iq, thresh=0.8, us=1, seq_length=512, cp=32, pilot_seq=[])
Definition: find_lts.py:20
simulation data SC SNR Waveform params N_OFDM_SYMS
Definition: siso_ofdm_mf_sim.m:17
bool DispatchWork(Event_data event)
Definition: recorder_thread.cc:65
Definition: ofdm_plotter.py:25
Reshape to a vector tx_payload_vec
Definition: siso_ofdm_mf_sim.m:113
corr2
Definition: ofdm_plotter.py:63
def init_h5file(self, filename=None, init_datasets=True)
Definition: data_recorder.py:39
Waveform params N_OFDM_SYM
Definition: ofdm_mimo.m:57
std::atomic_int * pkt_buf_inuse
Definition: macros.h:49
std::vector< std::vector< std::complex< int16_t > > > & txdata_time_dom(void)
Definition: config.h:240
Time Domain Do yourselves
Definition: ofdm_siso.m:108
bit_errs
Definition: ofdm_mimo.m:468
max_frames
Definition: iris_py.py:99
Estimate the channel by averaging over the two LTS Calculate Condition Number validIdx
Definition: rl_ofdm_mimo.m:339
mod_fcn_bpsk
Definition: rl_ofdm_mmimo_sim.m:69
sim_SNR_db
Definition: rl_ofdm_simo.m:47
sampsRx
Definition: csi_lib.py:237
return
Definition: berr_perfect.m:30
size_t num_bs_sdrs_all(void) const
Definition: config.h:28
int ant_id
Definition: macros.h:67
Insert the data and pilot values
Definition: ofdm_siso.m:110
def is_finalStage(self)
Definition: agc_fsm_iris.py:274
end data_frame
Definition: iris_py.m:287
Channel to tune Tx and Rx radios SIM_MOD
Definition: ofdm_simo.m:25
im
Definition: iris_py.m:127
initialize BS end node_ue
Definition: getRxVec.m:203
number of subpaths per cluster fmaxHz
Definition: getRxVec.m:57
sec_clr
Definition: rl_ofdm_mimo.m:408
size_t max_frame_number_
Definition: recorder_worker.h:35
fprintf("Symbol Error Rate = %12.4e\t Bit Error Rate = %12.4e\n", sym_err, bit_err)
Definition: iris_py.m:110
def activate_stream_rx(self, flags=0)
Definition: iris_py_single_frame.py:254
data_len
Definition: ofdm_mimo.m:208
IFFT Construct the IFFT input matrix ifft_in_mat_pl
Definition: siso_ofdm_mf_sim.m:95
initialize BS node_ue
Definition: rl_ofdm_downlink_mmimo.m:178
Demodulate rx_data
Definition: rl_ofdm_mimo.m:403
fig
Definition: ofdm_plotter.py:72
float gainLNA
Definition: agc_fsm_iris.py:55
format
Definition: AGC_SIM_DEMO.py:87
Definition: recorder_thread.h:18
line([-1.5, 1.5], [0 0], 'LineStyle', '-', 'Color', ln_clr, 'LineWidth', 1)
Perform the IFFT tx_payload_mat
Definition: siso_ofdm_mf_sim.m:103
clf
Definition: mod_demod.m:29
Author(s) close all
Definition: ofdm_siso.m:3
void grid(bool flag)
Definition: matplotlibcpp.h:1550
rx_vec_iris
Definition: ofdm_siso.m:140
evm_text
Definition: ofdm_plotter.py:388
otherwise fprintf('Invalid MOD_ORDER(%d)! Must be in[2, 4, 16, 64]\n', MOD_ORDER)
hold off
Definition: ofdm_mimo.m:512
Definition: ofdmtxrx.py:19
rx_data_start
Definition: rl_ofdm_downlink_mmimo.m:209
end function sdr_close(obj) for ipy
Take FFT
Definition: rl_ofdm_mimo.m:327
N_0
Definition: rl_ofdm_mmimo_sim.m:50
def sdr_gettriggers(self)
Definition: iris_py.py:172
rx_lts_f
Definition: siso_ofdm_mf_sim.m:183
Number of subcarriers CP_LEN
Definition: ofdm_mimo.m:66
both_channels
Definition: iris_py.py:98
def analyze_hdf5(hdf5, frame_i=10, cell_i=0, subcarrier_i=7, offset=-1, zoom=0, pl=0)
Definition: plot_hdf5.py:628
def sync_delays(self)
Definition: iris_py.py:241
normalized correlation[~, max_idx]
Definition: rl_ofdm_downlink_miso.m:316
def cleanup(sdrs, frame_len, m_rxStream, s_rxStream)
Definition: sample_offset_cal.py:343
N_UE
Definition: rl_ofdm_simo.m:210
RX_FRQ
Definition: rl_ofdm_downlink_miso.m:34
Enable Residual CFO estimation correction Define the preamble LTS for fine CFO and channel estimation lts_f
Definition: ofdm_mimo.m:79
def sync_delays(self, is_bs=True)
Definition: iris_py_single_frame.py:240
def signal_handler(signal, frame)
Definition: SISO_TX.py:194
def preamble_generator(N, index=0, CP=0, bpsk=0, shift=0, upsample=1)
Definition: generate_sequence.py:226
Cyclic prefix length N_DATA_SYMS
Definition: rl_ofdm_siso.m:91
beacon_weights
Definition: csi_lib.py:31
size_t beacon_radio(void) const
Definition: config.h:73
txStream
Definition: csi_lib.py:234
N_FRM
Definition: ofdm_siso.m:55
grid on
Definition: rl_ofdm_mimo.m:299
hub
Definition: iris_py.py:373
delay spread within cluster in nsec powcdB
Definition: getRxVec.m:70
ue_pilot_len
Definition: rl_ofdm_downlink_mmimo.m:141
tx_syms
Definition: ofdm_mimo.m:95
Take the FFT syms_f_mat_sc
Definition: siso_ofdm_mf_sim.m:180
id FFT_OFFSET()
Definition: siso_ofdm_mf_sim.m:30
~Receiver()
Definition: receiver.cc:79
set(bh, 'FaceColor', cond_clr)
Number of N_SYM_SAMP
Definition: rl_ofdm_mimo.m:106
coeffs
Definition: csi_lib.py:30
l_rx_dec
Definition: ofdm_simo.m:194
payload_mat
Definition: siso_ofdm_mf_sim.m:173
def is_AGCenabled(self)
Definition: agc_fsm_iris.py:135
reciprocity calibration tx pilots N_BS
Definition: rl_ofdm_downlink_mmimo.m:126
N_UE
Definition: rl_ofdm_siso.m:63
n_ant
Definition: mod_demod.m:17
void closeDataset()
Definition: hdf5_lib.cc:130
elseif choose_best_frame
Definition: iris_py.m:211
Reshape the symbol vector to a matrix with one column per OFDM symbol tx_syms_mat
Definition: rl_ofdm_siso.m:116
set trigger to start the frame Iris Rx Only UL data0_len
Definition: getRxVec.m:239
lna
Definition: data_recorder.py:30
bool running_
Definition: recorder_thread.h:66
end Take N_SC spamples from each LTS rx_lts_idx
Definition: ofdm_mimo.m:271
end end recip_rx
Definition: rl_ofdm_downlink_mmimo.m:151
ue_pilot_len
Definition: rl_ofdm_downlink_miso.m:167
fontsize
Definition: AGC_SIM_DEMO.py:106
ue_ids
Definition: rl_ofdm_downlink_miso.m:94
uint32_t cell_id
Definition: macros.h:55
std::vector< pthread_t > startRecvThreads(SampleBuffer *rx_buffer, size_t n_rx_threads, SampleBuffer *tx_buffer, unsigned in_core_id=0)
Definition: receiver.cc:151
def activate_stream_rx(self, flags=0)
Definition: iris_py.py:250
grid on
Definition: ofdm_mimo.m:251
def burn_beacon(self)
Definition: iris_py.py:255
Number of subcarriers CP_LEN
Definition: rl_ofdm_downlink_mmimo.m:45
end sp_cols
Definition: rl_ofdm_mimo.m:472
Define the pilot tone values as BPSK symbols pilots
Definition: rl_ofdm_simo.m:117
snr_mat
Definition: ofdm_mimo.m:471
void legend()
Definition: matplotlibcpp.h:1261
Burn data to the UE RAM end node_bs sdr_activate_rx()
legend(hlegs, 'Tx', 'Rx', 'Fontsize', 16)
rx_fft_ref
Definition: rl_ofdm_downlink_miso.m:242
FFT_OFFSET
Definition: rl_ofdm_downlink_miso.m:68
beacon_node
Definition: rl_ofdm_downlink_miso.m:96
Waveform params N_OFDM_SYM
Definition: ofdm_siso.m:64
void deactivateRecv(void)
Definition: Radio.cc:151
Channel to tune Tx and Rx radios SIM_MOD
Definition: ofdm_siso.m:27
size_t beacon_ant(void) const
Definition: config.h:72
rate
Definition: csi_lib.py:34
Add noise ny
Definition: getRxVec.m:191
ue_sched_id
Definition: rl_ofdm_downlink_mmimo.m:241
lts_peaks
Definition: ofdm_mimo.m:212
Author(s)[version, executable, isloaded]
Definition: ofdm_mimo.m:17
H5std_string hdf5_name_
Definition: recorder_worker.h:31
else hub_id
Definition: rl_ofdm_downlink_miso.m:89
Define the pilot tone values as BPSK symbols pilots
Definition: rl_ofdm_siso.m:119
if ~isloaded pyversion usr bin python py print() %weird bug where py isn 't loaded in an external script end % Params Enable writing plots to PNG Iris params
Definition: rl_ofdm_calib.m:19
def calCond(userCSI)
Definition: channel_analysis.py:28
preamble
Definition: rl_ofdm_calib.m:85
uplink_pilot_tx
Definition: rl_ofdm_downlink_miso.m:168
def init_tx_signal(self, fig_len_)
Definition: ofdm_plotter.py:235
bit_errs
Definition: rl_ofdm_mimo.m:525
Theoretical BER fprintf("Channel type: %s \n", chan_type)
end Reshape to a vector tx_payload_vecs
Definition: rl_ofdm_mimo.m:162
Theoretical BER fprintf("Channel type: %s \n", chan_type)
while bad_pilot rx_vec_dl
Definition: rl_ofdm_downlink_miso.m:433
n_zpad_samp
Definition: iris_py.py:113
size_t num_antennas_
Definition: recorder_worker.h:38
N_BS_ANT
Definition: rl_ofdm_mmimo_sim.m:48
Generate mMIMO tranceivers random phase vector[-pi, pi] if DO_APPLY_HW_IMPERFECTION rng('shuffle')
payload_noCP
Definition: ofdm_mimo.m:292
modvec_64qam
Definition: bits2syms.m:32
BS schedule ue_sched
Definition: rl_ofdm_mimo.m:211
sample period in ms nt
Definition: getRxVec.m:163
def full_reset(self)
Definition: agc_fsm_iris.py:283
id a()
Definition: iris_py.m:254
def main()
Main #.
Definition: SISO_OFDM.py:562
hleg2
Definition: mod_demod.m:58
rxClStream
Definition: csi_lib.py:53
std::vector< moodycamel::ProducerToken * > cl_tx_ptoks_
Definition: receiver.h:94
Spatial Channel Matrix rx_vec_air
Definition: rl_ofdm_mmimo_sim.m:188
serial
Definition: data_recorder.py:27
Take FFT
Definition: ofdm_mimo.m:279
def setup_stream_rx(self)
Definition: iris_py.py:246
def gen_lts(seq_length=128, cp=0, upsample=1)
Definition: iris_py.py:42
b_scheds
Definition: ofdm_siso.m:58
rx_vec_iris
Definition: rl_ofdm_siso.m:182
def cfo_correction(self, rxSignal, lts_start, lts_syms_len, fft_offset)
Definition: ofdmtxrx.py:262
x
Definition: ofdm_mimo.m:306
REF_ANT
Definition: rl_ofdm_calib.m:77
def main()
Definition: fft_power.py:117
#define MLPD_SYMBOL(...)
Definition: logger.h:87
bool cl_agc_en(void) const
Definition: config.h:59
rx_clr
Definition: mod_demod.m:51
void clientSyncTxRx(int tid, int core_id, SampleBuffer *rx_buffer)
Definition: receiver.cc:780
def compute_legacy(hdf5)
Definition: plot_hdf5.py:761
Demodulate demod_fcn_bpsk
Definition: berr_perfect.m:52
N_SC
Definition: ofdm_mimo.m:65
bool bar(const std::vector< Numeric > &y, std::string ec="black", std::string ls="-", double lw=1.0, const std::map< std::string, std::string > &keywords={})
Definition: matplotlibcpp.h:747
function Inc Distributed under the WARP License Rice University RENEW OPEN SOURCE LICENSE
Definition: mod_sym.m:18
int pin_to_core(int core_id)
Definition: utils.cc:13
time domain preamble
Definition: ofdm_simo.m:89
SoapySDR::Device * dev
Definition: Radio.h:14
recorder
Definition: SISO_RX.py:85
SignalHandler()
Definition: signalHandler.cpp:13
def iris_health_monitor(en_logging, freq, uut_serials, golden_serial, gain_step, golden_tx_gain, golden_ant, golden_rx_gain, rx_pwr_limit, rm_from_uut_serials, detailed_logs, sdr_log_level, test_tx_only, test_rx_only)
Definition: iris_health_monitor.py:895
if SIM_MOD chan_type
Definition: ofdm_simo.m:29
Number of OFDM symbols for it needs to be less than MOD_ORDER
Definition: rl_ofdm_siso.m:84
size_t num_cells(void) const
Definition: config.h:47
longitude
Definition: data_recorder.py:36
def main()
Definition: NB_CAL_DEMO.py:240
n_chain
Definition: iris_py.m:25
mod_fcn_16qam
Definition: rl_ofdm_mmimo_sim.m:71
tx_vec
Definition: ofdm_simo.m:128
v1
Definition: rl_ofdm_downlink_mmimo.m:204
pilot_samples
Definition: hdf5_lib.py:280
void do_it()
Definition: scheduler.cc:122
n_samp
Definition: getRxVec.m:195
Iris params
Definition: ofdm_simo.m:48
tx_data2
Definition: ofdm_plotter.py:56
Number of subcarriers CP_LEN
Definition: ofdm_simo.m:72
if ~isloaded pyversion usr bin python py print() %weird bug where py isn 't loaded in an external script end % Params Enable writing plots to PNG Iris params
Definition: rl_ofdm_downlink_mmimo.m:19
ue_sdr_params tdd_sched
Definition: rl_ofdm_mimo.m:238
configure the N_ZPAD_PRE recip_postfix_len
Definition: rl_ofdm_downlink_miso.m:214
noise_samples
Definition: hdf5_lib.py:283
lna1
Definition: data_recorder.py:31
demod_fcn_qpsk
Definition: berr_perfect.m:53
bad_cnt_max
Definition: rl_ofdm_downlink_miso.m:431
void activateXmit(void)
Definition: Radio.cc:166
WRITE_PNG_FILES
Definition: rl_ofdm_mimo.m:41
num input time samples after upconverting Compute size of y based on maximum path delay ts1
Definition: getRxVec.m:167
const std::vector< size_t > & n_bs_sdrs_agg(void) const
Definition: config.h:114
BER berr_th
Definition: ofdm_siso.m:44
RX_FRQ
Definition: rl_ofdm_downlink_mmimo.m:29
sim_SNR_db
Definition: ofdm_simo.m:31
tx_vec_air
Definition: rl_ofdm_mmimo_sim.m:179
def siso_sounder(hub, serial1, serial2, rate, freq, txgain, rxgain, numSamps, numSyms, txSymNum, threshold, tx_advance, prefix_length, postfix_length, both_channels, wait_trigger, calibrate, record, use_trig, tx_power_loop, agc_en)
Definition: SOUNDER_TXRX.py:202
lts_corr
Definition: rl_ofdm_downlink_miso.m:228
reciprocity calibration tx pilots N_BS
Definition: rl_ofdm_downlink_miso.m:152
bits
Definition: syms2bits.m:61
ul_rx_hw_phase
Definition: rl_ofdm_mmimo_sim.m:85
initialize UE node_ue sdr_configgainctrl()
pl_idx
Definition: ofdm_mimo.m:240
Trigger time offset toleration between Tx and Rx that can be accomodated N_BEGIN_ZERO_PAD
Definition: rl_ofdm_mmimo_sim.m:43
def signal_handler(signum, frame)
Definition: WB_CAL_DEMO.py:50
if ~isloaded pyversion usr bin python py print() %weird bug where py isn 't loaded in an external script end % Params Enable writing plots to PNG SIM_MOD
Definition: rl_ofdm_simo.m:41
std::condition_variable condition_
Definition: recorder_thread.h:65
bool running(void) const
Definition: config.h:100
Number of subcarriers CP_LEN
Definition: rl_ofdm_mimo.m:103
int rate
Definition: AGC_SIM_DEMO.py:71
nsnr
Definition: rl_ofdm_simo.m:48
def animate(i, num_samps_rd, rxStream, sdr, sdrTx, ofdm_params, tx_struct, ota, ofdm_obj, agc_en, infoTx)
Definition: SISO_OFDM.py:216
activate reading stream[rx_vec_iris, ~]
Definition: rl_ofdm_downlink_mmimo.m:197
const char * Scheduler_getTraceFileName(Scheduler *rec)
Definition: scheduler.cc:319
size_t packet_data_length_
Definition: recorder_thread.h:51
@ kThreadTermination
Definition: macros.h:41
int maxGain
Definition: agc_fsm_iris.py:35
Waveform params TX_SCALE
Definition: rl_ofdm_downlink_miso.m:44
demod_fcn_16qam, syms_eq arrayfun()
for nid
Definition: rl_ofdm_downlink_miso.m:158
bw_span
Definition: rl_ofdm_mimo.m:498
obj n_frame
Definition: iris_py.m:61
function y
Definition: getRxVec.m:1
def unset_corr(self)
Definition: iris_py.py:178
initialize UE if n_ue node_ue2
Definition: getRxVec.m:199
pilot_phase_corr
Definition: rl_ofdm_mimo.m:389
rx_H_est
Definition: siso_ofdm_mf_sim.m:186
def ani_init(self)
Definition: ofdm_plotter.py:84
def pilot_finder(samples, pilot_type, flip=False, pilot_seq=[], seq_length=64, cp=0)
Definition: plot_hdf5.py:917
example_mode_string
Definition: siso_ofdm_mf_sim.m:45
def is_satDetGood(self)
Definition: agc_fsm_iris.py:258
h
Definition: rl_ofdm_mimo.m:551
title(sprintf('UE %d Tx Waveform(I)', sp))
Insert the data and pilot values
Definition: rl_ofdm_mimo.m:148
RX_GN
Definition: ofdm_siso.m:53
BER berr_th
Definition: ofdm_simo.m:44
Location
Definition: siso_ofdm_mf_sim.m:284
Definition: receiver.h:41
pream_ind_ibs
Definition: rl_ofdm_mimo.m:287
for ibs
Definition: ofdm_mimo.m:214
size_t ul_data_frame_num(void) const
Definition: config.h:64
def read_from_file(name, leng, offset, num_bits=12)
Definition: file_rdwr.py:26
WIRED_UE
Definition: rl_ofdm_downlink_miso.m:32
payload_ind
Definition: ofdm_mimo.m:210
Estimate the channel by averaging over the two LTS symbols
Definition: ofdm_mimo.m:288
Insert the cyclic prefix if(CP_LEN > 0) tx_cp
Manually measured offsets for the start of data rx_cal_data_start
Definition: rl_ofdm_downlink_miso.m:117
void close()
Definition: matplotlibcpp.h:1585
void init(void)
Definition: recorder_worker.cc:34
pthread_mutex_t mutex
Definition: receiver.cc:24
lts_rep_len
Definition: rl_ofdm_downlink_miso.m:155
tx_syms
Definition: ofdm_siso.m:94
Define the pilot tone values as BPSK symbols pilots
Definition: ofdm_mimo.m:101
mod_fcn_16qam, tx_ul_data arrayfun()
Cyclic prefix length N_DATA_SYMS
Definition: rl_ofdm_mmimo_sim.m:29
SDR Class: #######.
Definition: iris_py_single_frame.py:66
elevation
Definition: data_recorder.py:37
unos
Definition: rl_ofdm_downlink_mmimo.m:200
def rxsamples_app(srl, freq, gain, num_samps, recorder, agc_en, wait_trigger)
Definition: SISO_RX.py:215
rx_vec_pilot
Definition: rl_ofdm_downlink_miso.m:289
RecorderWorker worker_
Definition: recorder_thread.h:47
const std::string GetSounderProjectVersion()
Definition: version_config.h:10
mod_fcn_16qam
Definition: siso_ofdm_mf_sim.m:65
PLOT
Definition: rl_ofdm_mimo.m:44
static std::vector< int16_t > correlate_avx_si(std::vector< int16_t > const &f, std::vector< int16_t > const &g)
tx_gain
Definition: iris_py.m:31
tx_freq
Definition: iris_py.m:28
def filter_pilots(cmpx_pilots, z_padding=150, fft_size=64, cp=16, pilot_type='lts', seq_length=[])
Definition: hdf5_lib.py:422
Iris nodes parameters bs_sdr_params
Definition: rl_ofdm_downlink_mmimo.m:157
static void exitSignalHandler(int _ignored)
Definition: signalHandler.cpp:38
h_ul_calib
Definition: rl_ofdm_mmimo_sim.m:105
Author(s)[version, executable, isloaded]
Definition: rl_ofdm_simo.m:33
if exist('bs_param.beacon_sweep', 'var') if bs_param.beacon_sweep disp('Beacon sweep')
std::vector< std::vector< float > > & pilot_sym_t(void)
Definition: config.h:189
end len
Definition: iris_py.m:214
def siggen_app(args, rate, ampl, ant, gain, freq, bbfreq, waveFreq, numSamps, serial, sigType, lo_tone)
Definition: SISO_TX.py:74
Number of N_SYM_SAMP
Definition: ofdm_mimo.m:69
def main()
Main #.
Definition: SOUNDER_TXRX.py:419
both_channels
Definition: iris_py_single_frame.py:82
lts_corr2
Definition: ofdm_plotter.py:60
Scale for Tx waveform([0:1]) bs_ids
payload_rx
Definition: rl_ofdm_mimo.m:259
anim
Definition: ofdm_plotter.py:31
All BS schedule
Definition: rl_ofdm_downlink_mmimo.m:87
activate correlator end[rx_vec_pilot, data0_len]
Definition: rl_ofdm_downlink_mmimo.m:253
end pilot_phase_err_corr
Definition: ofdm_mimo.m:332
Author(s)[version, executable, isloaded]
Definition: ofdm_simo.m:16
def close(self)
Definition: iris_py.py:302
lts_t
Definition: ofdm_simo.m:88
DATA_REP
Definition: rl_ofdm_downlink_mmimo.m:127
rx_lts_mat
Definition: rl_ofdm_mimo.m:257
def setFinalStage(self)
Definition: agc_fsm_iris.py:248
moodycamel::ConcurrentQueue< Event_data > * message_queue_
Definition: receiver.h:90
mod_fcn_64qam
Definition: mod_sym.m:25
BER berr_th
Definition: rl_ofdm_siso.m:58
for ipy
Definition: iris_py.m:65
siso_ofdm_mf_sim m A sane example of Simulated OFDM sysetm Copyright(c) 2015 Mango Communications - All Rights Reserved % Distributed under the WARP License(http Params
Definition: siso_ofdm_mf_sim.m:4
Leftover from zero padding
Definition: ofdm_mimo.m:131
size_t recorder_thread_num(void) const
Definition: config.h:215
position of the last peak max_idx
Definition: ofdm_mimo.m:228
def get_metadata(self)
Definition: hdf5_lib.py:365
activate correlator end corr_peak_all
Definition: rl_ofdm_downlink_miso.m:296
static std::vector< std::complex< int16_t > > float_to_cint16(const std::vector< std::vector< float >> &in)
Definition: utils.cc:58
def set_data(self, frameIdx, num_cl, tx, rx, chan_est, rx_H_est_plot, lts_corr, pilot_thresh, rx_syms_mat, corr, data_syms, user_params, metadata, phase_error, avg_evm, snr_from_evm, demmelNumber)
Definition: ofdm_plotter.py:128
Equalize(zero-forcing, just divide by complex chan estimates) syms_eq_mat
number of Iris boards in a chain sample_rate
Definition: iris_py.m:27
def bandpower(x, fs, fmin, fmax)
Definition: bandpower.py:15
def init_frame_corr(self, fig_len_)
Definition: ofdm_plotter.py:351
int radioRx(size_t radio_id, void *const *buffs, int numSamps, long long &frameTime)
Definition: ClientRadioSet.cc:329
rx_vec_iris
Definition: ofdm_simo.m:139
void openDataset()
Definition: hdf5_lib.cc:86
output vector y0
Definition: getRxVec.m:34
end avgCond
Definition: rl_ofdm_mimo.m:344
bool ref_node_enable(void) const
Definition: config.h:120
if SIM_MOD chan_type
Definition: ofdm_siso.m:30
else plot(syms(:), 0,' *', 'MarkerSize', 16, 'LineWidth', 2)
Normalized threshold for LTS correlation DO_APPLY_CFO_CORRECTION
Definition: siso_ofdm_mf_sim.m:32
end bs_ids
Definition: rl_ofdm_siso.m:76
Modulation order(2/4/16/64=BSPK/QPSK/16-QAM/64-QAM) TX_SCALE=0.5
def is_fineTuningDone(self)
Definition: agc_fsm_iris.py:234
def txrx_app(serials, ref_node_idx, hub_serial, rate, freq, txgain, rxgain, numSamps, prefix_pad, postfix_pad, debug)
Functions #.
Definition: sample_offset_cal.py:54
demod_fcn_16qam, syms arrayfun()
w
Definition: syms2bits.m:32
bool isPilot(int, int)
Definition: config.cc:872
bs_sdr_params
Definition: rl_ofdm_siso.m:163
else sp_rows
Definition: ofdm_mimo.m:414
RX_GN
Definition: rl_ofdm_downlink_mmimo.m:31
rx_mat_calibrated_tmp
Definition: rl_ofdm_downlink_miso.m:328
symSamp
Definition: csi_lib.py:32
hold off
Definition: rl_ofdm_mimo.m:571
Reshape the matix to have each lts pilot in a different dimension
Definition: ofdm_mimo.m:276
TX_GN
Definition: rl_ofdm_downlink_mmimo.m:30
pilot
Definition: plt_simp.py:99
def beamsweeper(hub, serials, rate, freq, txgain, rxgain, numSamps, numSyms, prefix_length, postfix_length, calibrate, both_channels)
Definition: BEACON_SWEEP.py:60
mod_fcn_bpsk
Definition: berr_perfect.m:13
rx_syms_mat
Definition: ofdm_plotter.py:43
end if DEBUG figure
Definition: rl_ofdm_mimo.m:295
Use the AGC if running on WARP hardware MAX_TX_LEN
Definition: siso_ofdm_mf_sim.m:38
v0
Definition: siso_ofdm_mf_sim.m:143
b_prim_sched
Definition: ofdm_mimo.m:151
Data subcarrier indices N_SC
Definition: rl_ofdm_siso.m:89
gainTable
Definition: agc_fsm_iris.py:62
bs_ids
Definition: rl_ofdm_downlink_miso.m:39
size_t txTimeDelta
Definition: receiver.h:102
downlink_samples
Definition: hdf5_lib.py:282
std::vector< moodycamel::ConcurrentQueue< Event_data > * > tx_queue_
Definition: receiver.h:91
pilot_thresh
Definition: ofdm_plotter.py:42
Reshape the symbol vector to a matrix with one column per OFDM symbol tx_syms_mat
Definition: rl_ofdm_mimo.m:135
for iu
Definition: ofdm_mimo.m:163
static constexpr size_t kStreamEndBurst
Definition: macros.h:14
def __init__(self, serial_id=None)
Definition: hub_py.py:31
size_t cl_sdr_ch(void) const
Definition: config.h:97
size_t cal_ref_sdr_id(void) const
Definition: config.h:121
double getFrameDurationSec() const
Return the frame duration in seconds.
Definition: config.h:263
evm_mat
Definition: ofdm_mimo.m:469
TX angular spread in radians dlycns
Definition: getRxVec.m:68
std::vector< char > buffer
Definition: macros.h:48
ue_sched
Definition: ofdm_mimo.m:153
def init_constellation(self)
Definition: ofdm_plotter.py:380
Implementation file for the Data generator class to generate binary files as inputs to Agora,...
just to agree with what the hardware spits out else Init Iris nodes Set up the Iris experiment Create a two Iris node objects
Definition: ofdm_simo.m:149
Iris params
Definition: ofdm_mimo.m:38
freq
Definition: data_recorder.py:34
Do yourselves
Definition: bits2syms.m:19
clf
Definition: ofdm_mimo.m:357
nvar
Definition: getRxVec.m:11
def qam16_mod(self, val)
Definition: ofdmtxrx.py:65
Enable SFO estimation correction DO_APPLY_PHASE_ERR_CORRECTION
Definition: rl_ofdm_mmimo_sim.m:39
static std::vector< std::complex< float > > cint16_to_cfloat(const std::vector< std::complex< int16_t >> &in)
Definition: utils.cc:71
lts_corr
Definition: ofdm_plotter.py:41
pilots_f_mat_comp
Definition: ofdm_mimo.m:324
node_bs
Definition: rl_ofdm_downlink_mmimo.m:177
lts_peaks
Definition: siso_ofdm_mf_sim.m:149
pilot_thresh2
Definition: ofdm_plotter.py:61
const std::vector< std::vector< size_t > > & dl_slots(void) const
Definition: config.h:92
payload_ind
Definition: rl_ofdm_mimo.m:258
bs_dl_sched
Definition: rl_ofdm_downlink_miso.m:106
bool semilogy(const std::vector< NumericX > &x, const std::vector< NumericY > &y, const std::string &s="")
Definition: matplotlibcpp.h:932
std::vector< pthread_t > startClientThreads(SampleBuffer *rx_buffer, SampleBuffer *tx_buffer, unsigned in_core_id=0)
Definition: receiver.cc:120
Plot results cf
Definition: rl_ofdm_mimo.m:406
title
Definition: SISO_OFDM.py:105
demod_fcn_qpsk
Definition: syms2bits.m:40
def uint32tocfloat(arr, order='IQ')
Definition: type_conv.py:16
end Generate a payload of random integers tx_data
Definition: rl_ofdm_downlink_miso.m:129
double radio_rf_freq(void) const
Definition: config.h:57
Generate a payload of random integers tx_data
Definition: rl_ofdm_simo.m:110
Data subcarrier indices N_SC
Definition: rl_ofdm_mmimo_sim.m:27
num_csdrs
Definition: csi_lib.py:45
Author(s)[version, executable, isloaded]
Definition: rl_ofdm_downlink_mmimo.m:16
rx_stream
Definition: iris_py.py:248
def testTriggers(sdrs, which)
Definition: FindArrays.py:23
def __init__(self, bsdrs, csdrs, trig_dev, txBsStream, rxBsStream, rxClStream, ota_trig, ant, rate, symSamp, pilot, beacon, coeffs, beacon_weights, rf_roundtrip)
Definition: csi_lib.py:26
size_t cl_rx_thread_num(void) const
Definition: config.h:213
if ~isloaded pyversion usr bin python py print() %weird bug where py isn 't loaded in an external script end py.importlib.import_module( 'iris_py') % Params Enable writing plots to PNG Iris params
Definition: rl_ofdm_downlink_miso.m:23
Take Construct known pilot matrix to use i next step
Definition: ofdm_mimo.m:279
#define TIME_DELTA
Definition: macros.h:31
other subcarriers will remain at fdd_mat(SC_IND_DATA, :)
Map the data values on to complex symbols switch MOD_ORDER case BPSK tx_syms
Definition: siso_ofdm_mf_sim.m:71
double freq(void) const
Definition: config.h:55
for isc
Definition: rl_ofdm_downlink_miso.m:366
Pilot subcarrier indices SC_IND_DATA
Definition: rl_ofdm_downlink_mmimo.m:42
end data_raw
Definition: iris_py.m:190
rx_data
Definition: ofdm_plotter.py:38
Leftover from zero padding
Definition: rl_ofdm_mimo.m:168
'UPLINK PILOT COLLECTION:No LTS Correlation Peaks Found!\n' fprintf()
function berr_th
Definition: berr_perfect.m:1
dl_rx_calib_fft
Definition: rl_ofdm_mmimo_sim.m:110
demod_fcn_64qam
Definition: syms2bits.m:42
Number of data symbols(one per data-bearing subcarrier per OFDM symbol) N_LTS_SYM
def calibrate_array(hub_serial, serials, ref_serial, rate, freq, txgain, rxgain, numSamps, prefix_pad, postfix_pad, second_channel)
Definition: NB_CAL_DEMO.py:50
SAMP_FREQ
Definition: siso_ofdm_mf_sim.m:44
def setup(self)
Definition: csi_lib.py:59
size_t bs_tx_thread_buff_size_
Definition: scheduler.h:38
def init_rx_signal(self, fig_len_)
Definition: ofdm_plotter.py:266
const std::vector< std::vector< size_t > > & cl_pilot_slots(void) const
Definition: config.h:147
aevms
Definition: rl_ofdm_mimo.m:527
TX_GN
Definition: ofdm_siso.m:52
static std::vector< std::vector< float > > getSequence(size_t type, size_t seq_len=0)
Definition: comms-lib.cc:516
const std::vector< std::vector< double > > & cl_rxgain_vec(void) const
Definition: config.h:182
fprintf('Length of the received vector from HW:\tUE:%d\n', data0_len)
time domain preamble
Definition: rl_ofdm_simo.m:107
bar(bw_span, fftshift(abs(squeeze(H_hat(ibs, iue, :)))), 1, 'LineWidth', 1)
n_samp
Definition: iris_py.m:33
metadata
Definition: hdf5_lib.py:279
SMPL_RT
Definition: rl_ofdm_downlink_mmimo.m:32
ue_sched
Definition: rl_ofdm_downlink_miso.m:41
void clientTxPilots(size_t user_id, long long base_time)
Definition: receiver.cc:686
#define MLPD_WARN(...)
Definition: logger.h:59
def init()
Functions #.
Definition: AGC_SIM_DEMO.py:144
end configure the UE
Definition: rl_ofdm_downlink_miso.m:413
Generate a payload of random integers tx_data
Definition: rl_ofdm_siso.m:111
end end if(all_ue_rx==N_UE_NODE) rx_vec_downlink
int cumulativeGainAdjust
Definition: agc_fsm_iris.py:52
int baseTxData(int radio_id, int cell, int frame_id, long long base_time)
Definition: receiver.cc:225
end pilot_phase_err_corr
Definition: rl_ofdm_mimo.m:388
mod_fcn_qpsk
Definition: mod_sym.m:23
@ kEventRxSymbol
Definition: macros.h:37
bs_sched
Definition: rl_ofdm_downlink_mmimo.m:35
Reshape the symbol vector to a matrix with one column per OFDM symbol tx_syms_mat
Definition: rl_ofdm_downlink_miso.m:133
normalized correlation[~, max_idx]
Definition: rl_ofdm_downlink_mmimo.m:265
def getMaxFrame(self)
Definition: wrapper.py:28
char bool bs_only
Definition: config.cc:915
std::vector< std::vector< float > > & pilot_sym_f(void)
Definition: config.h:192
time domain lts
Definition: rl_ofdm_downlink_miso.m:75
int postfix(void) const
Definition: config.h:52
def __init__(self)
Definition: ofdmtxrx.py:24
ul_tx_calib
Definition: rl_ofdm_mmimo_sim.m:100
snr
Definition: ofdm_plotter.py:53
numSamps
Definition: csi_lib.py:225
def init(hub, bnodes, ref_ant, ampl, rate, freq, txgain, rxgain, cyc_prefix, num_samps, prefix_length, postfix_length, take_duration, both_channels, plotter)
Definition: WB_CAL_DEMO.py:55
configure the BS
Definition: rl_ofdm_downlink_mmimo.m:193
for isnr
Definition: rl_ofdm_siso.m:155
tx_syms
Definition: rl_ofdm_siso.m:113
tx_data
Definition: berr_perfect.m:5
def main()
Definition: WB_CAL_DEMO.py:349
mod_fcn_16qam
Definition: berr_perfect.m:15
def set_gain_limits(frontend)
Definition: iris_health_monitor.py:253
def sync_delays(self)
Definition: hub_py.py:47
def __init__(self, filename, n_frames_to_inspect=0, n_fr_insp_st=0, sub_sample=0)
Definition: hdf5_lib.py:273
end end end recip_rx
Definition: rl_ofdm_downlink_miso.m:240
t
Definition: getRxVec.m:172
~Scheduler()
Definition: scheduler.cc:120
LTS Init Iris nodes Set up the Iris experiment Create BS Hub and UE objects Note
Definition: rl_ofdm_downlink_miso.m:87
Author(s) pyhton object array This array decribes Iris board or a collection of Iris boards that belong to the same entity E g
Definition: iris_py.m:3
const std::vector< std::string > & ul_tx_fd_data_files(void) const
Definition: config.h:159
Demodulate demod_fcn_bpsk
Definition: syms2bits.m:39
rx_vec_air
Definition: siso_ofdm_mf_sim.m:138
TX_FRQ
Definition: ofdm_siso.m:50
NodeType node_type
Definition: macros.h:64
ClientRadioSet * clientRadioSet_
Definition: receiver.h:85
else hleg1
Definition: mod_demod.m:61
delay of path ip xs
Definition: getRxVec.m:180
void radioStop(void)
Definition: BaseRadioSet.cc:471
Plot results cf
Definition: ofdm_mimo.m:351
Repeat the pilots across all OFDM symbols pilots_mat
Definition: rl_ofdm_mimo.m:141
modvec_64qam
Definition: siso_ofdm_mf_sim.m:61
Will use only Rayleigh for simulation sim_SNR_db
Definition: ofdm_mimo.m:31
In case of bad correlatons
Definition: rl_ofdm_downlink_mmimo.m:267
def int_to_bin(val, nbits)
Definition: type_conv.py:65
other subcarriers will remain at fdd_mat(SC_IND_DATA, :)
def main()
Main #.
Definition: sample_offset_cal.py:364
void go()
Definition: receiver.cc:187
rx_fft
Definition: rl_ofdm_downlink_miso.m:241
latitude
Definition: data_recorder.py:35
cal_mat
Definition: rl_ofdm_downlink_miso.m:243
size_t guard_mult(void) const
Definition: config.h:48
dl_rx_calib
Definition: rl_ofdm_mmimo_sim.m:109
mod_fcn_16qam
Definition: mod_sym.m:24
else Define an empty phase correction vector(used by plotting code below) pilot_phase_err
end trig
Definition: getRxVec.m:201
Number of N_SYM_SAMP
Definition: ofdm_siso.m:74
void xlim(Numeric left, Numeric right)
Definition: matplotlibcpp.h:1288
def update_tx_signal_fig(self, fig_len_)
Definition: ofdm_plotter.py:259
static std::vector< std::complex< float > > uint32tocfloat(const std::vector< uint32_t > &in, const std::string &order)
Definition: utils.cc:81
def qam16_dem(self, iq)
Definition: ofdmtxrx.py:127
end fprintf("Channel type: %s \n", chan_type)
unos
Definition: siso_ofdm_mf_sim.m:142
start_index
Definition: rl_ofdm_downlink_mmimo.m:219
void initBuffers()
Definition: receiver.cc:98
axis([0 length(rx_vec_iris(sp,:)) -TX_SCALE TX_SCALE]) grid on
configure the BS
Definition: rl_ofdm_downlink_miso.m:214
SC_ZER0
Definition: rl_ofdm_mmimo_sim.m:31
ue_scheds
Definition: ofdm_simo.m:60
fst_clr
Definition: ofdm_mimo.m:352
Number of data symbols(one per data-bearing subcarrier per OFDM symbol) N_DATA_SC
Number of samples that will go over the air N_ZPAD_PRE
Definition: ofdm_mimo.m:70
number of antennas awgn
Definition: mod_demod.m:18
modvec_64qam
Definition: mod_sym.m:20
TX antenna separation dsepRx
Definition: getRxVec.m:77
Enable CFO estimation correction DO_APPLY_SFO_CORRECTION
Definition: siso_ofdm_mf_sim.m:33
static constexpr size_t kSampleBufferFrameNum
Definition: macros.h:19
void write_attribute(const char name[], double val)
Definition: hdf5_lib.cc:279
lts_peaks
Definition: rl_ofdm_downlink_miso.m:301
int maxNumFineAdjust
Definition: agc_fsm_iris.py:50
RX antenna separation nov
Definition: getRxVec.m:79
else plot(syms(:), 0,' *', 'MarkerSize', 16, 'LineWidth', 2)
int triggers(int i)
Definition: ClientRadioSet.cc:327
bs_calib_sched
Definition: rl_ofdm_downlink_miso.m:99
Insert the cyclic prefix if(CP_LEN > 0) tx_cp
def __init__(self, tag, serial, freq, lna, pga, tia, lna1, lna2, attn, numSamps, latitude, longitude, elevation)
Definition: data_recorder.py:22
def signal_handler(sig)
Definition: ofdm_plotter.py:426
size_t samps_per_slot(void) const
Definition: config.h:35
Number of data symbols(one per data-bearing subcarrier per OFDM symbol) N_LTS_SYM
end_idx
Definition: iris_py.m:284
n_frm_end
Definition: hdf5_lib.py:285
size_t id_
Definition: recorder_thread.h:50
def animate(i)
Definition: AGC_SIM_DEMO.py:207
lts_t
Definition: rl_ofdm_calib.m:57
for j
Definition: ofdm_mimo.m:301
user_params
Definition: ofdm_plotter.py:46
N_FRM
Definition: rl_ofdm_siso.m:69
BS primary noede s schedule
Definition: ofdm_simo.m:153
cp_length
Definition: ofdmtxrx.py:27
phase_err2
Definition: ofdm_plotter.py:65
csdrs
Definition: csi_lib.py:38
def set_trigger(self)
Definition: iris_py.py:164
RX angular spread in radians angcTx
Definition: getRxVec.m:66
const std::vector< std::string > & frames(void) const
Definition: config.h:202
TX_SCALE
Definition: ofdm_siso.m:35
modvec_64qam
Definition: rl_ofdm_mmimo_sim.m:67
activate reading stream node_ue sdr_setcorr()
def burn_data(self, data_r, data_i=None, replay_addr=0)
Definition: iris_py_single_frame.py:279
uint32_t slot_id
Definition: macros.h:54
end Add noise nvar
Definition: berr_perfect.m:44
def update_phaser_err(self, ofdm_syms_)
Definition: ofdm_plotter.py:314
const std::vector< std::string > & cl_sdr_ids(void) const
Definition: config.h:156
number of bits snr
Definition: mod_demod.m:16
tb FontWeight
Definition: rl_ofdm_mimo.m:462
std::vector< moodycamel::ConcurrentQueue< Event_data > * > cl_tx_queue_
Definition: scheduler.h:50
Number of data symbols(one per data-bearing subcarrier per OFDM symbol) N_LTS
end end end Sample offset calibration samp_offset_array
Definition: rl_ofdm_downlink_miso.m:327
bool running
Definition: NB_CAL_DEMO.py:42
RecorderThread(Config *in_cfg, size_t thread_id, int core, size_t queue_size, size_t antenna_offset, size_t num_antennas, bool wait_signal=true)
Definition: recorder_thread.cc:17
int getRecordedFrameNum()
Definition: scheduler.cc:307
bs_ul_sched_beacon
Definition: rl_ofdm_downlink_miso.m:101
Author(s) Create channel if awgn
Definition: syms2bits.m:22
h
Definition: berr_perfect.m:36
Y_lts
Definition: ofdm_mimo.m:272
int gainAdjustStage
Definition: agc_fsm_iris.py:45
m_filt
Definition: rl_ofdm_downlink_miso.m:315
DOWNLINK_PLOT
Definition: rl_ofdm_downlink_miso.m:65
H_ref
Definition: rl_ofdm_mmimo_sim.m:101
N_UE
Definition: ofdm_simo.m:49
axis square
Definition: ofdm_mimo.m:421
Number of OFDM symbols for it needs to be less than N_PILOTS_SYMS
Definition: rl_ofdm_downlink_mmimo.m:51
Definition: MyFuncAnimation.py:3
size_t cl_tx_thread_buff_size_
Definition: scheduler.h:40
Y_lts
Definition: rl_ofdm_mimo.m:320
Enable Residual CFO estimation correction Define the preamble LTS for fine CFO and channel estimation lts_f
Definition: rl_ofdm_siso.m:104
tb FontWeight
Definition: ofdm_mimo.m:406
Pilot subcarrier indices SC_IND_DATA
Definition: ofdm_simo.m:69
recip_rx_bs_mat
Definition: rl_ofdm_downlink_miso.m:251
end I
Definition: getRxVec.m:133
data_len
Definition: rl_ofdm_calib.m:84
id FFT_OFFSET()
Definition: siso_ofdm_mf_sim.m:30
num_frame
Definition: data_recorder.py:23
Enable Residual CFO estimation correction WARPLab experiment params USE_AGC
Definition: siso_ofdm_mf_sim.m:37
evm2
Definition: ofdm_plotter.py:66
size_t max_frame(void) const
Definition: config.h:63
std::vector< std::complex< int16_t > > & pilot_ci16(void)
Definition: config.h:136
void baseTxBeacon(int radio_id, int cell, int frame_id, long long base_time)
Definition: receiver.cc:193
def signal_handler(signum, frame)
Definition: NB_CAL_DEMO.py:45
def animate(self)
Definition: ofdm_plotter.py:228
In case of bad correlatons
Definition: rl_ofdm_downlink_miso.m:318
std::unique_ptr< Receiver > receiver_
Definition: scheduler.h:34
N_ZPAD_PRE
Definition: rl_ofdm_downlink_mmimo.m:48
mod_fcn_64qam
Definition: berr_perfect.m:16
Definition: receiver.h:33
N_UE
Definition: ofdm_mimo.m:39
else Do nz_sc(j))' *H_hat(Apply nz_sc(j))') *squeeze(Y_data(end syms_eq(:, nz_sc(j),:)
Number of OFDM symbols MOD_ORDER
Definition: siso_ofdm_mf_sim.m:18
size_t pilot_slot_per_frame(void) const
Definition: config.h:80
int main(int argc, char *argv[])
Definition: main.cc:28
Pilot subcarrier indices SC_IND_DATA
Definition: rl_ofdm_mimo.m:100
mod_fcn_16qam, tx_data arrayfun()
pilot_phase_err
Definition: ofdm_mimo.m:325
def main()
Definition: BEACON_SWEEP.py:173
configure the ue_param tdd_sched(tdd_sched_index))
Apply ZF by multiplying the pseudo inverse of H_hat[N_BS_NODE x NUE] for each suubcarrier
Definition: ofdm_mimo.m:297
bool extendDataset(std::string dataset_name, size_t prim_dim_size)
Definition: hdf5_lib.cc:157
def main()
Main #.
Definition: SISO_RX.py:431
for i
Definition: rl_ofdm_calib.m:121
rx_syms
Definition: berr_perfect.m:46
for uplink only one frame schedule is sufficient node_bs set_tddconfig(1, bs_param.tdd_sched(tdd_sched_index))
def plotter(rx_axis_x0, rx_axis_x1, rx_axis_y0, rx_axis_y1, rx_noise_floor0, rx_noise_floor1, rx_serials, tx_axis_x0, tx_axis_x1, tx_axis_y0, tx_axis_y1, tx_noise_floor0, tx_noise_floor1, tx_serials, test_tx_only, test_rx_only, pf_rx, pf_tx, golden_serial, golden_ant, golden_tx_gain, golden_rx_gain, test_datetime, rx_thresh, rx_lo, rx_hi, tx_lo, tx_hi)
Definition: iris_health_monitor.py:440
case QPSK rx_data
Definition: berr_perfect.m:64
def fineTuningCounter(self)
Definition: agc_fsm_iris.py:229
phase_err
Definition: ofdm_plotter.py:51
Define the pilot tone values as BPSK symbols pilots
Definition: rl_ofdm_mimo.m:138
number of TX antennas nantRx
Definition: getRxVec.m:75
Waveform params N_OFDM_SYM
Definition: ofdm_simo.m:64
format
Definition: SISO_RX.py:117
configure the BS
Definition: rl_ofdm_calib.m:123
bool subplots_adjust(const std::map< std::string, double > &keywords={})
Definition: matplotlibcpp.h:777
mod_fcn_16qam, data arrayfun()
Repeat the pilots across all OFDM symbols pilots_mat
Definition: ofdm_mimo.m:104
node_bs sdr_setupbeacon()
if TX_GN display('WARNING:MAXIMUM TX GAIN IS 81!')
Definition: hdf5_lib.py:271
Take Construct known pilot matrix to use i next N_BS_NODE *N_UE lts_f_mat
Definition: ofdm_mimo.m:282
Number of data symbols(one per data-bearing subcarrier per OFDM symbol) N_LTS_SYM
payload_rx
Definition: ofdm_mimo.m:211
v1
Definition: siso_ofdm_mf_sim.m:144
uplink_pilot_csi
Definition: rl_ofdm_downlink_miso.m:344
NodeType
Definition: macros.h:44
ue_ids
Definition: rl_ofdm_siso.m:78
end sgtitle('LTS correlations accross antennas') end %% Rx processing % Construct a matrix from the received pilots n_plt_samp
for i
Definition: rl_ofdm_mmimo_sim.m:144
l_rx_dec
Definition: rl_ofdm_simo.m:244
Cyclic prefix length N_SYM_SAMP
Definition: rl_ofdm_downlink_miso.m:52
other subcarriers will remain at for i
Definition: rl_ofdm_downlink_miso.m:145
Enable writing plots to PNG CHANNEL
Definition: siso_ofdm_mf_sim.m:13
noise vector W_ul
Definition: getRxVec.m:15
def __init__(self, serial_id=None, tx_freq=None, rx_freq=None, tx_gain=None, rx_gain=None, bw=None, sample_rate=None, n_samp=None, n_zpad_samp=150, max_frames=10, both_channels=False, agc_en=False)
Definition: iris_py_single_frame.py:70
int fineAdjustCount
Definition: agc_fsm_iris.py:51
bool isUlData(int, int)
Definition: config.cc:888
repmat(lts_t, N_LTS_SYM, 1)]
size_t tid
Definition: receiver.h:48
int createDataset(std::string dataset_name, std::array< hsize_t, kDsDimsNum > tot_dims, std::array< hsize_t, kDsDimsNum > chunk_dims)
Definition: hdf5_lib.cc:43
#define MLPD_ERROR(...)
Definition: logger.h:50
Pilot subcarrier indices SC_IND_DATA
Definition: ofdm_siso.m:69
rxStream
Definition: csi_lib.py:235
UE schedule N_BS_NODE
Definition: rl_ofdm_downlink_mmimo.m:91
Scheduler(Config *in_cfg, unsigned int core_start=0u)
Definition: scheduler.cc:24
pkt_strt
Definition: siso_ofdm_mf_sim.m:147
def bin_to_int(val, nbits)
Definition: type_conv.py:54
configure the N_ZPAD_PRE N_ZPAD_POST
Definition: rl_ofdm_calib.m:123
end Rx payload processing Extract the payload samples(integral number of OFDM symbols following preamble) payload_vec
DO_SAVE_RX_DATA
Definition: rl_ofdm_mmimo_sim.m:53
static int hadamard2(int i, int j)
Definition: comms-lib.h:107
int currentSample
Definition: agc_fsm_iris.py:37
def close(self)
Definition: iris_py_single_frame.py:312
demod_fcn_16qam
Definition: demod_sym.m:18
N_END_ZERO_PAD
Definition: rl_ofdm_mmimo_sim.m:44
Number of subcarriers CP_LEN
Definition: rl_ofdm_calib.m:43
rx_vec_iris
Definition: rl_ofdm_mimo.m:198
activate correlator end[rx_vec_pilot_all, data_len_all]
Definition: rl_ofdm_downlink_miso.m:286
sdr
Definition: iris_py.py:86
id FFT_OFFSET()
Definition: siso_ofdm_mf_sim.m:30
if n_ue
Definition: getRxVec.m:29
void completeRecvThreads(const std::vector< pthread_t > &recv_thread)
Definition: receiver.cc:180
Waveform params N_OFDM_SYM
Definition: rl_ofdm_mimo.m:94
std::vector< moodycamel::ProducerToken * > cl_tx_ptoks_ptr_
Definition: scheduler.h:51
char bool bool client_only
Definition: config.cc:916
def qpsk_mod(self, val)
Definition: ofdmtxrx.py:47
if SIM_MOD chan_type
Definition: rl_ofdm_siso.m:45
y_label
Definition: ofdm_mimo.m:253
id lts_f()
Definition: iris_py.py:385
def sfo_correction(self, rxSig_freq_eq, pilot_sc, pilots_matrix, n_ofdm_syms)
Definition: ofdmtxrx.py:291
const unsigned int kSchedulerCore
Definition: scheduler.h:55
for iue
Definition: ofdm_mimo.m:265
Scale for Tx waveform([0:1]) N_BS_NODE
def disableAGC(self)
Definition: agc_fsm_iris.py:131
def calCapacity(userCSI, noise, beamweights, downlink=False)
Definition: channel_analysis.py:71
def rx_thread(sdr, rxStream, numSamps, txSymNum, both_channels)
Definition: SOUNDER_TXRX.py:159
bool isNoise(int, int)
Definition: config.cc:880
sdr_ant
Definition: csi_lib.py:41
demod_fcn_bpsk
Definition: rl_ofdm_mmimo_sim.m:74
Definition: hdf5_lib.cc:20
ifft_in_mat
Definition: rl_ofdm_downlink_miso.m:365
MOD_ORDER
Definition: mod_demod.m:13
ue_ids
Definition: rl_ofdm_simo.m:54
case QPSK rx_data
Definition: syms2bits.m:51
int main()
Definition: test-main.cc:7
def main()
Main #.
Definition: AGC_SIM_DEMO.py:339
Reshape the symbol vector to a matrix with one column per OFDM symbol tx_syms_mat
Definition: ofdm_simo.m:96
Number of OFDM symbols for it needs to be less than MOD_ORDER
Definition: ofdm_mimo.m:58
evm
Definition: ofdm_plotter.py:52
static std::vector< size_t > strToChannels(const std::string &channel)
Definition: utils.cc:29
uplink_pilot_tx
Definition: rl_ofdm_downlink_mmimo.m:143
chained_mode
Definition: getRxVec.m:220
cond_clr
Definition: rl_ofdm_mimo.m:496
payload_rx
Definition: rl_ofdm_calib.m:96
constant frequency error in Hz dlyns
Definition: getRxVec.m:59
ue_pilots_len
Definition: rl_ofdm_downlink_mmimo.m:142
complex gain of each path fdHz
Definition: getRxVec.m:159
rssi
Definition: agc_fsm_iris.py:65
pilot_phase_corr
Definition: ofdm_mimo.m:333
bool ul_data_slot_present(void) const
Definition: config.h:41
Author(s) nbits
Definition: bits2syms.m:17
Equalize with *known * channel
Definition: syms2bits.m:36
def test_receiver(gain_step, freq, uut_sdrs, uut_serials, uut_frontends, golden_sdr, golden_serial, golden_tx_gain, golden_ant, rx_pwr_limit, detailed_logs, en_logging, log_writer)
Definition: iris_health_monitor.py:743
int getTriggers(void) const
Definition: Radio.cc:176
void loopRecv(int tid, int core_id, SampleBuffer *rx_buffer)
Definition: receiver.cc:307
sched_id
Definition: rl_ofdm_calib.m:78
static constexpr size_t kDsDimSymbol
Definition: macros.h:16
recip_rx_ref
Definition: rl_ofdm_downlink_miso.m:246
def ani_update(self, i)
Definition: ofdm_plotter.py:171
def sdr_settxgain(self, tx_gain)
Definition: iris_py.py:183
hold off
Definition: mod_demod.m:44
end Uplink Generate a payload of random integers tx_ul_data
Definition: rl_ofdm_mmimo_sim.m:119
ul_tx_hw_phase
Definition: rl_ofdm_mmimo_sim.m:84
SampleBuffer * rx_buffer_
Definition: scheduler.h:35
tx_clr
Definition: mod_demod.m:50
Pilot subcarrier indices SC_IND_DATA
Definition: rl_ofdm_siso.m:88
Do Insert the cyclic prefix if(CP_LEN > 0) % Do yourselves tdd_tx_payload_mat
Definition: rl_ofdm_siso.m:140
Take Construct known pilot matrix to use i next N_BS_NODE *N_UE lts_f_mat
Definition: rl_ofdm_mimo.m:330
v0
Definition: rl_ofdm_downlink_miso.m:313
end hlegs
Definition: mod_demod.m:65
rx_syms
Definition: syms2bits.m:33
int slot_id
Definition: macros.h:66
Insert the data and pilot values
Definition: siso_ofdm_mf_sim.m:97
N_UE
Definition: ofdm_siso.m:49
rx_stream
Definition: iris_py_single_frame.py:251
list states
Definition: agc_fsm_iris.py:31
end ber_SIM
Definition: ofdm_siso.m:43
uplink_samples
Definition: hdf5_lib.py:281
def enableAGC(self)
Definition: agc_fsm_iris.py:127
id N_ZPAD_POST()
Definition: rl_ofdm_calib.m:123
Number of OFDM symbols for it needs to be less than N_PILOTS_SYMS
Definition: rl_ofdm_downlink_miso.m:57
void text(Numeric x, Numeric y, const std::string &s="")
Definition: matplotlibcpp.h:1175
size_t num_cl_antennas(void) const
Definition: config.h:74
data_syms
Definition: ofdm_plotter.py:45
void Scheduler_start(Scheduler *rec)
Definition: scheduler.cc:315
SampleBuffer * buffer
Definition: macros.h:70
Convert scalar parameters to vectors nc
Definition: getRxVec.m:90
Cyclic prefix length N_DATA_SYMS
Definition: rl_ofdm_simo.m:92
v1
Definition: iris_py.m:257
end if DEBUG for sp
Definition: rl_ofdm_mimo.m:296
Number of samples that will go over the air N_ZPAD_PRE
Definition: rl_ofdm_simo.m:95
tdd_sched
Definition: iris_py.py:191
ofdm_syms
Definition: ofdm_plotter.py:36
size_t core_id
Definition: receiver.h:47
Enable Residual CFO estimation correction Define the preamble LTS for fine CFO and channel estimation lts_f
Definition: ofdm_siso.m:85
All BS Ref Schedule N_BS_NODE
Definition: rl_ofdm_calib.m:76
axis([0 length(rx_vec_air) -TX_SCALE TX_SCALE]) grid on
read data process received reciprocity pilots a
Definition: rl_ofdm_calib.m:130
def set_corr(self)
Definition: iris_py.py:167
end Read n_frame x n_samp data function[data, len]
Definition: iris_py.m:186
def open_hdf5(self)
Definition: hdf5_lib.py:291
Upsample x1
Definition: getRxVec.m:171
sim_SNR_db
Definition: rl_ofdm_siso.m:47
N_SC
Definition: rl_ofdm_simo.m:90
snr2
Definition: ofdm_plotter.py:67
~RecorderThread()
Definition: recorder_thread.cc:32
def get_data(self)
Definition: hdf5_lib.py:305
end Reshape the symbol vector to a matrix with one column per OFDM symbol tx_ul_syms_mat
Definition: rl_ofdm_mmimo_sim.m:137
Number of samples that will go over the air N_SAMP
Definition: rl_ofdm_downlink_mmimo.m:47
synchronize delays only for BS node_ue sdrrxsetup()
TX_SCALE
Definition: rl_ofdm_siso.m:50
mod_fcn_64qam
Definition: rl_ofdm_mmimo_sim.m:72
size_t txFrameDelta
Definition: receiver.h:103
clf
Definition: rl_ofdm_mimo.m:412
def process_tx_log(log_name_tx)
Definition: iris_health_monitor.py:365
end Reshape the symbol vector to a matrix with one column per OFDM symbol tx_syms_mat
Definition: siso_ofdm_mf_sim.m:84
function tx_syms
Definition: mod_sym.m:1
hold off
Definition: bits2syms.m:71
postfix_len
Definition: ofdm_plotter.py:50
tia
Definition: data_recorder.py:28
activate reading stream[rx_vec_iris, ~]
Definition: rl_ofdm_downlink_miso.m:218
end data
Definition: iris_py.m:229
machine
Definition: agc_fsm_iris.py:70
def peakdet(v, delta, x=None)
Definition: peakdet.py:16
int getNoiseSlotIndex(int, int)
Definition: config.cc:845
mod_fcn_16qam, tx_data arrayfun()
condNum
Definition: rl_ofdm_mimo.m:340
Waveform params N_OFDM_SYM
Definition: rl_ofdm_siso.m:83
end end IFFT tx_payload_mat
Definition: rl_ofdm_downlink_miso.m:379
ue_ul_sched
Definition: rl_ofdm_downlink_miso.m:103
Estimate the channel by averaging over the two LTS symbols
Definition: rl_ofdm_mimo.m:336
Definition: csi_lib.py:25
Author(s)[version, executable, isloaded]
Definition: rl_ofdm_calib.m:16
RX_FRQ
Definition: ofdm_siso.m:51
size_t rx_thread_buff_size_
Definition: scheduler.h:36
frame_number
Definition: data_recorder.py:24
time domain Init Iris nodes Set up the Iris experiment Create BS Hub and UE objects Note
Definition: rl_ofdm_calib.m:68
debug_enabled
Definition: csi_lib.py:230
Channel to tune Tx and Rx radios SIM_MOD
Definition: ofdm_mimo.m:26
TX_SCALE
Definition: rl_ofdm_simo.m:50
std::thread thread_
Definition: recorder_thread.h:48
int numSatSamps
Definition: agc_fsm_iris.py:44
bool satDetGoodFlag
Definition: agc_fsm_iris.py:46
Number of OFDM symbols for it needs to be less than MOD_ORDER
Definition: ofdm_siso.m:65
legend('Rx', 'Tx', 'Location', 'EastOutside', 'fontsize', 12)
Spatial signature of each path urx
Definition: getRxVec.m:122
TX_NUM_SAMPS
Definition: siso_ofdm_mf_sim.m:134
std::vector< std::string > datasets
Definition: recorder_worker.h:33
static void setExitSignal(bool _bExitSignal)
Definition: signalHandler.cpp:29
@ GOLD_IFFT
Definition: comms-lib.h:51
mod_fcn_qpsk
Definition: siso_ofdm_mf_sim.m:64
sdr
Definition: agc_fsm_iris.py:123
size_t max_frame_number_
Definition: scheduler.h:45
Insert the data and pilot values
Definition: rl_ofdm_siso.m:129
AoD in radians dlypns
Definition: getRxVec.m:118
end if DEBUG for sp
Definition: ofdm_mimo.m:248
N_DATA_SYMS
Definition: rl_ofdm_downlink_mmimo.m:52
N_BS_NODE
Definition: rl_ofdm_downlink_miso.m:109
set to make all nodes send beacon ref_calib_sched
Definition: rl_ofdm_downlink_miso.m:98
N_SC
Definition: rl_ofdm_mimo.m:102
data0_len
Definition: rl_ofdm_downlink_miso.m:290
obj
Definition: wrapper.py:10
def __init__(self, sdrs, trig_dev, txStream, rxStream, ant, numSamps, pilot)
Definition: csi_lib.py:222
SchedulerEventType event_type
Definition: macros.h:63
Correlate for LTS a
Definition: rl_ofdm_simo.m:248
void radioRx(void *const *buffs)
Definition: BaseRadioSet.cc:519
PILOT_PLOT
Definition: rl_ofdm_downlink_mmimo.m:59
const std::vector< std::complex< float > > & gold_cf32(void) const
Definition: config.h:209
lts_f
Definition: iris_py.py:385
hvar
Definition: getRxVec.m:28
bool single_gain(void) const
Definition: config.h:58
end end uplink tx piltos UE_DATA_REP
Definition: rl_ofdm_downlink_mmimo.m:140
end uplink tx piltos UE_DATA_REP
Definition: rl_ofdm_downlink_miso.m:166
Insert the data and pilot values
Definition: rl_ofdm_downlink_miso.m:144
idlyMax expressed in units of ts1 nty
Definition: getRxVec.m:169
rx_H_est0
Definition: siso_ofdm_mf_sim.m:185
def init()
Functions #.
Definition: SISO_OFDM.py:173
def __init__(self, num_cl)
Definition: ofdm_plotter.py:27
sim_SNR_db
Definition: ofdm_siso.m:32
schedule
Definition: rl_ofdm_downlink_miso.m:208
bool internal_measurement(void) const
Definition: config.h:117
num_sdrs
Definition: csi_lib.py:231
bs_ul_sched
Definition: rl_ofdm_downlink_miso.m:102
static constexpr bool kUseUHD
Definition: macros.h:10
b_prim_sched
Definition: ofdm_siso.m:152
Enable Residual CFO estimation correction Define the preamble LTS for fine CFO and channel estimation lts_f
Definition: ofdm_simo.m:86
ue_sdr_params n_sdrs
Definition: rl_ofdm_mimo.m:195
Take Construct known pilot matrix to use i next step
Definition: rl_ofdm_mimo.m:327
def printState(self)
Definition: agc_fsm_iris.py:297
Indices of subcarriers with no data N_SC_ZERO
Definition: rl_ofdm_mmimo_sim.m:32
void finalize(void)
Definition: recorder_worker.cc:277
end BS Calibration calib_mat
Definition: rl_ofdm_mmimo_sim.m:95
Insert the data and pilot values
Definition: rl_ofdm_simo.m:127
N_BS_NODE
Definition: rl_ofdm_mimo.m:83
def agc_thread()
Definition: AGC_SIM_DEMO.py:156
SIMULATION N_BS_NODE
Definition: ofdm_mimo.m:138
channel_condition
Definition: ofdm_mimo.m:299
for i
Definition: rl_ofdm_downlink_mmimo.m:111
int activateRecv(const long long rxTime=0, const size_t numSamps=0, int flags=0)
Definition: Radio.cc:137
Define the pilot tone values as BPSK symbols pilots
Definition: ofdm_siso.m:100
if USE_HUB Using chains of different size requires some internal calibration on the BS This functionality will be added later For now
Definition: rl_ofdm_mimo.m:72
Reshape the symbol vector to a matrix with one column per OFDM symbol tx_syms_mat
Definition: rl_ofdm_simo.m:114
for sc
Definition: rl_ofdm_mimo.m:341
metadata
Definition: ofdm_plotter.py:47
Scale for Tx waveform([0:1]) % OFDM params SC_IND_PILOTS
Enable writing plots to PNG SIM_MOD
Definition: rl_ofdm_mimo.m:42
MIMO_ALG
Definition: ofdm_mimo.m:53
RecorderWorker(Config *in_cfg, size_t antenna_offset, size_t num_antennas)
Definition: recorder_worker.cc:18
end Iris nodes parameters bs_sdr_params
Definition: rl_ofdm_downlink_miso.m:175
last
Definition: rl_ofdm_downlink_miso.m:160
mod_fcn_64qam
Definition: bits2syms.m:37
ue_sdr_params
Definition: rl_ofdm_downlink_miso.m:189
read data a
Definition: rl_ofdm_downlink_mmimo.m:199
Pilot subcarrier indices SC_IND_DATA
Definition: rl_ofdm_downlink_miso.m:48
def update_frame_corr(self, fig_len_)
Definition: ofdm_plotter.py:373
if MOD_ORDER
Definition: bits2syms.m:62
def setupSDR(sdr)
Definition: FindArrays.py:38
size_t symbol_data_subcarrier_num(void) const
Definition: config.h:77
bool beam_sweep(void) const
Definition: config.h:70
n_sdrs
Definition: iris_py.m:26
rx_H_est_plot
Definition: ofdm_plotter.py:40
noise variance per data sample Carrier and sample rate fsampMHz
Definition: getRxVec.m:84
channel_condition_db
Definition: ofdm_mimo.m:300
def config_gain_ctrl(self)
Definition: iris_py.py:235
bit_err
Definition: mod_demod.m:75
TX_FRQ
Definition: rl_ofdm_downlink_miso.m:33
int enableAGCflag
Definition: agc_fsm_iris.py:38
DEBUG
Definition: ofdm_mimo.m:27
nSyms
Definition: csi_lib.py:57
def verify_hdf5(hdf5, frame_i=100, cell_i=0, ofdm_sym_i=0, ant_i=0, user_i=0, ul_sf_i=0, subcarrier_i=10, offset=-1, dn_calib_offset=0, up_calib_offset=0, thresh=0.001, deep_inspect=False, corr_thresh=0.00, exclude_bs_nodes=[], demodulate=False)
Definition: plot_hdf5.py:34
angle of motion KEEP at Cluster parameters represented as a vector with one component per cluster angcRx
Definition: getRxVec.m:64
Author(s) clear
Definition: mod_demod.m:3
ul_rx_calib
Definition: rl_ofdm_mmimo_sim.m:103
nsnr
Definition: ofdm_simo.m:32
Theoretical BER fprintf("Channel type: %s \n", chan_type)
cp
Definition: iris_py.py:385
h5file
Definition: hdf5_lib.py:274
end Compute total number of paths ncfade
Definition: getRxVec.m:111
Do your selves
Definition: mod_demod.m:74
def samps2csi_large(samps, num_users, samps_per_user=224, offset=47, chunk_size=1000, legacy=False)
Definition: hdf5_lib.py:615
void radioStart(void)
Definition: BaseRadioSet.cc:446
def tx_gain_ctrl(self)
Definition: iris_py_single_frame.py:236
uint32_t ant_id
Definition: macros.h:56
def init_channel_est(self)
Definition: ofdm_plotter.py:405
configure the N_ZPAD_PRE uplink_pilot_tx zeros(1, N_ZPAD_POST)]
modvec_16qam
Definition: rl_ofdm_mmimo_sim.m:66
def config_sdr_tdd_chained(self, tdd_sched=None)
Definition: iris_py.py:216
~Radio(void)
Definition: Radio.cc:112
lts_t
Definition: rl_ofdm_simo.m:106
size_t getTotNumAntennas()
Definition: config.cc:807
tx_vec_pow_avg
Definition: siso_ofdm_mf_sim.m:120
tx_syms
Definition: rl_ofdm_downlink_miso.m:131
evm_mat
Definition: rl_ofdm_mimo.m:526
Definition: scheduler.h:18
SampleBuffer * buffer
Definition: receiver.h:46
Number of OFDM symbols for burst
Definition: rl_ofdm_downlink_miso.m:56
w
Definition: getRxVec.m:192
Maybe you need to transpose bits_matrix before reshaping it to a vector
Definition: syms2bits.m:62
AoA in radians angpTx
Definition: getRxVec.m:117
void setMaxPrimaryDimSize(hsize_t dim_size)
Definition: hdf5_lib.h:44
size_t noise_slot_per_frame(void) const
Definition: config.h:83
#define BEACON_INTERVAL
Definition: macros.h:34
def set_corr(self)
Definition: iris_py_single_frame.py:176
Real value doesn t matter since we have corrrupt data
Definition: rl_ofdm_mimo.m:282
bold EdgeColor
Definition: rl_ofdm_mimo.m:555
Leftover from zero padding
Definition: ofdm_siso.m:132
function Inc Distributed under the WARP License http
Definition: mod_sym.m:10
DO_RECIPROCAL_CALIBRATION
Definition: rl_ofdm_mmimo_sim.m:55
Define the preamble LTS for fine CFO and channel estimation lts_f
Definition: rl_ofdm_downlink_mmimo.m:64
static std::vector< std::string > split(const std::string &s, char delimiter)
Definition: utils.cc:212
filename
LOGGER #.
Definition: AGC_SIM_DEMO.py:85
def samps2csi(samps, num_users, samps_per_user=224, fft_size=64, offset=0, bound=94, cp=0, sub=1, legacy=False, pilot_f=[])
Definition: hdf5_lib.py:501
Modulation order(2/4/16/64=BSPK/QPSK/16-QAM/64-QAM) % Rx processing params RECIP_PLOT=0
def main()
Definition: plot_hdf5.py:960
read data pilot_rep
Definition: rl_ofdm_downlink_miso.m:288
#define MLPD_TRACE(...)
Definition: logger.h:97
Rx signal figure
Definition: siso_ofdm_mf_sim.m:152
lna2
Definition: data_recorder.py:32
bsdrs
Definition: csi_lib.py:37
function Inc Distributed under the WARP License http
Definition: demod_sym.m:10
def write_to_file(name, arr, num_bits=12)
Definition: file_rdwr.py:15
Cyclic prefix length N_DATA_SYMS
Definition: ofdm_mimo.m:67
end Reshape to a vector tx_payload_vec
Definition: ofdm_siso.m:125
n_frm_st
Definition: hdf5_lib.py:284
end Reshape to a vector tx_payload_vecs
Definition: ofdm_mimo.m:125
def cfloat2uint32(arr, order='IQ')
Definition: type_conv.py:35
All BS schedule
Definition: rl_ofdm_calib.m:75
def config_beacon(self, prefix_len=0)
Definition: iris_py_single_frame.py:259
def qpsk_dem(self, iq)
Definition: ofdmtxrx.py:114
demod_fcn_16qam
Definition: syms2bits.m:41
Apply the pilot phase correction per symbol syms_eq_pc
Definition: ofdm_mimo.m:336
def calibrate(corr_idx_vec, ssdr)
Definition: sample_offset_cal.py:308
DO_APPLY_HW_IMPERFECTION
Definition: rl_ofdm_mmimo_sim.m:54
IFFT Construct the IFFT input matrix ifft_in_mat
Definition: ofdm_mimo.m:109
def generate_sine(tx_num_samps, rate, wave_freq, bb_freq, amp)
Definition: iris_health_monitor.py:513
ln_clr
Definition: mod_demod.m:30
if chan_type
Definition: getRxVec.m:8
rx_fft_ref
Definition: rl_ofdm_downlink_mmimo.m:153
if SIM_MOD chan_type
Definition: ofdm_mimo.m:30
ch
Definition: agc_fsm_iris.py:124
static bool mbGotExitSignal
Definition: signalHandler.hpp:15
N_SC
Definition: ofdm_simo.m:71
DATA_REP
Definition: rl_ofdm_downlink_miso.m:153
Leftover from zero padding
Definition: rl_ofdm_siso.m:151
int maxNumSatAdjust
Definition: agc_fsm_iris.py:49
sprintf('wl_ofdm_plots_%s_txIQ', example_mode_string)
Number of nodes antennas at the BS N_UE
Definition: rl_ofdm_mimo.m:84
ue_scheds
Definition: ofdm_siso.m:60
int prefix(void) const
Definition: config.h:51
m_filt
Definition: siso_ofdm_mf_sim.m:145
Insert the data and pilot values
Definition: ofdm_simo.m:109
fprintf('Beacon detected at UE %d ? %d \n', ipy, trig_found)
set(bh, 'FaceColor', cond_clr)
size_t cp_size(void) const
Definition: config.h:76
size_t slot_per_frame(void) const
Definition: config.h:36
pilot
Definition: csi_lib.py:28
node_bs
Definition: rl_ofdm_downlink_miso.m:195
cond_clr
Definition: ofdm_mimo.m:440
def tx_gain_ctrl(self)
Definition: iris_py.py:272
end n_samp
Definition: ofdm_siso.m:162
is_bs
Definition: iris_py.m:37
size_t num_bs_antennas_all(void) const
Definition: config.h:29
Repeat the pilots across all OFDM symbols pilots_mat
Definition: rl_ofdm_siso.m:122
int getClientId(int, int)
Definition: config.cc:834
axis square
Definition: rl_ofdm_mimo.m:477
size_t num_cl_sdrs(void) const
Definition: config.h:32
int waitCount
Definition: agc_fsm_iris.py:48
Config * cfg_
Definition: scheduler.h:33
def set_trigger(self)
Definition: hub_py.py:44
size_t samps_per_frame(void) const
Definition: config.h:38
mod_fcn_64qam
Definition: siso_ofdm_mf_sim.m:66
Get the channel by dividing by the pilots G_lts
Definition: rl_ofdm_mimo.m:334
const unsigned int kMainDispatchCore
Definition: scheduler.h:54
bool bs_present(void) const
Definition: config.h:26
FontWeight
Definition: siso_ofdm_mf_sim.m:307
end Create channel if awgn
Definition: berr_perfect.m:34
grid on
Definition: mod_demod.m:32
Burn beacon to the BS RAM else disp('Beacon from single TX')
else Do nz_sc(j))' *H_hat(Apply BF
Definition: ofdm_mimo.m:310
def setSatGain(self)
Definition: agc_fsm_iris.py:140
void subplot(long nrows, long ncols, long plot_number)
Definition: matplotlibcpp.h:1438
function Inc Distributed under the WARP License Rice University RENEW OPEN SOURCE LICENSE
Definition: demod_sym.m:16
syms_f_mat
Definition: siso_ofdm_mf_sim.m:181
activate reading stream[rx_vec_iris, data0_len]
Definition: rl_ofdm_calib.m:127
else hub_id
Definition: rl_ofdm_downlink_mmimo.m:81
rx_vec_downlink
Definition: rl_ofdm_downlink_miso.m:438
Repeat the pilots across all OFDM symbols pt_pilots_mat
Definition: rl_ofdm_mmimo_sim.m:143
static std::vector< std::vector< size_t > > loadSlots(const std::vector< std::string > &frames, char sym)
Definition: utils.cc:118
bool wait_signal_
Definition: recorder_thread.h:63
def setup(self)
Definition: csi_lib.py:239
RX_FRQ
Definition: rl_ofdm_siso.m:65
end for isym
Definition: rl_ofdm_downlink_miso.m:373
std::vector< std::complex< int16_t > > & beacon_ci16(void)
Definition: config.h:127
N_BS_ANT N_UE N_UPLINK_SYMBOLS
Definition: rl_ofdm_mmimo_sim.m:49
void Finalize()
Definition: recorder_thread.cc:54
def generate_data(self, n_ofdm_syms=100, mod_order=4, cp_length=16, datastream=[])
Definition: ofdmtxrx.py:162
payload_noCP
Definition: rl_ofdm_mimo.m:348
Get the channel by dividing by the pilots G_lts
Definition: ofdm_mimo.m:286
SampleBuffer * bs_tx_buffer_
Definition: receiver.h:98
Apply the pilot phase correction per symbol payload_syms_mat
Definition: siso_ofdm_mf_sim.m:192
double rate(void) const
Definition: config.h:95
Reciprocity Calibration recip_postfix_len
Definition: rl_ofdm_downlink_mmimo.m:190
void setupSignalHandlers()
Definition: signalHandler.cpp:43
Define the pilot tone values as BPSK symbols pilots
Definition: rl_ofdm_downlink_miso.m:136
Do Insert the cyclic prefix if(CP_LEN > 0) % Do yourselves tdd_tx_payload_mat
Definition: ofdm_siso.m:121
tx_stream
Setup channel rates, ports, gains, and filters ###.
Definition: iris_py_single_frame.py:147
def sample_cal(self, offset, ref_ant, target_offset=0, forward=True)
Definition: csi_lib.py:315
REF_ANT
Definition: rl_ofdm_downlink_miso.m:112
@ kClient
Definition: macros.h:44
prefix_len
Definition: ofdm_plotter.py:49
imagesc(1:N_OFDM_SYM,(SC_IND_DATA - N_SC/2), 100 *fftshift(reshape(evm_mat(:, sp), [], N_OFDM_SYM), 1))
else Do nz_sc(j))' *H_hat(Apply BF
Definition: rl_ofdm_mimo.m:366
chan_est
Definition: ofdm_plotter.py:39
def show_plot(cmpx_pilots, lts_seq_orig, match_filt, ref_user, ref_ant, ref_frame, frm_st_idx)
Definition: plot_hdf5.py:854
try downlink_beam_weights
Definition: rl_ofdm_downlink_miso.m:369
tx_syms
Definition: ofdm_simo.m:94
for j
Definition: rl_ofdm_mimo.m:357
const std::vector< std::vector< double > > & cl_txgain_vec(void) const
Definition: config.h:179
void radioTx(const void *const *buffs)
Definition: BaseRadioSet.cc:485
bs_index
Definition: rl_ofdm_downlink_miso.m:113
std::vector< size_t > & pilot_sc_ind(void)
Definition: config.h:198
AWGN channel(1) or fading(0) % random bits mybits
Pad with zeros for transmission tx_vec_padded
Definition: siso_ofdm_mf_sim.m:124
Definition: BaseRadioSet.h:16
void save(const std::string &filename)
Definition: matplotlibcpp.h:1632
def set_trigger(self, trig=False)
Definition: iris_py_single_frame.py:172
Demodulate rx_data
Definition: ofdm_mimo.m:347
float gainTIA
Definition: agc_fsm_iris.py:56
N_UE_NODE
Definition: rl_ofdm_downlink_mmimo.m:92
static void loadTDDConfig(const std::string &filename, std::string &jconfig)
Definition: utils.cc:196
Definition: receiver.h:44
Waveform params TX_SCALE
Definition: rl_ofdm_downlink_mmimo.m:38
const std::vector< double > & tx_gain(void) const
Definition: config.h:230
Perform the IFFT tx_payload_mat
Definition: rl_ofdm_mimo.m:153
assert(length(ue_param.id)==n_ue)
void dev_init(Config *_cfg, int ch, double rxgain, double txgain)
Definition: Radio.cc:18
def signal_handler(rate, numSyms, signal, frame)
Definition: BEACON_SWEEP.py:158
pream_ind_ibs
Definition: ofdm_mimo.m:239
Perform the IFFT tx_payload_mat
Definition: ofdm_mimo.m:116
def cfloat2uint32(arr, order='IQ')
Definition: iris_py.py:57
Definition: print_sensor.py:1
size_t beacon_channel(void) const
Definition: config.h:71
size_t bs_rx_thread_num(void) const
Definition: config.h:214
int minGain
Definition: agc_fsm_iris.py:36
id a()
Definition: iris_py.m:254
clf
Definition: siso_ofdm_mf_sim.m:152
BER berr_th
Definition: rl_ofdm_simo.m:78
IFFT Construct the IFFT input matrix ifft_in_mat
Definition: rl_ofdm_mimo.m:146
sample_rate
Definition: iris_py_single_frame.py:77
N_DATA_SYMS
Definition: rl_ofdm_downlink_miso.m:58
size_t ul_slot_per_frame(void) const
Definition: config.h:86
def close(self)
Definition: data_recorder.py:109
def find_bad_nodes(csi, corr_thresh=0.32, user=0)
Definition: channel_analysis.py:236
initialize BS node_ue1
Definition: getRxVec.m:197
int numSampsProcess
Definition: agc_fsm_iris.py:39
normalized correlation position of the last peak[~, max_idx]
Definition: rl_ofdm_calib.m:139
size_t thread_num_
Definition: receiver.h:88
data_syms2
Definition: ofdm_plotter.py:64
TX_FRQ
Definition: rl_ofdm_siso.m:64
Reshape the matix to have each lts pilot in a different N_LTS_SYM
Definition: ofdm_mimo.m:276
def save_frame(self, frame, timestamp)
Definition: data_recorder.py:85
lts_to_plot
Definition: siso_ofdm_mf_sim.m:258
short data[]
Definition: macros.h:57
Modulation order(2/4/16/64=BSPK/QPSK/16-QAM/64-QAM) % Rx processing params FFT_OFFSET
void DoRecording(void)
Definition: recorder_thread.cc:86
else hub_id
Definition: rl_ofdm_calib.m:70
static bool gotExitSignal()
Definition: signalHandler.cpp:24
TX_FRQ
Definition: rl_ofdm_downlink_mmimo.m:28
sched_id
Definition: rl_ofdm_downlink_mmimo.m:96
def fineTuning(self)
Definition: agc_fsm_iris.py:185
end Generate a payload of random integers tx_data
Definition: rl_ofdm_mimo.m:130
const std::vector< size_t > & data_ind(void) const
Definition: config.h:172
evm_text2
Definition: ofdm_plotter.py:400
mod_fcn_bpsk
Definition: mod_sym.m:22
gain power in dB the power on each cluster fadec
Definition: getRxVec.m:71
end bits to integer numbers bit_mat
Definition: bits2syms.m:25
#define MLPD_INFO(...)
Definition: logger.h:68
static int find_beacon_avx(const std::vector< std::complex< float >> &iq, const std::vector< std::complex< float >> &seq)
end if DEBUG figure
Definition: ofdm_mimo.m:247
@ kBS
Definition: macros.h:44
Number of N_SYM_SAMP
Definition: ofdm_simo.m:75
static std::vector< float > abs2_avx(std::vector< std::complex< float >> const &f)
std::vector< std::complex< int16_t > > & neg_beacon_ci16(void)
Definition: config.h:130
snr_plot
Definition: ofdm_simo.m:33
recip_ref_fft_mat
Definition: rl_ofdm_downlink_miso.m:248
const std::string & pilot_seq(void) const
Definition: config.h:108
modvec_16qam
Definition: siso_ofdm_mf_sim.m:60
end end Reshape to a vector tx_payload_vec
Definition: rl_ofdm_downlink_miso.m:394
str
Definition: iris_py.py:333
def generate_training_seq(preamble_type='lts', seq_length=0, cp=32, upsample=1, reps=10)
Definition: generate_sequence.py:21
else sp_rows
Definition: rl_ofdm_mimo.m:470
end axis square
Definition: mod_demod.m:40
void xlabel(const std::string &str, const std::map< std::string, std::string > &keywords={})
Definition: matplotlibcpp.h:1508
end Plot constellation if do_plot figure(1) ln_clr
dl_tx_calib
Definition: rl_ofdm_mmimo_sim.m:107
WIRED_UE
Definition: rl_ofdm_downlink_mmimo.m:27
end Add noise nvar
Definition: syms2bits.m:31
N_FRM
Definition: rl_ofdm_downlink_mmimo.m:33
Reshape the matix to have each lts pilot in a different dimension
Definition: rl_ofdm_mimo.m:324
modvec_16qam
Definition: bits2syms.m:31
Number of samples that will go over the air N_ZPAD_PRE
Definition: rl_ofdm_siso.m:94
int targetRSSI
Definition: agc_fsm_iris.py:34
size_t bs_sdr_ch(void) const
Definition: config.h:98
TX center angle in radians angspdTx
Definition: getRxVec.m:67
uplink_pilot_csi
Definition: rl_ofdm_downlink_mmimo.m:259
int frame_id
Definition: macros.h:65
lts_peaks
Definition: rl_ofdm_mimo.m:260
Waveform params OFDM params SC_IND_PILOTS
Definition: rl_ofdm_calib.m:39
grid on
Definition: bits2syms.m:59
default offsets measured with prefix and postfix
Definition: rl_ofdm_downlink_miso.m:222
lts_corr
Definition: rl_ofdm_mimo.m:255
Pilot subcarrier indices SC_IND_DATA
Definition: rl_ofdm_simo.m:88
Cyclic prefix length N_DATA_SYMS
Definition: ofdm_simo.m:73
def main()
Main #.
Definition: SISO_TX.py:207
#define MAX_FRAME_INC
Definition: macros.h:30
bool bs_hw_framer(void) const
Definition: config.h:49
channel_condition_db
Definition: rl_ofdm_mimo.m:356
otherwise fprintf('Invalid MOD_ORDER(%d)! Must be in[2, 4, 16, 64]\n', MOD_ORDER)
def config_sdr_tdd(self, tdd_sched=None, is_bs=True)
Definition: iris_py_single_frame.py:193
bw_span
Definition: ofdm_mimo.m:442
size_t antenna_offset(void)
Definition: recorder_worker.h:27
Maximum number of samples to use for this experiment TRIGGER_OFFSET_TOL_NS
Definition: siso_ofdm_mf_sim.m:39
ota_trig
Definition: csi_lib.py:33
std::string getTraceFileName()
Definition: scheduler.h:25
static const int KDequeueBulkSize
Definition: scheduler.h:31
recip_tx
Definition: rl_ofdm_downlink_miso.m:157
Generate a payload of random integers tx_data
Definition: siso_ofdm_mf_sim.m:55
def find_optimal_gain(sdrTx, sdrRx)
Definition: SISO_OFDM.py:190
pthread_cond_t cond
Definition: receiver.cc:25
delay in us of each path powp
Definition: getRxVec.m:119
Insert the data and pilot values
Definition: ofdm_mimo.m:111
Definition: iris_health_monitor.py:1
SMPL_RT
Definition: ofdm_siso.m:54
Insert the data and pilot values
Definition: rl_ofdm_downlink_mmimo.m:118
BS primary node s schedule
Definition: ofdm_mimo.m:152
N_SC
Definition: rl_ofdm_calib.m:42
static constexpr size_t kStreamContinuous
Definition: macros.h:13
Enable CFO estimation correction DO_APPLY_SFO_CORRECTION
Definition: rl_ofdm_mmimo_sim.m:38
myAxis
Definition: rl_ofdm_mimo.m:455
channel_condition
Definition: rl_ofdm_mimo.m:355
const std::string & data_mod(void) const
Definition: config.h:109
float
Definition: iris_py.py:339
def init_phase_err(self, ofdm_syms_)
Definition: ofdm_plotter.py:302
node_ue1 sdr_txgainctrl()
SMPL_RT
Definition: rl_ofdm_siso.m:68
subplot(N_BS_NODE, 2, 2 *sp)
#define UHD_INIT_TIME_SEC
Definition: macros.h:33
tx_syms
Definition: rl_ofdm_simo.m:112
ue_sdr_params txgain
Definition: rl_ofdm_mimo.m:196
b_prim_sched
Definition: ofdm_simo.m:152
def init()
Functions #.
Definition: SISO_RX.py:196
id FFT_OFFSET()
Definition: siso_ofdm_mf_sim.m:30
sample frequency in MHz x
Definition: getRxVec.m:86
pilot_phase_err
Definition: rl_ofdm_mimo.m:381
Reshape the matix to have each lts pilot in a different N_LTS_SYM
Definition: rl_ofdm_mimo.m:324
rx_ref_hw_phase
Definition: rl_ofdm_mmimo_sim.m:98
end n_samp
Definition: ofdm_simo.m:166
mod_fcn_qpsk
Definition: rl_ofdm_mmimo_sim.m:70
Real value doesn t matter since we have corrrupt data
Definition: ofdm_mimo.m:234
rx_H_est_plot2
Definition: ofdm_plotter.py:59
Enable SFO estimation correction DO_APPLY_PHASE_ERR_CORRECTION
Definition: siso_ofdm_mf_sim.m:34
mod_fcn_qpsk
Definition: berr_perfect.m:14
Definition: data_recorder.py:20
RX_GN
Definition: rl_ofdm_downlink_miso.m:36
std::vector< Sounder::Hdf5Reader * > readers_
Definition: scheduler.h:44
std::vector< moodycamel::ConcurrentQueue< Event_data > * > tx_queue_
Definition: scheduler.h:48
Z_mat
Definition: rl_ofdm_mmimo_sim.m:102
Number of subcarriers CP_LEN
Definition: ofdm_siso.m:71
def resetSaturation(self)
Definition: agc_fsm_iris.py:253
This is a matrix now bits_matrix
Definition: syms2bits.m:60
ue_ids
Definition: ofdm_siso.m:59
static std::vector< std::complex< float > > complex_mult_avx(std::vector< std::complex< float >> const &f, std::vector< std::complex< float >> const &g, const bool conj)
Repeat the pilots across all OFDM symbols pilots_mat
Definition: ofdm_siso.m:103
Author(s) close all
Definition: rl_ofdm_siso.m:3
if(obj.n_chain > 1) sched2
Filter the signal by summing each path Sum shifted and scaled versions of x1 to create the output y for irx
Definition: getRxVec.m:176
trigger_counts
Definition: csi_lib.py:51
Apply ZF by multiplying the pseudo inverse of H_hat[N_BS_NODE x NUE] for each suubcarrier
Definition: rl_ofdm_mimo.m:353
Correlate for LTS a
Definition: ofdm_simo.m:198
Scale for Tx waveform([0:1]) % OFDM params SC_IND_PILOTS
def _blit_clear(self, artists, bg_cache)
Definition: MyFuncAnimation.py:10
Config * config_
Definition: receiver.h:84
Init Iris nodes Set up the Iris experiment Create BS Hub and UE objects Note
Definition: rl_ofdm_downlink_mmimo.m:79
filename
Definition: data_recorder.py:47
Normalized threshold for LTS correlation DO_APPLY_CFO_CORRECTION
Definition: rl_ofdm_mmimo_sim.m:37
void radioStop(void)
Definition: ClientRadioSet.cc:303
numSamps
Definition: data_recorder.py:25
~RecorderWorker()
Definition: recorder_worker.cc:32
rx_fft
Definition: rl_ofdm_downlink_mmimo.m:152
N_SC
Definition: rl_ofdm_downlink_mmimo.m:44
just to agree with what the hardware spits out else Init Iris nodes Set up the Iris experiment Create two Iris node objects
Definition: ofdm_siso.m:149
h
Definition: ofdm_mimo.m:491
gs
Definition: ofdm_plotter.py:74
agc_en
Definition: iris_py.py:97
tx_data
Definition: ofdm_plotter.py:37
def bpsk_mod(self, val)
Definition: ofdmtxrx.py:29
tx_syms
Definition: rl_ofdm_downlink_mmimo.m:102
Take the N_UE largest values rho_max
Definition: ofdm_mimo.m:223
omgiTx
Definition: getRxVec.m:150
v1
Definition: rl_ofdm_downlink_miso.m:227
void Stop(void)
Definition: recorder_thread.cc:48
time domain preamble
Definition: rl_ofdm_siso.m:108
attn
Definition: data_recorder.py:33
def update_rx_signal_fig(self, fig_len_)
Definition: ofdm_plotter.py:295
DOWNLINK_PLOT
Definition: rl_ofdm_downlink_mmimo.m:60
frameIdx
Definition: ofdm_plotter.py:69
Number of data symbols(one per data-bearing subcarrier per OFDM symbol) N_DATA_SC
@ kTaskRead
Definition: macros.h:40
end sgtitle('LTS correlations accross antennas') end %% Rx processing % Construct a matrix from the received pilots n_plt_samp
Definition: hdf5_lib.h:22
int offset
Definition: macros.h:69
Number of CP samples to use in FFT(on average) %% Define the preamble % LTS for fine CFO and channel estimation lts_f
Hdf5Lib * hdf5_
Definition: recorder_worker.h:32
size_t core_alloc(void) const
Definition: config.h:33
plot(real(rx_vec_air), 'b')
const std::vector< std::vector< std::string > > & bs_sdr_ids(void) const
Definition: config.h:206
unos
Definition: iris_py.m:253
Define the pilot tone values as BPSK symbols pilots
Definition: rl_ofdm_downlink_mmimo.m:107
def fft_power(samples, samp_rate, num_bins=None, peak=1.0, scaling='density', peak_thresh=10)
Definition: fft_power.py:38
def is_notFinalStage(self)
Definition: agc_fsm_iris.py:279
Hub Class: #######.
Definition: hub_py.py:26
Definition: ClientRadioSet.h:12
initialize BS node_ue
Definition: rl_ofdm_downlink_miso.m:196
bold EdgeColor
Definition: siso_ofdm_mf_sim.m:309
h5group
Definition: data_recorder.py:76
int pin_to_core(int core_id)
Definition: utils.cc:13
demod_fcn_qpsk
Definition: demod_sym.m:17
Insert the cyclic prefix if(CP_LEN > 0) tx_cp
else Do yourselves
Definition: rl_ofdm_mimo.m:366
ul_rx_calib_fft
Definition: rl_ofdm_mmimo_sim.m:104
Generate a payload of random integers tx_data
Definition: rl_ofdm_downlink_mmimo.m:100
def stop(self)
Definition: data_recorder.py:101
end Reshape to a vector tx_payload_vec
Definition: rl_ofdm_siso.m:144
static void * loopRecv_launch(void *in_context)
Definition: receiver.cc:296
bad_cnt
Definition: rl_ofdm_downlink_miso.m:430
TRIGGER_OFFSET_TOL_NS
Definition: rl_ofdm_mmimo_sim.m:42
UE schedule n_samp
Definition: rl_ofdm_simo.m:215
Define the pilot tone values as BPSK symbols pilots
Definition: ofdm_simo.m:99
Plot Tx constellation cf
Definition: mod_demod.m:27
Definition: signalHandler.hpp:8
noise variance per data sample H_ul
Definition: getRxVec.m:13
void axis(const std::string &axisstr)
Definition: matplotlibcpp.h:1495
sdr
Definition: iris_py_single_frame.py:73
sub_sample
Definition: hdf5_lib.py:286
end node_bs sdr_txbeacon(N_ZPAD_PRE)
Number of OFDM symbols for burst
Definition: rl_ofdm_downlink_mmimo.m:50
size_t getNumRecordedSdrs()
Definition: config.cc:817
N_BS
Definition: rl_ofdm_calib.m:82
Receiver(Config *config, moodycamel::ConcurrentQueue< Event_data > *in_queue, std::vector< moodycamel::ConcurrentQueue< Event_data > * > tx_queue, std::vector< moodycamel::ProducerToken * > tx_ptoks, std::vector< moodycamel::ConcurrentQueue< Event_data > * > cl_tx_queue, std::vector< moodycamel::ProducerToken * > cl_tx_ptoks)
Definition: receiver.cc:27
Number of subcarriers CP_LEN
Definition: rl_ofdm_mmimo_sim.m:28
b_ids
Definition: ofdm_siso.m:57
line([-1.5, 1.5], [0 0], 'LineStyle', '-', 'Color', ln_clr, 'LineWidth', 1)
def print_header(en_logging, log_writer)
Definition: iris_health_monitor.py:539
title(sprintf('BS antenna %d Rx Waveform(I)', sp))
LTS for CFO and channel estimation lts_f
Definition: rl_ofdm_mmimo_sim.m:58
just to agree with what the hardware spits out else Init Iris nodes Set up the Iris experiment Create BS Hub and UE objects Note
Definition: rl_ofdm_simo.m:196
Write beamformed signal to all antennas donwlink_postfix_len
Definition: rl_ofdm_downlink_miso.m:416
num_bsdrs
Definition: csi_lib.py:43
static void loadDevices(const std::string &filename, std::vector< std::string > &data)
Definition: utils.cc:134
end DO_APPLY_PHASE_ERR_CORRECTION
Definition: ofdm_mimo.m:319
beacon
Definition: csi_lib.py:29
N_FRM
Definition: rl_ofdm_downlink_miso.m:38
int num_samps
Definition: AGC_SIM_DEMO.py:72
pilot_len
Definition: ofdm_plotter.py:34
TX_SCALE
Definition: ofdm_simo.m:34
Data subcarrier indices N_SC
Definition: ofdm_siso.m:70
Leftover from zero padding
Definition: ofdm_simo.m:131
end Generate a payload of random integers tx_data
Definition: ofdm_mimo.m:93
TX_GN
Definition: rl_ofdm_downlink_miso.m:35
const std::string & frame_mode(void) const
Definition: config.h:103
otherwise error('Invalid MOD_ORDER(%d)! Must be in[2, 4, 16, 64]\n', MOD_ORDER)
SoapySDR::Stream * rxs
Definition: Radio.h:15
Number of samples that will go over the air N_ZPAD_PRE
Definition: ofdm_simo.m:76
int Scheduler_getRecordedFrameNum(Scheduler *rec)
Definition: scheduler.cc:316
Take FFT Y_data
Definition: rl_ofdm_mimo.m:350
void Start(void)
Definition: recorder_thread.cc:36
TX_SCALE
Definition: rl_ofdm_mimo.m:48
Number of samples that will go over the air N_ZPAD_PRE
Definition: rl_ofdm_mimo.m:107
rx_vec_iris
Definition: ofdm_mimo.m:139
Rx processing params FFT_OFFSET
Definition: siso_ofdm_mf_sim.m:30
bool client_present(void) const
Definition: config.h:27
num_ants
Definition: csi_lib.py:232
end number of samples in a frame n_samp
Definition: ofdm_mimo.m:168
def print_results(pf, uut_serial, fft_pwr_db_1, fft_pwr_db_2, noise_floor_1, noise_floor_2, uut_ch, uut_gain, uut_gain_lo, uut_gain_hi, golden_serial, golden_ant, golden_gain, rx_pwr_limit, lms7_temp, zynq_temp, pwr_dbfs, rx_start, rx_stop, en_logging, log_writer)
Definition: iris_health_monitor.py:546
end Step
Definition: rl_ofdm_downlink_miso.m:267
def update_corr_peaks(self, pilot_len_)
Definition: ofdm_plotter.py:344
mod_fcn_bpsk
Definition: siso_ofdm_mf_sim.m:63
BaseRadioSet * base_radio_set_
Definition: receiver.h:86
DEFINE_string(conf, "files/conf.json", "JSON configuration file name")
Waveform params N_OFDM_SYM
Definition: rl_ofdm_simo.m:83
Definition: hdf5_reader.h:21
corr
Definition: ofdm_plotter.py:44
const std::string & trace_file(void) const
Definition: config.h:105
recip_tx
Definition: rl_ofdm_downlink_mmimo.m:129
SMPL_RT
Definition: rl_ofdm_downlink_miso.m:37
void closeFile()
Definition: hdf5_lib.cc:35
def config_sdr_tdd(self, is_bs=True, tdd_sched="G", prefix_len=0, max_frames=1)
Definition: iris_py.py:187
if(ibs==REF_ANT) rx_fft_ref(sid
h
Definition: syms2bits.m:24
tdd_sched
Definition: iris_py_single_frame.py:185
def burn_beacon(self, prefix_len=82)
Definition: iris_py_single_frame.py:269
clRxSamps
Definition: csi_lib.py:50
y_label
Definition: rl_ofdm_mimo.m:301
EastOutside
Definition: siso_ofdm_mf_sim.m:284
static void loadData(const char *filename, std::vector< std::complex< int16_t >> &data, int samples)
Definition: utils.cc:171
Take FFT Y_data
Definition: ofdm_mimo.m:294
dl_tx_hw_phase
Definition: rl_ofdm_mmimo_sim.m:82
sdrs
Definition: csi_lib.py:226
for irp
Definition: rl_ofdm_downlink_miso.m:354
Add preamble to one antenna for sync(workaround to offset from beamformed preamble) syncSeq
def find_lts(iq, thresh=0.8, us=1, cp=32, flip=False, lts_seq=[])
Definition: find_lts.py:60
activate correlator end uplink_pilot_rx
Definition: rl_ofdm_downlink_mmimo.m:258
tx_stream
Setup channel rates, ports, gains, and filters ###.
Definition: iris_py.py:144
BS schedule ue_sched
Definition: rl_ofdm_simo.m:213
Number of data symbols(one per data-bearing subcarrier per OFDM symbol) N_LTS_SYM
REF_ANT
Definition: rl_ofdm_downlink_mmimo.m:95
const std::vector< std::string > & cl_frames(void) const
Definition: config.h:144
void gc(void)
Definition: scheduler.cc:109
Number of subcarriers CP_LEN
Definition: siso_ofdm_mf_sim.m:25
def replay(name, leng)
Definition: SISO_RX.py:404
def recv_stream_tdd(self)
Definition: iris_py.py:282
N_ZPAD_PRE
Definition: rl_ofdm_downlink_miso.m:54
Iris params
Definition: rl_ofdm_simo.m:64
size_t antenna_offset_
Definition: recorder_worker.h:37
constant delay in ns angMotion
Definition: getRxVec.m:60
int getDlSlotIndex(int, int)
Definition: config.cc:864
std::vector< moodycamel::ProducerToken * > tx_ptoks_
Definition: receiver.h:92
n_samp
Definition: iris_py.py:95
def prepare_irises(uut_serials, golden_serial, rm_from_uut_serials)
Definition: iris_health_monitor.py:209
Number of samples that will go over the air N_ZPAD_PRE
Definition: rl_ofdm_calib.m:45
static std::vector< std::complex< int16_t > > cfloat_to_cint16(const std::vector< std::complex< float >> &in)
Definition: utils.cc:48
if ~isloaded pyversion usr bin python py print() %weird bug where py isn 't loaded in an external script end % Params Enable writing plots to PNG SIM_MOD
Definition: rl_ofdm_siso.m:41
for iu
Definition: ofdm_simo.m:162
BS schedule ue_sched
Definition: rl_ofdm_downlink_mmimo.m:89
dl_data_start
Definition: rl_ofdm_downlink_miso.m:120
Remove the cyclic prefix
Definition: siso_ofdm_mf_sim.m:175
void imshow(void *ptr, const NPY_TYPES type, const int rows, const int columns, const int colors, const std::map< std::string, std::string > &keywords)
Definition: matplotlibcpp.h:643
Map the data values on to complex symbols switch MOD_ORDER case BPSK syms
Definition: bits2syms.m:42
@ kTaskRecord
Definition: macros.h:39
pga
Definition: data_recorder.py:29
Reshape the symbol vector to a matrix with one column per OFDM symbol tx_syms_mat
Definition: rl_ofdm_downlink_mmimo.m:104
Reshape the symbol vector to a matrix with one column per OFDM symbol tx_syms_mat
Definition: ofdm_siso.m:97
int clientTxData(int tid, int frame_id, long long base_time)
Definition: receiver.cc:714
recip_rx_bs
Definition: rl_ofdm_downlink_miso.m:250
n_zpad_samp
Definition: iris_py_single_frame.py:83
def burn_data(self, data_r, data_i=None, replay_addr=0)
Definition: iris_py.py:268
slot_size
Definition: ofdm_plotter.py:48
Number of CP samples to use in FFT(on average) LTS_CORR_THRESH=0.8
for isnr
Definition: ofdm_simo.m:135
PILOT_PLOT
Definition: rl_ofdm_downlink_miso.m:64
modvec_64qam
Definition: berr_perfect.m:11
Map the data values on to complex symbols switch MOD_ORDER case BPSK tx_syms
Definition: berr_perfect.m:21
Repeat the pilots across all OFDM symbols pilots_mat
Definition: rl_ofdm_downlink_mmimo.m:110
def read_precomp_code(N, index=0)
Definition: generate_sequence.py:260
def calCorr(userCSI, corr_vec)
Definition: channel_analysis.py:325
Number of CP samples to use in FFT(on average) LTS_CORR_THRESH=0.8
axis([0 length(tx_vecs_iris(:, sp)) -TX_SCALE TX_SCALE]) grid on
ue_sched
Definition: rl_ofdm_siso.m:79
def phase_correction(self, rxSig_freq_eq, pilot_sc, pilots_matrix)
Definition: ofdmtxrx.py:325
Modulation order(2/4/16/64=BSPK/QPSK/16-QAM/64-QAM) TX_SCALE
node_bs set_config(chained_mode, 1)
Number of OFDM symbols MOD_ORDER
Definition: rl_ofdm_mmimo_sim.m:21
def animate(i, num_samps, recorder, agc_en, wait_trigger, info)
Definition: SISO_RX.py:274
herr_t writeDataset(std::string dataset_name, std::array< hsize_t, kDsDimsNum > target_id, std::array< hsize_t, kDsDimsNum > wrt_dim, short *wrt_data)
Definition: hdf5_lib.cc:177
Enable Residual CFO estimation correction Define the preamble LTS for fine CFO and channel estimation lts_f
Definition: rl_ofdm_simo.m:104
recip_rx_ref_mat
Definition: rl_ofdm_downlink_miso.m:247
void drain_buffers(std::vector< void * > buffs, int symSamp)
Definition: Radio.cc:76
def detect_peaks(x, mph=None, mpd=1, threshold=0, edge='rising', kpsh=False, valley=False, show=False, ax=None)
Definition: detect_peaks.py:20
bold EdgeColor
Definition: ofdm_mimo.m:495
position of the last peak max_idx
Definition: rl_ofdm_mimo.m:276
id a()
Definition: iris_py.m:254
def __init__(self, configfile)
Definition: wrapper.py:13
def test_transmitter(gain_step, freq, uut_sdrs, uut_serials, uut_frontends, golden_sdr, golden_serial, golden_rx_gain, golden_ant, rx_pwr_limit, detailed_logs, en_logging, log_writer)
Definition: iris_health_monitor.py:812
lts_lcp
Definition: rl_ofdm_downlink_miso.m:76
ue_sdr_params tdd_sched
Definition: rl_ofdm_simo.m:235
cal_mat
Definition: rl_ofdm_downlink_mmimo.m:154
Receiver * ptr
Definition: receiver.h:45
Generate a payload of random integers tx_data
Definition: ofdm_simo.m:92
rx_lts_mat
Definition: ofdm_mimo.m:209
RX center angle in radians angspdRx
Definition: getRxVec.m:65
Cyclic prefix length N_SYM_SAMP
Definition: rl_ofdm_calib.m:44
num_sc
Definition: ofdm_plotter.py:35
ue_sdr_params n_sdrs
Definition: rl_ofdm_simo.m:175
num_cl
Definition: ofdm_plotter.py:32
configure the BS
Definition: getRxVec.m:214
def print_thread(sdr, info)
Functions #.
Definition: SISO_TX.py:62
read data a
Definition: rl_ofdm_downlink_miso.m:220
Cyclic prefix length N_DATA_SYMS
Definition: rl_ofdm_mimo.m:104
MOD_ORDER
Definition: rl_ofdm_downlink_miso.m:60
def log2csi_hdf5(self, filename, offset=0)
Definition: hdf5_lib.py:464
number of input samples ntx
Definition: getRxVec.m:164
m_filt
Definition: rl_ofdm_downlink_mmimo.m:264
tag
Definition: data_recorder.py:26
def getTraceFileName(self)
Definition: wrapper.py:31
end end function sdrtx_single(obj, data, index) obj.py_obj_array
Definition: iris_py.m:181
end Do your selves
Definition: syms2bits.m:59
end Reshape to a vector tx_payload_vec
Definition: ofdm_simo.m:123
Number of samples that will go over the air N_SAMP
Definition: rl_ofdm_downlink_miso.m:53
def comamnd_line()
Functions #.
Definition: iris_health_monitor.py:103
moodycamel::ConcurrentQueue< Event_data > message_queue_
Definition: scheduler.h:47
dl_rx_hw_phase
Definition: rl_ofdm_mmimo_sim.m:83
n_samp
Definition: iris_py_single_frame.py:79
MIMO_ALG
Definition: rl_ofdm_mimo.m:90
Number of subcarriers CP_LEN
Definition: rl_ofdm_simo.m:91
def rxsamples_app(args, srl, freq, bw, rxgain, clockRate, out)
Definition: AGC_SIM_DEMO.py:274
int pin_thread_to_core(int core_id, pthread_t &thread_to_pin)
Definition: utils.cc:18
snr_mat
Definition: rl_ofdm_mimo.m:528
Insert the cyclic prefix if(CP_LEN > 0) tx_cp
preamble
Definition: ofdm_mimo.m:87
N_BS_NODE
Definition: rl_ofdm_simo.m:209
std::vector< moodycamel::ConcurrentQueue< Event_data > * > cl_tx_queue_
Definition: receiver.h:93
def init_corr_peaks(self, pilot_len_)
Definition: ofdm_plotter.py:320
time domain preamble
Definition: ofdm_siso.m:89
data_len
Definition: rl_ofdm_downlink_miso.m:156
dirpath
Definition: hdf5_lib.py:276
DEFINE_bool(gen_data_bits, false, "Generate random bits for uplink/downlink transmissions, otherwise read " "from file!")
void ylabel(const std::string &str, const std::map< std::string, std::string > &keywords={})
Definition: matplotlibcpp.h:1529
int beacon
Definition: iris_py.py:38
int core_alloc_
Definition: recorder_thread.h:55
sdr
Definition: hub_py.py:34