GNU Radio Manual and C++ API Reference  3.7.7
The Free & Open Software Radio Ecosystem
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
dvb_ldpc_bb_impl.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2015 Free Software Foundation, Inc.
4  *
5  * This is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3, or (at your option)
8  * any later version.
9  *
10  * This software is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this software; see the file COPYING. If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street,
18  * Boston, MA 02110-1301, USA.
19  */
20 
21 #ifndef INCLUDED_DTV_DVB_LDPC_BB_IMPL_H
22 #define INCLUDED_DTV_DVB_LDPC_BB_IMPL_H
23 
25 #include "dvb_defines.h"
26 
27 typedef struct{
32 
33 namespace gr {
34  namespace dtv {
35 
37  {
38  private:
39  unsigned int frame_size;
40  unsigned int frame_size_real;
41  unsigned int signal_constellation;
42  unsigned int nbch;
43  unsigned int code_rate;
44  unsigned int q_val;
45  unsigned int table_length;
46  unsigned int dvb_standard;
47  void ldpc_lookup_generate(void);
48  ldpc_encode_table ldpc_encode;
49 
50  const static int ldpc_tab_1_4N[45][13];
51  const static int ldpc_tab_1_3N[60][13];
52  const static int ldpc_tab_2_5N[72][13];
53  const static int ldpc_tab_1_2N[90][9];
54  const static int ldpc_tab_3_5N[108][13];
55  const static int ldpc_tab_2_3N_DVBT2[120][14];
56  const static int ldpc_tab_2_3N_DVBS2[120][14];
57  const static int ldpc_tab_3_4N[135][13];
58  const static int ldpc_tab_4_5N[144][12];
59  const static int ldpc_tab_5_6N[150][14];
60  const static int ldpc_tab_8_9N[160][5];
61  const static int ldpc_tab_9_10N[162][5];
62 
63  const static int ldpc_tab_1_4S[9][13];
64  const static int ldpc_tab_1_3S[15][13];
65  const static int ldpc_tab_2_5S[18][13];
66  const static int ldpc_tab_1_2S[20][9];
67  const static int ldpc_tab_3_5S_DVBT2[27][13];
68  const static int ldpc_tab_3_5S_DVBS2[27][13];
69  const static int ldpc_tab_2_3S[30][14];
70  const static int ldpc_tab_3_4S[33][13];
71  const static int ldpc_tab_4_5S[35][4];
72  const static int ldpc_tab_5_6S[37][14];
73  const static int ldpc_tab_8_9S[40][5];
74 
75  const static int ldpc_tab_13_45N[52][13];
76  const static int ldpc_tab_9_20N[81][13];
77  const static int ldpc_tab_11_20N[99][14];
78  const static int ldpc_tab_26_45N[104][14];
79  const static int ldpc_tab_28_45N[112][12];
80  const static int ldpc_tab_23_36N[115][12];
81  const static int ldpc_tab_25_36N[125][12];
82  const static int ldpc_tab_13_18N[130][11];
83  const static int ldpc_tab_7_9N[140][13];
84  const static int ldpc_tab_90_180N[90][19];
85  const static int ldpc_tab_96_180N[96][21];
86  const static int ldpc_tab_100_180N[100][17];
87  const static int ldpc_tab_104_180N[104][19];
88  const static int ldpc_tab_116_180N[116][19];
89  const static int ldpc_tab_124_180N[124][17];
90  const static int ldpc_tab_128_180N[128][16];
91  const static int ldpc_tab_132_180N[132][16];
92  const static int ldpc_tab_135_180N[135][15];
93  const static int ldpc_tab_140_180N[140][16];
94  const static int ldpc_tab_154_180N[154][14];
95  const static int ldpc_tab_18_30N[108][20];
96  const static int ldpc_tab_20_30N[120][17];
97  const static int ldpc_tab_22_30N[132][16];
98 
99  const static int ldpc_tab_11_45S[11][11];
100  const static int ldpc_tab_4_15S[12][22];
101  const static int ldpc_tab_14_45S[14][13];
102  const static int ldpc_tab_7_15S[21][25];
103  const static int ldpc_tab_8_15S[24][22];
104  const static int ldpc_tab_26_45S[26][14];
105  const static int ldpc_tab_32_45S[32][13];
106 
107  public:
108  dvb_ldpc_bb_impl(dvb_standard_t standard, dvb_framesize_t framesize, dvb_code_rate_t rate, dvb_constellation_t constellation);
110 
111  void forecast (int noutput_items, gr_vector_int &ninput_items_required);
112 
113  int general_work(int noutput_items,
114  gr_vector_int &ninput_items,
115  gr_vector_const_void_star &input_items,
116  gr_vector_void_star &output_items);
117  };
118 
119  } // namespace dtv
120 } // namespace gr
121 
122 #endif /* INCLUDED_DTV_DVB_LDPC_BB_IMPL_H */
123 
#define LDPC_ENCODE_TABLE_LENGTH
Definition: dvb_defines.h:56
dvb_constellation_t
Definition: dvb_config.h:80
Encodes a LDPC (Low-Density Parity-Check) FEC.Input: Variable length FEC baseband frames with appende...
Definition: dvb_ldpc_bb.h:38
std::vector< const void * > gr_vector_const_void_star
Definition: gnuradio-runtime/include/gnuradio/types.h:38
void forecast(int noutput_items, gr_vector_int &ninput_items_required)
Estimate input requirements given output request.
Definition: dvb_ldpc_bb_impl.h:27
std::vector< void * > gr_vector_void_star
Definition: gnuradio-runtime/include/gnuradio/types.h:37
std::vector< int > gr_vector_int
Definition: gnuradio-runtime/include/gnuradio/types.h:33
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
compute output items from input items
Include this header to use the message passing features.
Definition: logger.h:129
dvb_standard_t
Definition: dvb_config.h:26
Definition: dvb_ldpc_bb_impl.h:36
dvb_ldpc_bb_impl(dvb_standard_t standard, dvb_framesize_t framesize, dvb_code_rate_t rate, dvb_constellation_t constellation)
int table_length
Definition: dvb_ldpc_bb_impl.h:28
dvb_framesize_t
Definition: dvb_config.h:75
dvb_code_rate_t
Definition: dvb_config.h:31