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
dvbt2_p1insertion_cc_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_DVBT2_P1INSERTION_CC_IMPL_H
22 #define INCLUDED_DTV_DVBT2_P1INSERTION_CC_IMPL_H
23 
25 #include <gnuradio/fft/fft.h>
26 #include "dvb/dvb_defines.h"
27 
28 namespace gr {
29  namespace dtv {
30 
32  {
33  private:
34  int fft_size;
35  int guard_interval;
36  int frame_items;
37  int insertion_items;
38  int N_P2;
39  int p1_randomize[384];
40  int modulation_sequence[384];
41  int dbpsk_modulation_sequence[385];
42  gr_complex p1_freq[1024];
43  gr_complex p1_freqshft[1024];
44  gr_complex p1_time[1024];
45  gr_complex p1_timeshft[1024];
46  void init_p1_randomizer(void);
47 
48  int show_levels;
49  float real_positive;
50  float real_negative;
51  float imag_positive;
52  float imag_negative;
53  float real_positive_threshold;
54  float real_negative_threshold;
55  float imag_positive_threshold;
56  float imag_negative_threshold;
57  int real_positive_threshold_count;
58  int real_negative_threshold_count;
59  int imag_positive_threshold_count;
60  int imag_negative_threshold_count;
61 
62  fft::fft_complex *p1_fft;
63  int p1_fft_size;
64 
65  const static int p1_active_carriers[384];
66  const static unsigned char s1_modulation_patterns[8][8];
67  const static unsigned char s2_modulation_patterns[16][32];
68 
69  public:
70  dvbt2_p1insertion_cc_impl(dvbt2_extended_carrier_t carriermode, dvbt2_fftsize_t fftsize, dvbt2_guardinterval_t guardinterval, int numdatasyms, dvbt2_preamble_t preamble, dvbt2_showlevels_t showlevels, float vclip);
72 
73  void forecast (int noutput_items, gr_vector_int &ninput_items_required);
74 
75  int general_work(int noutput_items,
76  gr_vector_int &ninput_items,
77  gr_vector_const_void_star &input_items,
78  gr_vector_void_star &output_items);
79  };
80 
81  } // namespace dtv
82 } // namespace gr
83 
84 #endif /* INCLUDED_DTV_DVBT2_P1INSERTION_CC_IMPL_H */
85 
FFT: complex in, complex out.
Definition: fft.h:71
void forecast(int noutput_items, gr_vector_int &ninput_items_required)
Estimate input requirements given output request.
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
std::vector< const void * > gr_vector_const_void_star
Definition: gnuradio-runtime/include/gnuradio/types.h:38
dvbt2_fftsize_t
Definition: dvbt2_config.h:55
dvbt2_p1insertion_cc_impl(dvbt2_extended_carrier_t carriermode, dvbt2_fftsize_t fftsize, dvbt2_guardinterval_t guardinterval, int numdatasyms, dvbt2_preamble_t preamble, dvbt2_showlevels_t showlevels, float vclip)
std::vector< void * > gr_vector_void_star
Definition: gnuradio-runtime/include/gnuradio/types.h:37
std::complex< float > gr_complex
Definition: gr_complex.h:27
std::vector< int > gr_vector_int
Definition: gnuradio-runtime/include/gnuradio/types.h:33
Definition: dvbt2_p1insertion_cc_impl.h:31
Include this header to use the message passing features.
Definition: logger.h:129
dvbt2_preamble_t
Definition: dvbt2_config.h:47
Inserts a P1 symbol.Input: OFDM T2 frame. Output: OFDM T2 frame with P1 symbol.
Definition: dvbt2_p1insertion_cc.h:38
dvbt2_extended_carrier_t
Definition: dvbt2_config.h:42
dvbt2_guardinterval_t
Definition: dvbt2_config.h:67
dvbt2_showlevels_t
Definition: dvbt2_config.h:123