GNU Radio's LTE Package
mimo_remove_cp_impl.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2014 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_MIMO_REMOVE_CP_IMPL_H
22#define INCLUDED_LTE_MIMO_REMOVE_CP_IMPL_H
23
24#include <lte/mimo_remove_cp.h>
25
26namespace gr {
27 namespace lte {
28
29 struct sym_info{
30 int num;
31 int dump;
32 };
33
35
37 private:
38 int d_fftl;
39 int d_rxant;
40 int d_cpl;
41 int d_cpl0;
42 int d_slotl;
43 int d_symb; //symbol number within slot
44 int d_sym_num; //symbol number within frame
45 int d_symbols_per_frame;
46 pmt::pmt_t d_key;
47 pmt::pmt_t d_tag_id;
48 long d_work_call;
49 bool d_found_frame_start;
50 long d_half_frame_start;
51 sync_state d_state;
52
53 long copy_samples_from_in_to_out(gr_vector_void_star &output_items,
54 const gr_vector_const_void_star &input_items, int noutput_items,
55 int sync_delay);
56 //void add_tags_to_vectors(int noutput_items, int sym_num, int symbols_per_frame);
57 void add_tags_to_vectors(int noutput_items);
58
59 const int find_smallest_ninput_items(gr_vector_int &ninput_item);
60 const int update_half_frame_start(const int ninput_items);
61 const int calculate_item_offset(std::vector<gr::tag_t>& v);
62
63 public:
64 mimo_remove_cp_impl(int fftl, int rxant, std::string key);
66
67 // Where all the action really happens
68 void forecast(int noutput_items, gr_vector_int &ninput_items_required);
69
70 int general_work(int noutput_items, gr_vector_int &ninput_items,
71 gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
72 };
73
74 } // namespace lte
75} // namespace gr
76
77#endif /* INCLUDED_LTE_MIMO_REMOVE_CP_IMPL_H */
78
Definition: mimo_remove_cp_impl.h:36
mimo_remove_cp_impl(int fftl, int rxant, std::string key)
void forecast(int noutput_items, gr_vector_int &ninput_items_required)
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
<+description of block+>
Definition: mimo_remove_cp.h:36
sync_state
Definition: mimo_remove_cp_impl.h:34
@ SYNCED
Definition: mimo_remove_cp_impl.h:34
@ UNSYNCED
Definition: mimo_remove_cp_impl.h:34
@ FOUND_HALF_FRAME_START
Definition: mimo_remove_cp_impl.h:34
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