GNU Radio's LTE Package
mimo_pss_coarse_sync_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_pss_coarse_sync_IMPL_H
22#define INCLUDED_LTE_mimo_pss_coarse_sync_IMPL_H
23
25#include <gnuradio/filter/fir_filter.h>
26
27namespace gr
28{
29namespace lte
30{
31
33{
34private:
35 static const int d_CORRL=64;
36 static const int d_TIME_HYPO=d_CORRL*75;
37
38
39 int d_syncl;
40 int d_rxant;
41 int d_N_id_2;
42 int d_work_call;
43 int d_posmax;
44 float d_max;
45
46 //filter::kernel::fir_filter_ccf *d_fir;
47
48 std::vector< gr_complex* > d_buffer;
49
50 pmt::pmt_t d_port_coarse_pos;
51 pmt::pmt_t d_port_N_id_2;
52 pmt::pmt_t d_port_control;
53
54 gr_complex d_pss0_t[d_CORRL];
55 gr_complex d_pss1_t[d_CORRL];
56 gr_complex d_pss2_t[d_CORRL];
57 gr_complex d_pss012_t[d_CORRL];
58 gr_complex* d_a;
59 float d_result[d_TIME_HYPO];
60
61 void prepare_corr_vecs();
62
63 int calc_N_id_2(std::vector< gr_complex* > &buffer, int &mpos);
64 float diff_corr(const gr_complex* x, const gr_complex* y, int len);
65
66
67public:
68 mimo_pss_coarse_sync_impl(int syncl, int rxant);
70
71 // Where all the action really happens
72 int work(int noutput_items,
73 gr_vector_const_void_star &input_items,
74 gr_vector_void_star &output_items);
75};
76
77} // namespace lte
78} // namespace gr
79
80#endif /* INCLUDED_LTE_mimo_pss_coarse_sync_IMPL_H */
81
Definition: mimo_pss_coarse_sync_impl.h:33
mimo_pss_coarse_sync_impl(int syncl, int rxant)
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
<+description of block+>
Definition: mimo_pss_coarse_sync.h:37
Definition: bch_crc_check_ant_chooser_bb.h:28