GNU Radio's LTE Package
remove_cp_cvc_impl.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2013 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_LTE_REMOVE_CP_CVC_IMPL_H
22#define INCLUDED_LTE_REMOVE_CP_CVC_IMPL_H
23
24#include <lte/remove_cp_cvc.h>
25
26namespace gr {
27 namespace lte {
28 struct sym_info{
29 int num;
30 int dump;
31 };
32
34 {
35 private:
36 int d_fftl;
37 int d_cpl;
38 int d_cpl0;
39 int d_slotl;
40 int d_symb;
41 int d_sym_num;
42 int d_symbols_per_frame;
43 pmt::pmt_t d_key;
44 pmt::pmt_t d_tag_id;
45 long d_work_call;
46 bool d_found_frame_start;
47 long d_frame_start;
48
49 long copy_samples_from_in_to_out(gr_complex* out, const gr_complex* in, int noutput_items);
50 //void add_tags_to_vectors(int noutput_items, int sym_num, int symbols_per_frame);
51 void add_tags_to_vectors(int noutput_items);
52 long get_frame_start(std::vector <gr::tag_t> v);
53 sym_info get_sym_num_info(long frame_start, long nitems_read, int symbols_per_frame );
54 int leading_items_to_dump(int slot_items, int slot_sym);
55
56
57 public:
58 remove_cp_cvc_impl(int fftl, std::string key, std::string& name);
60
61 // Where all the action really happens
62 void forecast (int noutput_items, gr_vector_int &ninput_items_required);
63
64 int general_work(int noutput_items,
65 gr_vector_int &ninput_items,
66 gr_vector_const_void_star &input_items,
67 gr_vector_void_star &output_items);
68 };
69
70 } // namespace lte
71} // namespace gr
72
73#endif /* INCLUDED_LTE_REMOVE_CP_CVC_IMPL_H */
74
Definition: remove_cp_cvc_impl.h:34
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
void forecast(int noutput_items, gr_vector_int &ninput_items_required)
remove_cp_cvc_impl(int fftl, std::string key, std::string &name)
Remove LTE specific CP from stream and output OFDM symbol vectors in time domain.
Definition: remove_cp_cvc.h:38
Definition: bch_crc_check_ant_chooser_bb.h:28
Definition: mimo_remove_cp_impl.h:29
int num
Definition: mimo_remove_cp_impl.h:30
int dump
Definition: mimo_remove_cp_impl.h:31