23 #ifndef _CONVOLUTIONAL_INTERLEAVER_H_ 24 #define _CONVOLUTIONAL_INTERLEAVER_H_ 34 template<
class symbol_type>
60 void transform (symbol_type *out,
const symbol_type *in,
int nsymbols);
66 std::vector<interleaver_fifo<symbol_type> *>
m_fifo;
69 template<
class symbol_type>
76 assert (fifo_size_incr >= 1);
84 for (
int i = 0; i < nbanks; i++)
88 for (
int i = 0; i < nbanks; i++)
94 template<
class symbol_type>
101 template<
class symbol_type>
void 109 template<
class symbol_type>
int 116 template<
class symbol_type>
void 118 const symbol_type *in,
122 for (
int i = 0; i < nsymbols; i++)
int end_to_end_delay()
return end to end delay in symbols (delay through concatenated interleaver / deinterleaver) ...
Definition: convolutional_interleaver.h:110
template class for generic convolutional interleaver
Definition: convolutional_interleaver.h:35
int m_nbanks
Definition: convolutional_interleaver.h:64
template class for interleaver fifo
Definition: interleaver_fifo.h:35
void reset()
reset interleaver (flushes contents and resets commutator)
Definition: convolutional_interleaver.h:102
void sync()
sync interleaver (resets commutator, but doesn't flush fifos)
Definition: convolutional_interleaver.h:45
int m_fifo_size_incr
Definition: convolutional_interleaver.h:65
int m_commutator
Definition: convolutional_interleaver.h:63
convolutional_interleaver(bool interleave_p, int nbanks, int fifo_size_incr)
Definition: convolutional_interleaver.h:70
symbol_type transform(symbol_type input)
transform a single symbol
Definition: convolutional_interleaver.h:51
virtual ~convolutional_interleaver()
Definition: convolutional_interleaver.h:95
std::vector< interleaver_fifo< symbol_type > * > m_fifo
Definition: convolutional_interleaver.h:66