23#ifndef _CONVOLUTIONAL_INTERLEAVER_H_
24#define _CONVOLUTIONAL_INTERLEAVER_H_
34template <
class symbol_type>
62 void transform(symbol_type* out,
const symbol_type* in,
int nsymbols);
68 std::vector<interleaver_fifo<symbol_type>*>
m_fifo;
71template <
class symbol_type>
77 assert(fifo_size_incr >= 1);
80 m_fifo_size_incr = fifo_size_incr;
82 m_fifo.resize(nbanks);
85 for (
int i = 0; i < nbanks; i++)
88 for (
int i = 0; i < nbanks; i++)
89 m_fifo[nbanks - 1 - i] =
95template <
class symbol_type>
98 for (
int i = 0; i < m_nbanks; i++)
102template <
class symbol_type>
106 for (
int i = 0; i < m_nbanks; i++)
110template <
class symbol_type>
113 int m = m_nbanks * m_fifo_size_incr;
114 return m * (m_nbanks - 1);
117template <
class symbol_type>
119 const symbol_type* in,
123 for (
int i = 0; i < nsymbols; i++)
124 out[i] = transform(in[i]);
template class for generic convolutional interleaver
Definition: convolutional_interleaver.h:36
int m_commutator
Definition: convolutional_interleaver.h:65
int m_nbanks
Definition: convolutional_interleaver.h:66
virtual ~convolutional_interleaver()
Definition: convolutional_interleaver.h:96
int m_fifo_size_incr
Definition: convolutional_interleaver.h:67
void reset()
reset interleaver (flushes contents and resets commutator)
Definition: convolutional_interleaver.h:103
int end_to_end_delay()
return end to end delay in symbols (delay through concatenated interleaver / deinterleaver)
Definition: convolutional_interleaver.h:111
std::vector< interleaver_fifo< symbol_type > * > m_fifo
Definition: convolutional_interleaver.h:68
convolutional_interleaver(bool interleave_p, int nbanks, int fifo_size_incr)
Definition: convolutional_interleaver.h:72
void sync()
sync interleaver (resets commutator, but doesn't flush fifos)
Definition: convolutional_interleaver.h:45
symbol_type transform(symbol_type input)
transform a single symbol
Definition: convolutional_interleaver.h:52
void transform(symbol_type *out, const symbol_type *in, int nsymbols)
transform a bunch of symbols
Definition: convolutional_interleaver.h:118
template class for interleaver fifo
Definition: interleaver_fifo.h:36