RENEWLab
1.1.0
RENEW project
|
Go to the documentation of this file. 1 #include <SoapySDR/Device.hpp>
20 void radioTx(
const void*
const* buffs);
21 void radioRx(
void*
const* buffs);
22 int radioTx(
size_t radio_id,
size_t cell_id,
const void*
const* buffs,
23 int flags,
long long& frameTime);
24 int radioRx(
size_t radio_id,
size_t cell_id,
void*
const* buffs,
25 long long& frameTime);
26 int radioRx(
size_t radio_id,
size_t cell_id,
void*
const* buffs,
int numSamps,
27 long long& frameTime);
48 SoapySDR::Device*
baseRadio(
size_t cellId);
54 std::vector<SoapySDR::Device*>
hubs;
type
Definition: iris_py.py:333
Event_data ReadFrame(Event_data event, int *offset)
Definition: hdf5_reader.cc:88
int pin_thread_to_core(int core_id, pthread_t &thread_to_pin)
Definition: utils.cc:18
w
Definition: berr_perfect.m:45
static constexpr size_t kDsDimsNum
Definition: macros.h:15
std::vector< size_t > n_bs_sdrs_agg_
Definition: config.h:338
const std::string & bs_channel(void) const
Definition: config.h:104
void init(BaseRadioContext *context)
Definition: BaseRadioSet.cc:356
size_t cl_rx_thread_num_
Definition: config.h:407
catch stop
Definition: rl_ofdm_downlink_miso.m:371
bool beam_sweep_
Definition: config.h:335
bool imbalance_cal_en(void) const
Definition: config.h:61
size_t num_cells_
Definition: config.h:318
bool isDlData(int, int)
Definition: config.cc:896
std::string trace_file_
Definition: config.h:361
size_t cell
Definition: BaseRadioSet.h:38
static size_t kMaxSupportedCPSize
Definition: config.cc:23
std::vector< std::string > ul_tx_td_data_files_
Definition: config.h:399
size_t slot_per_frame_
Definition: config.h:304
end offset
Definition: rl_ofdm_downlink_miso.m:309
static constexpr size_t kNumMappedSubcarriers_80211
Definition: constants.h:5
static std::vector< std::complex< float > > correlate_avx(std::vector< std::complex< float >> const &f, std::vector< std::complex< float >> const &g)
static std::vector< float > correlate_avx_s(std::vector< float > const &f, std::vector< float > const &g)
num clusters if length(angcTx)
H5std_string group_name_
Definition: hdf5_lib.h:60
const std::string & cl_data_mod(void) const
Definition: config.h:110
static int find_beacon(const std::vector< std::complex< float >> &iq)
Definition: comms-lib.cc:114
std::vector< std::complex< float > > & pilot_sc(void)
Definition: config.h:195
std::vector< std::vector< double > > cl_rxgain_vec_
Definition: config.h:398
#define MUFFT_FORWARD
The forward FFT transform.
Definition: fft.h:43
static void dciqMinimize(SoapySDR::Device *targetDev, SoapySDR::Device *refDev, int direction, size_t channel, double rxCenterTone, double txCenterTone)
Definition: BaseRadioSet-calibrate.cc:210
int radioTx(size_t radio_id, const void *const *buffs, int numSamps, int flags, long long &frameTime)
Definition: ClientRadioSet.cc:351
uint32_t frame_id
Definition: macros.h:53
nlohmann::json json
Definition: config.cc:18
static float measureTone(std::vector< std::complex< float >> const &, std::vector< float > const &, double, double, size_t, const size_t delta=10)
Definition: comms-lib.cc:317
Hdf5Reader(Config *in_cfg, moodycamel::ConcurrentQueue< Event_data > &msg_queue, SampleBuffer *tx_buffer, size_t thread_id, int core, size_t queue_size, bool wait_signal=true)
Definition: hdf5_reader.cc:18
const std::vector< std::string > & hub_ids(void) const
Definition: config.h:222
bool sample_cal_en_
Definition: config.h:359
std::atomic< bool > running_
Definition: config.h:404
int core_alloc_
Definition: hdf5_reader.h:60
size_t dl_slot_per_frame_
Definition: config.h:308
args
Definition: iris_py.py:349
int beacon_size(void) const
Definition: config.h:53
void sync_delays(size_t cellIdx)
Definition: BaseRadioSet.cc:431
Modulation order N
Definition: mod_demod.m:14
const std::vector< std::vector< std::string > > & calib_frames(void) const
Definition: config.h:122
H5::H5File * file_
Definition: hdf5_lib.h:61
bool plot(const std::vector< Numeric > &x, const std::vector< Numeric > &y, const std::map< std::string, std::string > &keywords)
Definition: matplotlibcpp.h:388
size_t beacon_ch_
Definition: config.h:334
std::vector< std::vector< size_t > > ul_slots_
Definition: config.h:353
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::vector< int > tx_advance_
Definition: config.h:376
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
size_t ul_slot_per_frame_
Definition: config.h:307
std::vector< std::complex< int16_t > > neg_beacon_ci16_
Definition: config.h:330
int tx_advance(size_t id) const
Definition: config.h:96
size_t getPacketDataLength() const
Definition: config.h:258
static size_t kMinSupportedFFTSize
Definition: config.cc:22
const std::vector< std::vector< size_t > > & cl_dl_slots(void) const
Definition: config.h:153
__attribute__((visibility("default"))) Config *Config_new(char *filename
void deactivateXmit(void)
Definition: Radio.cc:174
void readSensors(void)
Definition: BaseRadioSet.cc:450
size_t symbol_data_subcarrier_num_
Definition: config.h:298
Logging macros that can be optimized out by the compiler.
~Config()
Definition: config.cc:832
const std::vector< double > & rx_gain(void) const
Definition: config.h:233
bool getRadioNotFound()
Definition: BaseRadioSet.h:30
size_t samps_per_slot_
Definition: config.h:301
static constexpr int gold_code[127]
Definition: constants.h:60
std::vector< std::string > dataset_str_
Definition: hdf5_lib.h:64
Definition: ClientRadioSet.h:25
int getUlSlotIndex(int, int)
Definition: config.cc:854
bool bs_present_
Definition: config.h:285
size_t fft_size(void) const
Definition: config.h:75
@ LTE_ZADOFF_CHU
Definition: comms-lib.h:49
std::vector< short > readDataset(std::string dataset_name, std::array< hsize_t, kDsDimsNum > target_id, std::array< hsize_t, kDsDimsNum > read_dim)
Definition: hdf5_lib.cc:229
std::vector< H5::DSetCreatPropList > prop_list_
Definition: hdf5_lib.h:65
first
Definition: rl_ofdm_downlink_miso.m:244
static std::vector< float > hannWindowFunction(size_t)
Definition: comms-lib.cc:272
void GenerateData(const std::string &directory)
Definition: data_generator.cc:16
void configure(BaseRadioContext *context)
Definition: BaseRadioSet.cc:403
unsigned getCoreCount()
Definition: config.cc:904
size_t num_bs_antennas_all_
Definition: config.h:340
H5std_string hdf5_name_
Definition: hdf5_lib.h:59
lts_corr
Definition: ofdm_mimo.m:207
Equalize with *known * channel
Definition: berr_perfect.m:49
size_t ul_data_frame_num_
Definition: config.h:347
void Start(void)
Definition: hdf5_reader.cc:39
char * storepath
Definition: config.cc:914
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
nlohmann::json json
Definition: BaseRadioSet.cc:23
data
Definition: bits2syms.m:26
static double computeAbs(std::complex< double > x)
Definition: comms-lib.h:34
double bw_filter_
Definition: config.h:294
float tx_scale_
Definition: config.h:309
std::string pilot_seq_
Definition: config.h:310
size_t num_bs_sdrs_all(void) const
Definition: config.h:28
int ant_id
Definition: macros.h:67
im
Definition: iris_py.m:127
bool cl_agc_en_
Definition: config.h:374
static void * init_launch(void *in_context)
Definition: ClientRadioSet.cc:233
static constexpr std::complex< float > sts_seq[64]
Definition: constants.h:8
std::vector< std::vector< float > > pilot_sym_t_
Definition: config.h:384
void DoReading(void)
Definition: hdf5_reader.cc:135
const std::vector< std::string > & ul_tx_td_data_files(void) const
Definition: config.h:162
nlohmann::json json
Definition: ClientRadioSet.cc:23
double rate_
Definition: config.h:291
void closeDataset()
Definition: hdf5_lib.cc:130
size_t getNumBsSdrs()
Definition: config.cc:793
std::vector< size_t > data_ind_
Definition: config.h:377
std::vector< std::vector< std::complex< int16_t > > > txdata_time_dom_
Definition: config.h:388
void legend()
Definition: matplotlibcpp.h:1261
bool bs_hw_framer_
Definition: config.h:344
static std::vector< std::complex< float > > FFT(const std::vector< std::complex< float >> &, int)
Definition: comms-lib.cc:435
void deactivateRecv(void)
Definition: Radio.cc:151
size_t beacon_ant(void) const
Definition: config.h:72
size_t getNumAntennas()
Definition: config.cc:763
size_t id_
Definition: hdf5_reader.h:55
static int findLTS(const std::vector< std::complex< float >> &iq, int seqLen)
Definition: comms-lib.cc:28
void figure_size(size_t w, size_t h)
Definition: matplotlibcpp.h:1238
x3
Definition: ofdmtxrx.py:360
@ LTS_SEQ
Definition: comms-lib.h:47
static std::vector< float > magnitudeFFT(std::vector< std::complex< float >> const &, std::vector< float > const &, size_t)
Definition: comms-lib.cc:244
~Hdf5Reader()
Definition: hdf5_reader.cc:35
SoapySDR::Device * dev
Definition: Radio.h:14
size_t num_cells(void) const
Definition: config.h:47
size_t recorder_thread_num_
Definition: config.h:408
@ QPSK
Definition: comms-lib.h:55
bool single_gain_
Definition: config.h:355
static T findTone(std::vector< T > const &, double, double, size_t, const size_t delta=10)
Definition: comms-lib.cc:299
@ kThreadTermination
Definition: macros.h:41
double freq_
Definition: config.h:289
const std::vector< double > & cal_tx_gain(void) const
Definition: config.h:236
@ QAM16
Definition: comms-lib.h:55
size_t ul_data_frame_num(void) const
Definition: config.h:64
size_t noise_slot_per_frame_
Definition: config.h:306
std::thread thread_
Definition: hdf5_reader.h:53
size_t slot_samp_size_
Definition: config.h:300
bool DispatchWork(Event_data event)
Definition: hdf5_reader.cc:68
Config * config_
Definition: hdf5_reader.h:52
static std::vector< int16_t > correlate_avx_si(std::vector< int16_t > const &f, std::vector< int16_t > const &g)
size_t packet_data_length_
Definition: hdf5_reader.h:56
@ HADAMARD
Definition: comms-lib.h:52
end len
Definition: iris_py.m:214
std::vector< std::complex< float > > pilot_sc_
Definition: config.h:382
std::vector< std::array< hsize_t, kDsDimsNum > > dims_
Definition: hdf5_lib.h:68
size_t ofdm_symbol_size_
Definition: config.h:297
Config * _cfg
Definition: BaseRadioSet.h:53
Leftover from zero padding
Definition: ofdm_mimo.m:131
const std::vector< uint32_t > & pilot(void) const
Definition: config.h:178
static std::vector< std::complex< int16_t > > float_to_cint16(const std::vector< std::vector< float >> &in)
Definition: utils.cc:58
int radioRx(size_t radio_id, void *const *buffs, int numSamps, long long &frameTime)
Definition: ClientRadioSet.cc:329
void openDataset()
Definition: hdf5_lib.cc:86
static constexpr size_t kPilotSubcarrierSpacing
Definition: comms-lib.h:31
bool isPilot(int, int)
Definition: config.cc:872
bool ul_data_slot_present_
Definition: config.h:312
size_t dl_data_frame_num(void) const
Definition: config.h:67
pilot
Definition: plt_simp.py:99
std::vector< std::vector< size_t > > cl_ul_slots_
Definition: config.h:394
size_t beacon_radio_
Definition: config.h:333
const std::vector< uint32_t > & coeffs(void) const
Definition: config.h:175
std::vector< SoapySDR::Device * > hubs
Definition: BaseRadioSet.h:54
x2
Definition: ofdmtxrx.py:358
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
Config * _cfg
Definition: ClientRadioSet.h:33
std::vector< char > buffer
Definition: macros.h:48
std::vector< std::vector< double > > cl_txgain_vec_
Definition: config.h:397
Implementation file for the Data generator class to generate binary files as inputs to Agora,...
std::vector< uint32_t > coeffs_
Definition: config.h:378
std::vector< uint32_t > pilot_
Definition: config.h:381
static std::vector< std::complex< float > > cint16_to_cfloat(const std::vector< std::complex< int16_t >> &in)
Definition: utils.cc:71
title
Definition: SISO_OFDM.py:105
bool radioNotFound
Definition: ClientRadioSet.h:35
static void setIQBalance(SoapySDR::Device *dev, int direction, size_t channel, int gcorr, int iqcorr)
Definition: BaseRadioSet-calibrate.cc:199
double radio_rf_freq(void) const
Definition: config.h:57
Take Construct known pilot matrix to use i next step
Definition: ofdm_mimo.m:279
#define TIME_DELTA
Definition: macros.h:31
BaseRadioSet(Config *cfg)
Definition: BaseRadioSet.cc:25
size_t postfix_
Definition: config.h:303
const std::vector< uint32_t > & beacon(void) const
Definition: config.h:185
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
void mufft_free_plan_1d(mufft_plan_1d *plan)
Free a previously allocated 1D FFT plan.
#define MLPD_WARN(...)
Definition: logger.h:59
moodycamel::ConcurrentQueue< Event_data > event_queue_
Definition: hdf5_reader.h:49
bool imbalance_cal_en_
Definition: config.h:360
std::map< std::string, size_t > ds_name_id
Definition: hdf5_lib.h:72
char bool bs_only
Definition: config.cc:915
Config(const std::string &, const std::string &, const bool, const bool)
Definition: config.cc:25
int postfix(void) const
Definition: config.h:52
std::vector< Radio * > radios
Definition: ClientRadioSet.h:34
SampleBuffer * tx_buffer_
Definition: hdf5_reader.h:51
static void freeRadios(std::vector< Radio * > &radios)
Definition: ClientRadioSet.cc:27
@ LTS_SEQ_F
Definition: comms-lib.h:48
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
NodeType node_type
Definition: macros.h:64
std::vector< FILE * > fp
Definition: hdf5_reader.h:72
void radioStop(void)
Definition: BaseRadioSet.cc:471
std::vector< std::complex< int16_t > > pilot_ci16_
Definition: config.h:379
~Hdf5Lib()
Definition: hdf5_lib.cc:28
size_t tid
Definition: ClientRadioSet.h:28
void xlim(Numeric left, Numeric right)
Definition: matplotlibcpp.h:1288
static std::vector< std::complex< float > > uint32tocfloat(const std::vector< uint32_t > &in, const std::string &order)
Definition: utils.cc:81
size_t pilot_slot_per_frame_
Definition: config.h:305
static void initAGC(SoapySDR::Device *dev, Config *cfg)
Definition: ClientRadioSet.cc:361
void write_attribute(const char name[], double val)
Definition: hdf5_lib.cc:279
bool core_alloc_
Definition: config.h:405
int triggers(int i)
Definition: ClientRadioSet.cc:327
std::atomic_ulong * thread_count
Definition: BaseRadioSet.h:36
size_t samps_per_slot(void) const
Definition: config.h:35
static constexpr size_t prime[309]
Definition: constants.h:31
for j
Definition: ofdm_mimo.m:301
const std::vector< std::string > & frames(void) const
Definition: config.h:202
uint32_t slot_id
Definition: macros.h:54
#define MUFFT_INVERSE
The inverse FFT transform.
Definition: fft.h:45
SoapySDR::Device * baseRadio(size_t cellId)
Definition: BaseRadioSet.cc:424
const std::vector< std::string > & cl_sdr_ids(void) const
Definition: config.h:156
static size_t find_pilot_seq(const std::vector< std::complex< float >> &iq, const std::vector< std::complex< float >> &pilot, size_t seqLen)
Definition: comms-lib.cc:87
std::vector< std::string > hub_ids_
Definition: config.h:325
h
Definition: berr_perfect.m:36
void loadDLData(const std::string &)
Definition: config.cc:688
std::vector< std::complex< int16_t > > beacon_ci16_
Definition: config.h:329
size_t max_frame(void) const
Definition: config.h:63
std::vector< H5::DataSet * > datasets_
Definition: hdf5_lib.h:67
@ STS_SEQ
Definition: comms-lib.h:46
bool extendDataset(std::string dataset_name, size_t prim_dim_size)
Definition: hdf5_lib.cc:157
for i
Definition: rl_ofdm_calib.m:121
H5::Group group_
Definition: hdf5_lib.h:62
void collectCSI(bool &)
Definition: BaseRadioSet-calibrate.cc:493
bool isUlData(int, int)
Definition: config.cc:888
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
std::vector< std::string > ul_tx_fd_data_files_
Definition: config.h:400
#define MLPD_ERROR(...)
Definition: logger.h:50
static constexpr bool kPrintDataSetInfo
Definition: hdf5_lib.cc:17
int beacon_size_
Definition: config.h:331
size_t getMaxNumAntennas()
Definition: config.cc:773
static size_t kFpgaTxRamSize
Definition: config.cc:20
static int hadamard2(int i, int j)
Definition: comms-lib.h:107
static std::vector< std::complex< float > > getPilotScValue(size_t fftSize, size_t DataScNum, size_t PilotScOffset=kDefaultPilotScOffset)
Definition: comms-lib.cc:359
std::vector< std::vector< size_t > > pilot_slots_
Definition: config.h:350
double nco_
Definition: config.h:290
size_t reader_thread_num_
Definition: config.h:409
activate correlator end[rx_vec_pilot_all, data_len_all]
Definition: rl_ofdm_downlink_miso.m:286
char bool bool client_only
Definition: config.cc:916
void * mufft_alloc(size_t size)
Allocate aligned storage suitable for muFFT. Must be freed with mufft_free.
moodycamel::ConcurrentQueue< Event_data > & msg_queue_
Definition: hdf5_reader.h:48
bool isNoise(int, int)
Definition: config.cc:880
size_t tid
Definition: BaseRadioSet.h:37
static constexpr int kDsExtendStep
Definition: hdf5_lib.cc:18
Definition: hdf5_lib.cc:20
std::vector< std::complex< float > > pilot_cf32_
Definition: config.h:380
static std::vector< size_t > strToChannels(const std::string &channel)
Definition: utils.cc:29
std::vector< size_t > pilot_sc_ind_
Definition: config.h:383
sched_id
Definition: rl_ofdm_calib.m:78
std::vector< std::vector< std::complex< float > > > dl_txdata_freq_dom_
Definition: config.h:389
std::condition_variable condition_
Definition: hdf5_reader.h:70
size_t num_cl_sdrs_
Definition: config.h:370
size_t max_tx_gain_ue_
Definition: config.h:369
bool sample_cal_en(void) const
Definition: config.h:62
std::vector< std::string > frames_
Definition: config.h:342
Upsample x1
Definition: getRxVec.m:171
void loadULData(const std::string &)
Definition: config.cc:613
int getNoiseSlotIndex(int, int)
Definition: config.cc:845
static float find_max_abs(const std::vector< std::complex< float >> &in)
Definition: comms-lib.cc:233
size_t num_cl_antennas_
Definition: config.h:372
std::vector< std::string > dl_tx_td_data_files_
Definition: config.h:401
x0
Definition: ofdmtxrx.py:354
std::vector< H5::DataSpace > dataspace_
Definition: hdf5_lib.h:66
@ GOLD_IFFT
Definition: comms-lib.h:51
std::vector< std::vector< size_t > > dl_slots_
Definition: config.h:354
SchedulerEventType event_type
Definition: macros.h:63
void radioRx(void *const *buffs)
Definition: BaseRadioSet.cc:519
std::vector< std::string > dl_tx_fd_data_files_
Definition: config.h:402
static double computePower(std::complex< double > x)
Definition: comms-lib.h:38
size_t cl_sdr_ch_
Definition: config.h:371
bool internal_measurement(void) const
Definition: config.h:117
static constexpr bool kUseUHD
Definition: macros.h:10
std::vector< double > cal_tx_gain_
Definition: config.h:358
hsize_t max_prim_dim_size
Definition: hdf5_lib.h:70
std::vector< double > rx_gain_
Definition: config.h:357
bool internal_measurement_
Definition: config.h:363
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
std::vector< std::vector< size_t > > cl_pilot_slots_
Definition: config.h:393
for sc
Definition: rl_ofdm_mimo.m:341
std::vector< std::vector< std::string > > calib_frames_
Definition: config.h:362
last
Definition: rl_ofdm_downlink_miso.m:160
static std::vector< std::complex< float > > csign(const std::vector< std::complex< float >> &iq)
Definition: comms-lib.cc:209
#define RX_THREAD_NUM
Definition: macros.h:28
return cfg
Definition: config.cc:918
size_t symbol_data_subcarrier_num(void) const
Definition: config.h:77
bool beam_sweep(void) const
Definition: config.h:70
bool radioNotFound
Definition: BaseRadioSet.h:56
struct mufft_plan_1d mufft_plan_1d
Opaque type representing a 1D FFT.
Definition: fft.h:77
size_t guard_mult_
Definition: config.h:319
static constexpr size_t kFftSize_80211
Definition: constants.h:4
std::vector< std::vector< size_t > > cl_dl_slots_
Definition: config.h:395
iq
Definition: find_lts.py:149
void radioStart(void)
Definition: BaseRadioSet.cc:446
uint32_t ant_id
Definition: macros.h:56
size_t getTotNumAntennas()
Definition: config.cc:807
bool dl_data_slot_present_
Definition: config.h:313
Maybe you need to transpose bits_matrix before reshaping it to a vector
Definition: syms2bits.m:62
Config * cfg_
Definition: data_generator.h:22
filename
LOGGER #.
Definition: AGC_SIM_DEMO.py:85
BaseRadioSet * brs
Definition: BaseRadioSet.h:35
#define MLPD_TRACE(...)
Definition: logger.h:97
void mufft_execute_plan_1d(mufft_plan_1d *plan, void *output, const void *input)
Executes a 1D FFT plan.
#define RECORDER_THREAD_NUM
Definition: macros.h:27
Definition: BaseRadioSet.h:34
static double windowFunctionPower(std::vector< float > const &)
Definition: comms-lib.cc:288
void removeDataset(std::string dataset_name)
Definition: hdf5_lib.cc:120
bool running_
Definition: hdf5_reader.h:71
ClientRadioSet * crs
Definition: ClientRadioSet.h:26
size_t symbol_per_slot(void) const
Definition: config.h:37
int prefix(void) const
Definition: config.h:51
double radio_rf_freq_
Definition: config.h:293
size_t cp_size(void) const
Definition: config.h:76
size_t slot_per_frame(void) const
Definition: config.h:36
@ QAM64
Definition: comms-lib.h:55
int getClientId(int, int)
Definition: config.cc:834
size_t num_cl_sdrs(void) const
Definition: config.h:32
static size_t kMaxSupportedFFTSize
Definition: config.cc:21
size_t bs_sdr_ch_
Definition: config.h:323
static void adjustCalibrationGains(std::vector< SoapySDR::Device * > rxDevs, SoapySDR::Device *txDev, size_t channel, double fftBin)
Definition: BaseRadioSet-calibrate.cc:33
static std::vector< std::vector< size_t > > loadSlots(const std::vector< std::string > &frames, char sym)
Definition: utils.cc:118
size_t bs_rx_thread_num_
Definition: config.h:406
std::vector< std::vector< std::complex< int16_t > > > dl_txdata_time_dom_
Definition: config.h:390
std::vector< std::vector< size_t > > noise_slots_
Definition: config.h:351
double rate(void) const
Definition: config.h:95
@ kClient
Definition: macros.h:44
static std::vector< std::complex< float > > IFFT(const std::vector< std::complex< float >> &, int, float scale=0.5, bool normalize=true)
Definition: comms-lib.cc:404
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
void Finalize()
Definition: hdf5_reader.cc:57
std::vector< size_t > & pilot_sc_ind(void)
Definition: config.h:198
size_t symbol_per_slot_
Definition: config.h:299
Definition: BaseRadioSet.h:16
void save(const std::string &filename)
Definition: matplotlibcpp.h:1632
std::string cl_data_mod_
Definition: config.h:315
void init(ClientRadioContext *context)
Definition: ClientRadioSet.cc:240
static void loadTDDConfig(const std::string &filename, std::string &jconfig)
Definition: utils.cc:196
const std::vector< double > & tx_gain(void) const
Definition: config.h:230
assert(length(ue_param.id)==n_ue)
std::mutex sync_
Definition: hdf5_reader.h:69
size_t num_bs_sdrs_all_
Definition: config.h:339
static std::vector< size_t > getDataSc(size_t fftSize, size_t DataScNum, size_t PilotScOffset=kDefaultPilotScOffset)
Definition: comms-lib.cc:324
~ClientRadioSet(void)
Definition: ClientRadioSet.cc:301
static std::vector< std::complex< float > > snoopSamples(SoapySDR::Device *dev, size_t channel, size_t readSize)
Definition: BaseRadioSet-calibrate.cc:23
size_t ul_slot_per_frame(void) const
Definition: config.h:86
std::vector< std::string > cl_sdr_ids_
Definition: config.h:368
normalized correlation position of the last peak[~, max_idx]
Definition: rl_ofdm_calib.m:139
Hdf5Lib(H5std_string file_name, H5std_string group_name)
Definition: hdf5_lib.cc:21
short data[]
Definition: macros.h:57
std::vector< std::complex< float > > gold_cf32_
Definition: config.h:327
size_t dl_data_frame_num_
Definition: config.h:348
const std::vector< size_t > & data_ind(void) const
Definition: config.h:172
ClientRadioSet(Config *cfg)
Definition: ClientRadioSet.cc:31
#define MLPD_INFO(...)
Definition: logger.h:68
bool client_present_
Definition: config.h:286
static int find_beacon_avx(const std::vector< std::complex< float >> &iq, const std::vector< std::complex< float >> &seq)
@ kBS
Definition: macros.h:44
static std::vector< float > abs2_avx(std::vector< std::complex< float >> const &f)
size_t prefix_
Definition: config.h:302
static std::vector< std::complex< float > > modulate(std::vector< uint8_t >, int)
Definition: comms-lib.cc:454
size_t bs_sdr_ch(void) const
Definition: config.h:98
std::vector< size_t > n_bs_antennas_
Definition: config.h:337
int frame_id
Definition: macros.h:65
const std::string & cl_channel(void) const
Definition: config.h:106
static void * init_launch(void *in_context)
Definition: BaseRadioSet.cc:350
size_t fft_size_
Definition: config.h:295
const std::string & data_mod(void) const
Definition: config.h:109
std::vector< std::vector< std::complex< float > > > txdata_freq_dom_
Definition: config.h:387
float
Definition: iris_py.py:339
ue_sdr_params txgain
Definition: rl_ofdm_mimo.m:196
std::vector< double > tx_gain_
Definition: config.h:356
void ylim(Numeric left, Numeric right)
Definition: matplotlibcpp.h:1271
std::string cl_channel_
Definition: config.h:373
sample frequency in MHz x
Definition: getRxVec.m:86
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)
#define MUFFT_FLAG_CPU_ANY
muFFT will use any SIMD instruction set it can if supported by the CPU.
Definition: fft.h:51
size_t max_frame_
Definition: config.h:346
std::string data_mod_
Definition: config.h:314
std::vector< std::vector< Radio * > > bsRadios
Definition: BaseRadioSet.h:55
std::string bs_channel_
Definition: config.h:341
void radioStop(void)
Definition: ClientRadioSet.cc:303
static void * configure_launch(void *in_context)
Definition: BaseRadioSet.cc:397
static std::vector< size_t > getNullSc(size_t fftSize, size_t DataScNum)
Definition: comms-lib.cc:344
std::string frame_mode_
Definition: config.h:343
@ kTaskRead
Definition: macros.h:40
static std::vector< T > convolve(std::vector< T > const &f, std::vector< T > const &g)
Definition: comms-lib.h:85
int offset
Definition: macros.h:69
size_t beacon_ant_
Definition: config.h:332
const std::vector< std::vector< std::string > > & bs_sdr_ids(void) const
Definition: config.h:206
mufft_plan_1d * mufft_create_plan_1d_c2c(unsigned N, int direction, unsigned flags)
Create a plan for a 1D complex-to-complex inverse or forward FFT.
Plot Tx constellation cf
Definition: mod_demod.m:27
#define SETTLE_TIME_MS
Definition: macros.h:32
std::vector< std::vector< float > > pilot_sym_f_
Definition: config.h:385
size_t getNumRecordedSdrs()
Definition: config.cc:817
size_t cal_ref_sdr_id_
Definition: config.h:365
int cl_agc_gain_init_
Definition: config.h:375
std::vector< std::vector< std::string > > bs_sdr_ids_
Definition: config.h:324
int num_samps
Definition: AGC_SIM_DEMO.py:72
std::vector< size_t > & n_bs_sdrs(void)
Definition: config.h:142
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)
bool hw_framer_
Definition: config.h:345
std::vector< size_t > n_bs_sdrs_
Definition: config.h:336
void mufft_free(void *ptr)
Free previously allocated storage obtained from mufft_alloc or mufft_calloc.
std::atomic_ulong * thread_count
Definition: ClientRadioSet.h:27
void closeFile()
Definition: hdf5_lib.cc:35
void radioTrigger(void)
Definition: BaseRadioSet.cc:439
const std::vector< std::string > & dl_tx_td_data_files(void) const
Definition: config.h:168
const std::vector< std::string > & cl_frames(void) const
Definition: config.h:144
void dciqCalibrationProc(size_t)
Definition: BaseRadioSet-calibrate.cc:345
std::vector< std::string > calib_ids_
Definition: config.h:326
int getDlSlotIndex(int, int)
Definition: config.cc:864
bool wait_signal_
Definition: hdf5_reader.h:68
@ LTE_ZADOFF_CHU_F
Definition: comms-lib.h:50
static std::vector< std::complex< int16_t > > cfloat_to_cint16(const std::vector< std::complex< float >> &in)
Definition: utils.cc:48
hsize_t target_prim_dim_size
Definition: hdf5_lib.h:69
size_t cp_size_
Definition: config.h:296
bool ref_node_enable_
Definition: config.h:364
static std::vector< size_t > getPilotScIndex(size_t fftSize, size_t DataScNum, size_t PilotScOffset=kDefaultPilotScOffset)
Definition: comms-lib.cc:385
bool hw_framer(void) const
Definition: config.h:50
void Stop(void)
Definition: hdf5_reader.cc:51
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
static constexpr std::complex< float > lts_seq[64]
Definition: constants.h:20
void drain_buffers(std::vector< void * > buffs, int symSamp)
Definition: Radio.cc:76
int mod_order
Definition: ofdmtxrx.py:352
std::vector< std::string > cl_frames_
Definition: config.h:392
~BaseRadioSet(void)
Definition: BaseRadioSet.cc:340
std::vector< uint32_t > beacon_
Definition: config.h:328