GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
dvbt_symbol_inner_interleaver.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2015 Free Software Foundation, Inc.
4  *
5  * SPDX-License-Identifier: GPL-3.0-or-later
6  *
7  */
8 
9 #ifndef INCLUDED_DTV_DVBT_SYMBOL_INNER_INTERLEAVER_H
10 #define INCLUDED_DTV_DVBT_SYMBOL_INNER_INTERLEAVER_H
11 
12 #include <gnuradio/block.h>
13 #include <gnuradio/dtv/api.h>
15 
16 namespace gr {
17 namespace dtv {
18 
19 /*!
20  * \brief Symbol interleaver.
21  * \ingroup dtv
22  *
23  * ETSI EN 300 744 Clause 4.3.4.2 \n
24  * One block is 12 groups x 126 datawords = 1512 datawords.
25  *
26  * Data Input format: \n
27  * 000000I0I1 - QPSK. \n
28  * 0000I0I1I2I3 - 16QAM. \n
29  * 00I0I1I2I3I4I5 - 64QAM. \n
30  * Data Output format: \n
31  * 000000Y0Y1 - QPSK. \n
32  * 0000Y0Y1Y2Y3 - 16QAM. \n
33  * 00Y0Y1Y2Y3Y4Y5 - 64QAM.
34  */
36 {
37 public:
38  typedef std::shared_ptr<dvbt_symbol_inner_interleaver> sptr;
39 
40  /*!
41  * \brief Create a Symbol interleaver.
42  *
43  * \param ninput length of input stream. \n
44  * \param transmission transmission mode used \n
45  * \param direction interleave or deinterleave. \n
46  */
47  static sptr make(int ninput, dvbt_transmission_mode_t transmission, int direction);
48 };
49 
50 } // namespace dtv
51 } // namespace gr
52 
53 #endif /* INCLUDED_DTV_DVBT_SYMBOL_INNER_INTERLEAVER_H */
The abstract base class for all 'terminal' processing blocks.
Definition: gnuradio-runtime/include/gnuradio/block.h:63
Symbol interleaver.
Definition: dvbt_symbol_inner_interleaver.h:36
static sptr make(int ninput, dvbt_transmission_mode_t transmission, int direction)
Create a Symbol interleaver.
std::shared_ptr< dvbt_symbol_inner_interleaver > sptr
Definition: dvbt_symbol_inner_interleaver.h:38
#define DTV_API
Definition: gr-dtv/include/gnuradio/dtv/api.h:18
dvbt_transmission_mode_t
Definition: dvbt_config.h:21
GNU Radio logging wrapper.
Definition: basic_block.h:29