5#include <gnuradio/gr_complex.h>
6#include <boost/variant.hpp>
19 const int default_greymap_qam16[16] = {2,6,14,10,3,7,15,11,1,5,13,9,0,4,12,8};
20 const int default_greymap_qam64[64] = {0,32,8,40,3,35,11,43,48,16,56,24,51,19,59,27,12,44,4,36,15,47,7,39,60,28,52,20,63,31,55,23,2,34,10,42,1,33,9,41,50,18,58,26,49,17,57,25,14,46,6,38,13,45,5,37,62,30,54,22,61,29,53,21};
36 void map(
const uint8_t *in, gr_complex* out,
int nsymbols, uint16_t mapidx=0);
37 void map(
const float *in, gr_complex* out,
int nsymbols, uint16_t mapidx=0);
38 void demap_hard(
const gr_complex* in, uint8_t *out,
int nsymbols);
39 void demap_soft(
const gr_complex* in,
float *out,
int nsymbols);
44 std::vector<std::vector<gr_complex> > d_wmaps;
45 std::vector<std::vector<gr_complex> > d_mappings;
49 uint16_t d_mapidx_max;
50 const std::vector<int> d_symbol_values;
51 std::vector<int> d_symbol_values_rev;
57 virtual void _demap_hard(
const gr_complex* in, uint8_t *out,
int nsymbols) = 0;
58 virtual void _demap_soft(
const gr_complex* in,
float *out,
int nsymbols) = 0;
61 template <modtype_t T>
class demap_impl :
public demap_base {
63 const constellation *c;
65 demap_impl(
const constellation *_c);
66 void _demap_hard(
const gr_complex* in, uint8_t *out,
int nsymbols);
67 void _demap_soft(
const gr_complex* in,
float *out,
int nsymbols);
70 demap_base* d_demapper;
#define MAPPER_API
Definition: api.h:30
Definition: constellation.h:33
void map(const uint8_t *in, gr_complex *out, int nsymbols, uint16_t mapidx=0)
void map(const float *in, gr_complex *out, int nsymbols, uint16_t mapidx=0)
void demap_hard(const gr_complex *in, uint8_t *out, int nsymbols)
constellation(modtype_t modtype, std::vector< int > symbol_values, gr_complex scalar=gr_complex(1, 0))
void demap_soft(const gr_complex *in, float *out, int nsymbols)
<+description of block+>
Definition: mapper.h:38
const int default_greymap_qam16[16]
Definition: constellation.h:19
modtype_t
Definition: constellation.h:23
@ QAM16
Definition: constellation.h:29
@ P2BPSK
Definition: constellation.h:25
@ QAM64
Definition: constellation.h:30
@ PSK8
Definition: constellation.h:27
@ BPSK
Definition: constellation.h:24
@ PAM4
Definition: constellation.h:28
@ QPSK
Definition: constellation.h:26
const int default_greymap_pam4[4]
Definition: constellation.h:18
const int default_greymap_bpsk[2]
Definition: constellation.h:14
const int default_greymap_psk8[8]
Definition: constellation.h:17
const int default_greymap_qam64[64]
Definition: constellation.h:20
const int default_greymap_qpsk[4]
Definition: constellation.h:15
Definition: constellation.h:11