GNU Radio's DAB Package
time_deinterleave_ff_impl.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2017 by Moritz Luca Schmid, Communications Engineering Lab (CEL) / Karlsruhe Institute of Technology (KIT).
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_DAB_TIME_DEINTERLEAVE_FF_IMPL_H
22 #define INCLUDED_DAB_TIME_DEINTERLEAVE_FF_IMPL_H
23 
25 
26 namespace gr {
27  namespace dab {
28 /*! \brief applies time deinterleaving to a vector (convolutional deinterleaving -> descrambling and delay)
29  *
30  * applies convolutional deinterleaving to a vector with its max[vector_length] followers, the scrambling_vector describes which vector element comes from which follower
31  * delays the elements of a max delay of d_scrambling_length-1
32  * more information to the interleaving rules on ETSI EN 300 401 chapter 12
33  * this deinterleaver restores a bitstream interleaved by the block time_interleave_bb
34  *
35  * @param vector_length length of input vectors
36  * @param scrambling_vector vector with scrambling parameters (see DAB standard p.138)
37  *
38  */
40  {
41  private:
42  int d_scrambling_length, d_vector_length;
43  std::vector<unsigned char> d_scrambling_vector;
44 
45  public:
46  time_deinterleave_ff_impl(int vector_length, const std::vector<unsigned char> &scrambling_vector);
48 
49  // Where all the action really happens
50  int work(int noutput_items,
51  gr_vector_const_void_star &input_items,
52  gr_vector_void_star &output_items);
53  };
54 
55  } // namespace dab
56 } // namespace gr
57 
58 #endif /* INCLUDED_DAB_TIME_DEINTERLEAVE_FF_IMPL_H */
applies time deinterleaving to a vector (convolutional deinterleaving -> descrambling and delay) ...
Definition: time_deinterleave_ff_impl.h:39
time_deinterleave_ff_impl(int vector_length, const std::vector< unsigned char > &scrambling_vector)
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
applies time deinterleaving to a vector
Definition: time_deinterleave_ff.h:39
Definition: complex_to_interleaved_float_vcf.h:28