23 #ifndef _GRATSCSYMBOLMAPPER_H_
24 #define _GRATSCSYMBOLMAPPER_H_
27 #include <VrInterpolatingSigProcNoWork.h>
29 #include <gnuradio/blocks/nco.h>
42 :
public VrInterpolatingSigProcNoWork<atsc_data_segment, oType> {
50 const char *
name () {
return "GrAtscSymbolMapper"; }
52 int work (VrSampleRange output,
void *ao[],
53 VrSampleRange inputs[],
void *ai[]);
63 VrSampleRange inputs[],
void *ai[])
66 oType *out = ((oType **) ao)[0];
68 assert ((output.size % INTERP_FACTOR) == 0);
70 static const float pilot_add = 1.25;
71 static const float map[8] = {
83 unsigned int nsegs = output.size / INTERP_FACTOR;
85 for (
unsigned int n = 0; n < nsegs; n++){
86 unsigned char *symbol = in[n].
data;
89 out[oo++] = (oType) map[symbol[i] & 0x7];
93 assert (oo == output.size);
take atsc_data_segments and map them to symbols.
Definition: GrAtscSymbolMapper.h:41
static const int ATSC_DATA_SEGMENT_LENGTH
Definition: consts.h:33
unsigned char data[ATSC_DATA_SEGMENT_LENGTH]
Definition: gr-atsc/include/gnuradio/atsc/types.h:201
const char * name()
Definition: GrAtscSymbolMapper.h:50
GrAtscSymbolMapper()
Definition: GrAtscSymbolMapper.h:45
static const int INTERP_FACTOR
Definition: GrAtscSymbolMapper.h:56
PMT_API pmt_t map(pmt_t proc(const pmt_t &), pmt_t list)
Apply proc element-wise to the elements of list and returns a list of the results, in order.
int work(VrSampleRange output, void *ao[], VrSampleRange inputs[], void *ai[])
Definition: GrAtscSymbolMapper.h:62
contains 832 3 bit symbols. The low 3 bits in the byte hold the symbol.
Definition: gr-atsc/include/gnuradio/atsc/types.h:197
~GrAtscSymbolMapper()
Definition: GrAtscSymbolMapper.h:48