Agora
1.2.0
Agora project
|
Go to the documentation of this file.
10 #include "common_typedef_sdk.h"
16 #define BPSK_LEVEL M_SQRT1_2
17 #define QPSK_LEVEL M_SQRT1_2
19 #define SCALE_BYTE_CONV_QPSK 20
20 #define SCALE_BYTE_CONV_QAM16 100
21 #define SCALE_BYTE_CONV_QAM64 100
22 #define SCALE_BYTE_CONV_QAM256 100
23 #define QAM16_THRESHOLD (2 / sqrt(10))
24 #define QAM64_THRESHOLD_1 (2 / sqrt(42))
25 #define QAM64_THRESHOLD_2 (4 / sqrt(42))
26 #define QAM64_THRESHOLD_3 (6 / sqrt(42))
27 #define QAM256_THRESHOLD_1 (2 / sqrt(170))
28 #define QAM256_THRESHOLD_2 (4 / sqrt(170))
29 #define QAM256_THRESHOLD_3 (6 / sqrt(170))
30 #define QAM256_THRESHOLD_4 (8 / sqrt(170))
31 #define QAM256_THRESHOLD_5 (10 / sqrt(170))
32 #define QAM256_THRESHOLD_6 (12 / sqrt(170))
33 #define QAM256_THRESHOLD_7 (14 / sqrt(170))
36 {
"BPSK", 1}, {
"QPSK", 2}, {
"16QAM", 4},
37 {
"64QAM", 6}, {
"256QAM", 8}, {
"1024QAM", 10}};
42 return std::string(
"BPSK");
44 return std::string(
"QPSK");
46 return std::string(
"16QAM");
48 return std::string(
"64QAM");
50 return std::string(
"256QAM");
52 return std::string(
"1024QAM");
54 return std::string(
"UNKNOWN!");
92 void Demod256qamHardAvx512(
float* vec_in, uint8_t* vec_out,
int num);
99 void Demod256qamSoftAvx512(
const float* vec_in, int8_t* llr,
int num);
103 #endif // MODULATION_H_
class RadioSocket __attribute__
void InitQam64Table(Table< complex_float > &table)
Definition: modulation.cc:140
void Demod64qamHardSse(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:732
void Demod256qamHardLoop(const float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:1269
void DemodQpskHardLoop(const float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:264
GeneratorWrapper< std::tuple< Ts... > > table(std::initializer_list< std::tuple< typename std::decay< Ts >::type... >> tuples)
Definition: catch.hpp:4052
Definition: test_transpose.cc:22
bool IsAllocated()
Definition: memory_manage.h:82
#define QAM64_THRESHOLD_3
Definition: modulation.h:26
#define QAM64_THRESHOLD_2
Definition: modulation.h:25
auto printf(const S &fmt, const T &... args) -> int
Definition: printf.h:631
#define SCALE_BYTE_CONV_QAM256
Definition: modulation.h:22
void ModSimd(uint8_t *in, complex_float *&out, size_t len, Table< complex_float > &mod_table)
Definition: modulation.cc:218
void DemodQpskHardLoop(const float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:264
void Demod64qamHardAvx2(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:921
void Demod16qamHardAvx2(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:472
void Demod64qamSoftLoop(const float *vec_in, int8_t *llr, int num)
Definition: modulation_srslte.cc:117
void ModSimd(uint8_t *in, complex_float *&out, size_t len, Table< complex_float > &mod_table)
Definition: modulation.cc:218
void Demod256qamSoftSse(const float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:2201
#define QAM256_THRESHOLD_7
Definition: modulation.h:33
void Demod256qamHardSse(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:1329
void Demod16qamHardLoop(const float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:322
void Demod64qamHardLoop(const float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:699
void Demod256qamSoftLoop(const float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:2157
complex_float ModSingleUint8(uint8_t x, Table< complex_float > &mod_table)
Definition: modulation.cc:213
void Print256Epi8(__m256i var)
Definition: modulation.cc:17
#define QAM256_THRESHOLD_3
Definition: modulation.h:29
void Demod64qamSoftSse(float *vec_in, int8_t *llr, int num)
Definition: modulation_srslte.cc:131
#define SCALE_BYTE_CONV_QAM16
Definition: modulation.h:20
static constexpr size_t kSCsPerCacheline
Definition: symbols.h:312
void Demod16qamHardSse(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:345
index
Definition: parse_all_dl.m:11
void Demod64qamHardAvx2(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:921
#define QAM16_THRESHOLD
Definition: modulation.h:23
void InitModulationTable(Table< complex_float > &mod_table, size_t mod_order)
Definition: modulation.cc:42
constexpr std::chrono::duration< Rep, Period > abs(std::chrono::duration< Rep, Period > d)
Definition: chrono.h:1488
void Demod64qamSoftAvx2(float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:1103
void Demod16qamSoftAvx2(float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:601
void Demod256qamHardAvx2(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:1569
void InitQam16Table(Table< complex_float > &table)
Definition: modulation.cc:112
void Demod256qamHardSse(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:1329
void Demod16qamSoftSse(float *vec_in, int8_t *llr, int num)
Definition: modulation_srslte.cc:36
void Demod16qamSoftLoop(const float *vec_in, int8_t *llr, int num)
Definition: modulation_srslte.cc:24
#define QAM256_THRESHOLD_6
Definition: modulation.h:32
Self defined functions for message storage and passing.
#define SCALE_BYTE_CONV_QAM64
Definition: modulation.h:21
void Demod16qamHardLoop(const float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:322
uint16_t len
Definition: eth_common.h:62
#define QAM64_THRESHOLD_1
Definition: modulation.h:24
for i
Definition: generate_data.m:107
void Demod256qamHardLoop(const float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:1269
complex_float ModSingle(int x, Table< complex_float > &mod_table)
Definition: modulation.cc:209
void InitQam64Table(Table< complex_float > &qam64_table)
Definition: modulation.cc:140
void Demod16qamHardAvx2(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:472
void Demod256qamHardAvx2(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:1569
#define QAM256_THRESHOLD_5
Definition: modulation.h:31
complex_float ModSingle(int x, Table< complex_float > &mod_table)
Definition: modulation.cc:209
void Print128Epi8(__m128i var)
Definition: modulation.cc:28
void Demod16qamSoftAvx2(float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:601
complex_float ModSingleUint8(uint8_t x, Table< complex_float > &mod_table)
Definition: modulation.cc:213
void Demod64qamHardSse(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:732
void Print256Epi16(__m256i var)
Definition: modulation.cc:9
void Print256Epi8(__m256i var)
Definition: modulation.cc:17
void InitQpskTable(Table< complex_float > &qpsk_table)
Definition: modulation.cc:75
#define QAM256_THRESHOLD_1
Definition: modulation.h:27
void Demod16qamHardSse(float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:345
static std::string MapModToStr(size_t mod_order)
Definition: modulation.h:39
void InitQpskTable(Table< complex_float > &table)
Definition: modulation.cc:75
static constexpr size_t kMaxModType
Definition: symbols.h:297
void Demod256qamSoftLoop(const float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:2157
void DemodQpskSoftSse(float *x, int8_t *z, int len)
Definition: modulation_srslte.cc:245
void Demod64qamSoftAvx2(float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:1103
static const std::map< std::string, size_t > kModulStringMap
Definition: modulation.h:35
void Print256Epi32(__m256i var)
Definition: modulation.cc:3
void Demod256qamSoftAvx2(const float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:2365
void Demod256qamSoftSse(const float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:2201
void InitModulationTable(Table< complex_float > &table, size_t mod_order)
Definition: modulation.cc:42
void InitQam256Table(Table< complex_float > &table)
Definition: modulation.cc:175
void Malloc(size_t dim1, size_t dim2, Agora_memory::Alignment_t alignment)
Definition: memory_manage.h:37
#define QAM256_THRESHOLD_2
Definition: modulation.h:28
void Demod256qamSoftAvx2(const float *vec_in, int8_t *llr, int num)
Definition: modulation.cc:2365
#define QAM256_THRESHOLD_4
Definition: modulation.h:30
void InitQam16Table(Table< complex_float > &qam16_table)
Definition: modulation.cc:112
void InitQam256Table(Table< complex_float > &qam256_table)
Definition: modulation.cc:175
void Demod64qamHardLoop(const float *vec_in, uint8_t *vec_out, int num)
Definition: modulation.cc:699
result
Definition: format-inl.h:640
int mod_order
Definition: ofdmtxrx.py:397