#include <dodemul.h>
|
| DoDemul (Config *config, int tid, Table< complex_float > &data_buffer, PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &ul_beam_matrices, Table< complex_float > &ue_spec_pilot_buffer, Table< complex_float > &equal_buffer, PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > &demod_buffers_, PhyStats *in_phy_stats, Stats *in_stats_manager) |
|
| ~DoDemul () override |
|
EventData | Launch (size_t tag) override |
|
virtual bool | TryLaunch (moodycamel::ConcurrentQueue< EventData > &task_queue, moodycamel::ConcurrentQueue< EventData > &complete_task_queue, moodycamel::ProducerToken *worker_ptok) |
|
virtual EventData | Launch (size_t tag, EventType event_type) |
|
◆ DoDemul()
DoDemul::DoDemul |
( |
Config * |
config, |
|
|
int |
tid, |
|
|
Table< complex_float > & |
data_buffer, |
|
|
PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > & |
ul_beam_matrices, |
|
|
Table< complex_float > & |
ue_spec_pilot_buffer, |
|
|
Table< complex_float > & |
equal_buffer, |
|
|
PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > & |
demod_buffers_, |
|
|
PhyStats * |
in_phy_stats, |
|
|
Stats * |
in_stats_manager |
|
) |
| |
◆ ~DoDemul()
◆ Launch()
Do demodulation task for a block of subcarriers (demul_block_size)
- Parameters
-
tid | task thread index, used for selecting data_gather_buffer and task ptok |
offset | offset of the first subcarrier in the block in data_buffer_ Buffers: data_buffer_, data_gather_buffer_, precoder_buffer_, equal_buffer_, demod_hard_buffer_ Input buffer: data_buffer_, precoder_buffer_ Output buffer: demod_hard_buffer_ Intermediate buffer: data_gather_buffer, equal_buffer_ Offsets: data_buffer_: dim1: frame index
- # of data symbols per frame + data symbol index dim2: transpose block index * block size * # of antennas + antenna index * block size data_gather_buffer: dim1: task thread index dim2: antenna index precoder_buffer_: dim1: frame index * FFT size + subcarrier index in the current frame equal_buffer_, demul_buffer: dim1: frame index * # of data symbols per frame + data symbol index dim2: subcarrier index * # of users Event offset: offset Description:
- for each subcarrier in the block, block-wisely copy data from data_buffer_ to data_gather_buffer_
- perform equalization with data and percoder matrixes
- perform demodulation on equalized data matrix
- add an event to the message queue to infrom main thread the completion of this task
|
Reimplemented from Doer.
◆ data_buffer_
◆ data_gather_buffer_
Intermediate buffer to gather raw data. Size = subcarriers per cacheline times number of antennas
◆ demod_buffers_
◆ duration_stat_
◆ equal_buffer_
◆ equaled_buffer_temp_
◆ equaled_buffer_temp_transposed_
◆ phy_stats_
◆ ue_num_simd256_
int DoDemul::ue_num_simd256_ |
|
private |
◆ ue_pilot_data_
arma::cx_fmat DoDemul::ue_pilot_data_ |
|
private |
◆ ue_spec_pilot_buffer_
◆ ul_beam_matrices_
The documentation for this class was generated from the following files: