Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

atsc_viterbi_decoder Class Reference

fancy, schmancy 12-way interleaved viterbi decoder for ATSC More...

#include <atsc_viterbi_decoder.h>

List of all members.

Public Member Functions

 atsc_viterbi_decoder ()
 ~atsc_viterbi_decoder ()
void reset ()
 reset all decoder states
void decode (atsc_mpeg_packet_rs_encoded out[NCODERS], const atsc_soft_data_segment in[NCODERS])

Static Public Attributes

static const int NCODERS = 12

Protected Types

typedef interleaver_fifo<
unsigned char > 
fifo_t

Protected Member Functions

void decode_helper (unsigned char out[OUTPUT_SIZE], const float in[INPUT_SIZE])

Protected Attributes

single_viterbi_t viterbi [NCODERS]
fifo_tfifo [NCODERS]
bool debug

Static Protected Attributes

static const int SEGMENT_SIZE = ATSC_MPEG_RS_ENCODED_LENGTH
static const int OUTPUT_SIZE = (SEGMENT_SIZE * 12)
static const int INPUT_SIZE = (ATSC_DATA_SEGMENT_LENGTH * 12)


Detailed Description

fancy, schmancy 12-way interleaved viterbi decoder for ATSC


Member Typedef Documentation

typedef interleaver_fifo<unsigned char> atsc_viterbi_decoder::fifo_t [protected]
 


Constructor & Destructor Documentation

atsc_viterbi_decoder::atsc_viterbi_decoder  ) 
 

atsc_viterbi_decoder::~atsc_viterbi_decoder  ) 
 


Member Function Documentation

void atsc_viterbi_decoder::decode atsc_mpeg_packet_rs_encoded  out[NCODERS],
const atsc_soft_data_segment  in[NCODERS]
 

Take 12 data segments of soft decisions (floats) and produce 12 RS encoded data segments. We work in groups of 12 because that's the smallest number of segments that composes a single full cycle of the decoder mux.

void atsc_viterbi_decoder::decode_helper unsigned char  out[OUTPUT_SIZE],
const float  in[INPUT_SIZE]
[protected]
 

void atsc_viterbi_decoder::reset  ) 
 

reset all decoder states


Member Data Documentation

bool atsc_viterbi_decoder::debug [protected]
 

fifo_t* atsc_viterbi_decoder::fifo[NCODERS] [protected]
 

const int atsc_viterbi_decoder::INPUT_SIZE = (ATSC_DATA_SEGMENT_LENGTH * 12) [static, protected]
 

const int atsc_viterbi_decoder::NCODERS = 12 [static]
 

const int atsc_viterbi_decoder::OUTPUT_SIZE = (SEGMENT_SIZE * 12) [static, protected]
 

const int atsc_viterbi_decoder::SEGMENT_SIZE = ATSC_MPEG_RS_ENCODED_LENGTH [static, protected]
 

single_viterbi_t atsc_viterbi_decoder::viterbi[NCODERS] [protected]
 


The documentation for this class was generated from the following files:
Generated on Tue Mar 15 23:46:37 2005 for GNU Radio by  doxygen 1.4.0