Agora
1.2.0
Agora project
|
Go to the documentation of this file.
5 #ifndef DOBEAMWEIGHTS_H_
6 #define DOBEAMWEIGHTS_H_
11 #include "common_typedef_sdk.h"
23 Config* in_config,
int tid,
58 const arma::cx_fmat& mat_csi,
59 const arma::cx_fvec& calib_sc_vec,
const float noise,
61 void ComputeCalib(
size_t frame_id,
size_t sc_id, arma::cx_fvec& calib_sc_vec);
112 #endif // DOBEAMWEIGHTS_H_
Definition: phy_stats.h:15
void ComputeCalib(size_t frame_id, size_t sc_id, arma::cx_fvec &calib_sc_vec)
Definition: dobeamweights.cc:221
size_t GetBeamScId(size_t sc_id) const
Definition: config.h:481
size_t UeAntNum() const
Definition: config.h:41
bool IsRecCalEnabled() const
Definition: framestats.cc:97
Definition: test_transpose.cc:22
PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > & ul_beam_matrices_
Definition: dobeamweights.h:98
std::unique_ptr< arma::cx_fvec > calib_sc_vec_ptr_
Definition: dobeamweights.h:105
Table< complex_float > & calib_dl_msum_buffer_
Definition: dobeamweights.h:96
static constexpr bool kEnableMatLog
Definition: symbols.h:174
auto printf(const S &fmt, const T &... args) -> int
Definition: printf.h:631
~DoBeamWeights() override
Definition: dobeamweights.cc:79
size_t NumChannels() const
Definition: config.h:98
float ComputePrecoder(size_t frame_id, size_t cur_sc_id, const arma::cx_fmat &mat_csi, const arma::cx_fvec &calib_sc_vec, const float noise, complex_float *ul_beam_mem, complex_float *dl_beam_mem)
Definition: dobeamweights.cc:96
std::array< size_t, kMaxStatBreakdown > task_duration_
Definition: stats.h:23
size_t RecipCalFrameCnt() const
Definition: config.h:171
float GetNoise(size_t frame_id)
Definition: phy_stats.cc:608
static constexpr size_t kFrameWnd
Definition: symbols.h:18
void * PaddedAlignedAlloc(Alignment_t alignment, size_t size)
Definition: memory_manage.cc:15
constexpr Char sign(Sign s)
Definition: format.h:929
static constexpr bool kUseUlZfForDownlink
Definition: dobeamweights.cc:17
size_t BsAntNum() const
Definition: config.h:35
static constexpr bool kPrintBeamStats
Definition: symbols.h:193
#define AGORA_LOG_ERROR(...)
Definition: logger.h:39
static constexpr size_t kTransposeBlockSize
Definition: symbols.h:340
complex_float * pred_csi_buffer_
Definition: dobeamweights.h:89
void UpdateCsiCond(size_t frame_id, size_t sc_id, float cond)
Definition: phy_stats.cc:522
size_t RefRadio(size_t id) const
Definition: config.h:101
const FrameStats & Frame() const
Definition: config.h:340
#define AGORA_LOG_TRACE(...)
Definition: logger.h:92
Table< complex_float > & calib_dl_buffer_
Definition: dobeamweights.h:92
size_t ModifyRecCalIndex(size_t previous_index, int mod_value=0) const
Definition: config.h:133
int tid_
Definition: doer.h:65
void ComputePartialCsiBeams(size_t tag)
Definition: dobeamweights.cc:451
index
Definition: parse_all_dl.m:11
size_t BeamformingAlgo() const
Definition: config.h:108
static constexpr bool kUsePartialTrans
Definition: symbols.h:183
constexpr std::chrono::duration< Rep, Period > abs(std::chrono::duration< Rep, Period > d)
Definition: chrono.h:1488
size_t num_ext_ref_
Definition: dobeamweights.h:109
size_t OfdmDataNum() const
Definition: config.h:47
static constexpr bool kDebugPrintInTask
Definition: symbols.h:201
Declaration file for the MatLogger class which records runtime zero-forcing matrices into csv files....
void UpdateDlCsi(size_t frame_id, size_t sc_id, const arma::cx_fmat &mat_in)
Definition: phy_stats.cc:598
bool ExternalRefNode(size_t id) const
Definition: config.h:110
Declaration file for the Stats class. Includes definations for DurationStat and FrameSummery types.
static constexpr bool kUseInverseForZF
Definition: dobeamweights.cc:16
Definition: message.h:142
size_t task_count_
Definition: stats.h:24
Self defined functions for message storage and passing.
void Predict(size_t offset)
for i
Definition: generate_data.m:107
DurationStat * duration_stat_
Definition: dobeamweights.h:100
void UpdateDlBeam(size_t frame_id, size_t sc_id, const arma::cx_fmat &mat_in)
Definition: phy_stats.cc:603
Communications Library: a) Generate pilot/preamble sequences b) OFDM modulation.
void ComputeFullCsiBeams(size_t tag)
Definition: dobeamweights.cc:383
arma::uvec ext_ref_id_
Definition: dobeamweights.h:108
size_t RecipCalIndex(size_t frame_id) const
Definition: config.h:138
static void PartialTransposeGather(size_t cur_sc_id, float *src, float *&dst, size_t bs_ant_num)
Definition: dobeamweights.cc:306
complex_float * csi_gather_buffer_
Definition: dobeamweights.h:102
Config * cfg_
Definition: doer.h:64
size_t NumDLSyms() const
Definition: framestats.cc:83
PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > & dl_beam_matrices_
Definition: dobeamweights.h:99
static size_t WorkerRdtsc()
Definition: gettime.h:34
PtrGrid< kFrameWnd, kMaxUEs, complex_float > & csi_buffers_
Definition: dobeamweights.h:88
Declaration file for the Doer class. The is the base class for all agora doers.
DoBeamWeights(Config *in_config, int tid, PtrGrid< kFrameWnd, kMaxUEs, complex_float > &csi_buffers, Table< complex_float > &calib_dl_buffer, Table< complex_float > &calib_ul_buffer, Table< complex_float > &calib_dl_msum_buffer, Table< complex_float > &calib_ul_msum_buffer, PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &ul_beam_matrices_, PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &dl_beam_matrices_, PhyStats *in_phy_stats, Stats *stats_manager)
Definition: dobeamweights.cc:19
N_SC, NUM_UE, NUM_UE zeros()
Declaration file for the DoBeamWeights class. Zero forcing for one subcarrier.
complex_float * calib_gather_buffer_
Definition: dobeamweights.h:104
#define AGORA_LOG_WARN(...)
Definition: logger.h:53
noise
Definition: generate_data_dl.m:131
size_t BeamBlockSize() const
Definition: config.h:200
size_t NumCells() const
Definition: config.h:94
Declaration file for the configuration class which importants json configuration values into class va...
Table< complex_float > & calib_ul_buffer_
Definition: dobeamweights.h:93
uint16_t sc_id_
Definition: message.h:39
static constexpr size_t kMaxUEs
Definition: symbols.h:289
Definition: dobeamweights.h:20
Declaration file for the PhyStats class.
static constexpr bool kUseSIMDGather
Definition: dobeamweights.cc:13
static void TransposeGather(size_t cur_sc_id, float *src, float *&dst, size_t bs_ant_num, size_t ofdm_data_num)
Definition: dobeamweights.cc:373
void UpdateUlCsi(size_t frame_id, size_t sc_id, const arma::cx_fmat &mat_in)
Definition: phy_stats.cc:593
bool FreqOrthogonalPilot() const
Definition: config.h:208
uint32_t frame_id_
Definition: message.h:32
static constexpr size_t kMaxAntennas
Definition: symbols.h:286
void RecordCalibMat(size_t frame_id, size_t sc_id, const arma::cx_fvec &calib_buffer)
Definition: phy_stats.cc:391
Table< complex_float > & calib_ul_msum_buffer_
Definition: dobeamweights.h:97
PhyStats * phy_stats_
Definition: dobeamweights.h:107
DurationStat * GetDurationStat(DoerType doer_type, size_t thread_id)
Definition: stats.h:162
EventData Launch(size_t tag) override
Definition: dobeamweights.cc:86
size_t BfAntNum() const
Definition: config.h:39