Agora  1.2.0
Agora project
doifft.h
Go to the documentation of this file.
1 
5 #ifndef DOIFFT_H_
6 #define DOIFFT_H_
7 
8 #include "common_typedef_sdk.h"
9 #include "config.h"
10 #include "doer.h"
11 #include "memory_manage.h"
12 #include "mkl_dfti.h"
13 #include "stats.h"
14 
15 class DoIFFT : public Doer {
16  public:
17  DoIFFT(Config* in_config, int in_tid, Table<complex_float>& in_dl_ifft_buffer,
18  char* in_dl_socket_buffer, Stats* in_stats_manager);
19  ~DoIFFT() override;
20 
44  EventData Launch(size_t tag) override;
45 
46  private:
50  DFTI_DESCRIPTOR_HANDLE mkl_handle_;
51  float* ifft_out_; // Buffer for IFFT output
54 };
55 
56 #endif // DOIFFT_H_
FrameStats::GetDLSymbolIdx
size_t GetDLSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:152
complex_float
Definition: test_transpose.cc:22
DoIFFT::ifft_shift_tmp_
complex_float * ifft_shift_tmp_
Definition: doifft.h:52
Config::SampsPerSymbol
size_t SampsPerSymbol() const
Definition: config.h:234
kPrintIfftStats
static constexpr bool kPrintIfftStats
Definition: doifft.cc:16
DoIFFT::mkl_handle_
DFTI_DESCRIPTOR_HANDLE mkl_handle_
Definition: doifft.h:50
fmt::v8::printf
auto printf(const S &fmt, const T &... args) -> int
Definition: printf.h:631
datatype_conversion.h
kUseOutOfPlaceIFFT
static constexpr bool kUseOutOfPlaceIFFT
Definition: doifft.cc:14
Config::OfdmTxZeroPrefix
size_t OfdmTxZeroPrefix() const
Definition: config.h:211
doifft.h
Declaration file for the DoIFFT class.
DoIFFT::ifft_out_
float * ifft_out_
Definition: doifft.h:51
Stats
Definition: stats.h:63
gen_tag_t::symbol_id_
uint16_t symbol_id_
Definition: message.h:33
DurationStat::task_duration_
std::array< size_t, kMaxStatBreakdown > task_duration_
Definition: stats.h:23
Config::CpLen
size_t CpLen() const
Definition: config.h:46
concurrent_queue_wrapper.h
Agora_memory::PaddedAlignedAlloc
void * PaddedAlignedAlloc(Alignment_t alignment, size_t size)
Definition: memory_manage.cc:15
Packet::data_
short data_[]
Definition: message.h:173
DoIFFT::duration_stat_
DurationStat * duration_stat_
Definition: doifft.h:49
memory_manage.h
Config::BsAntNum
size_t BsAntNum() const
Definition: config.h:35
DoIFFT
Definition: doifft.h:15
Config::Frame
const FrameStats & Frame() const
Definition: config.h:340
Doer
Definition: doer.h:17
DoIFFT::dl_socket_buffer_
char * dl_socket_buffer_
Definition: doifft.h:48
Doer::tid_
int tid_
Definition: doer.h:65
Table< complex_float >
DoIFFT::DoIFFT
DoIFFT(Config *in_config, int in_tid, Table< complex_float > &in_dl_ifft_buffer, char *in_dl_socket_buffer, Stats *in_stats_manager)
Definition: doifft.cc:18
gen_tag_t
Definition: message.h:22
fmt::v8::detail::abs
constexpr std::chrono::duration< Rep, Period > abs(std::chrono::duration< Rep, Period > d)
Definition: chrono.h:1488
kDebugPrintInTask
static constexpr bool kDebugPrintInTask
Definition: symbols.h:201
stats.h
Declaration file for the Stats class. Includes definations for DurationStat and FrameSummery types.
EventData
Definition: message.h:142
DurationStat::task_count_
size_t task_count_
Definition: stats.h:24
kPrintIFFTOutput
static constexpr bool kPrintIFFTOutput
Definition: doifft.cc:12
gen_tag_t::ant_id_
uint16_t ant_id_
Definition: message.h:38
Config::DlPacketLength
size_t DlPacketLength() const
Definition: config.h:242
CommsLib::FFTShift
static std::vector< std::complex< float > > FFTShift(const std::vector< std::complex< float >> &in)
Definition: comms-lib.cc:581
i
for i
Definition: generate_data.m:107
Config::OfdmCaNum
size_t OfdmCaNum() const
Definition: config.h:45
Catch::cout
std::ostream & cout()
u
Plot Rx waveform for u
Definition: inspect_single_frame.m:108
comms-lib.h
Communications Library: a) Generate pilot/preamble sequences b) OFDM modulation.
DoIFFT::Launch
EventData Launch(size_t tag) override
Definition: doifft.cc:48
Agora_memory::Alignment_t::kAlign64
@ kAlign64
Packet
Definition: message.h:164
kMemcpyBeforeIFFT
static constexpr bool kMemcpyBeforeIFFT
Definition: doifft.cc:15
DoerType::kIFFT
@ kIFFT
Config::OfdmDataStart
size_t OfdmDataStart() const
Definition: config.h:48
DoIFFT::~DoIFFT
~DoIFFT() override
Definition: doifft.cc:42
DurationStat
Definition: stats.h:22
Doer::cfg_
Config * cfg_
Definition: doer.h:64
kPrintSocketOutput
static constexpr bool kPrintSocketOutput
Definition: doifft.cc:13
GetTime::WorkerRdtsc
static size_t WorkerRdtsc()
Definition: gettime.h:34
Config
Definition: config.h:26
doer.h
Declaration file for the Doer class. The is the base class for all agora doers.
AGORA_LOG_WARN
#define AGORA_LOG_WARN(...)
Definition: logger.h:53
Config::GetTotalDataSymbolIdxDl
size_t GetTotalDataSymbolIdxDl(size_t frame_id, size_t symbol_idx_dl) const
Definition: config.h:428
SimdConvertFloatToShort
static void SimdConvertFloatToShort(const float *in_buf, short *out_buf, size_t n_elems, size_t n_prefix=0, float scale_down_factor=1.0f)
Definition: datatype_conversion.h:266
config.h
Declaration file for the configuration class which importants json configuration values into class va...
EventType::kIFFT
@ kIFFT
gen_tag_t::frame_id_
uint32_t frame_id_
Definition: message.h:32
DoIFFT::dl_ifft_buffer_
Table< complex_float > & dl_ifft_buffer_
Definition: doifft.h:47
Config::OfdmDataStop
size_t OfdmDataStop() const
Definition: config.h:50
Stats::GetDurationStat
DurationStat * GetDurationStat(DoerType doer_type, size_t thread_id)
Definition: stats.h:162
DoIFFT::ifft_scale_factor_
float ifft_scale_factor_
Definition: doifft.h:53