GNU Radio's LTE Package
mimo_pss_fine_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
22#ifndef INCLUDED_LTE_MIMO_PSS_FINE_SYNC_IMPL_H
23#define INCLUDED_LTE_MIMO_PSS_FINE_SYNC_IMPL_H
24
26
27
28namespace gr
29{
30namespace lte
31{
32
34{
35private:
36 int d_fftl;
37 int d_rxant;
38 int d_grpdelay;
39 int d_cpl;
40 int d_cpl0;
41 int d_slotl;
42 int d_halffl;
43 int d_decim;
44 int d_N_id_2;
45 int d_coarse_pos;
46
47 int d_fine_pos;
48 int d_fine_corr_count;
49 int d_step;
50 long d_half_frame_start;
51 float d_corr_val;
52 float d_val_early;
53 float d_val_prompt;
54 float d_val_late;
55 bool d_is_locked;
56
57 pmt::pmt_t d_slot_key;
58 pmt::pmt_t d_id_key;
59 pmt::pmt_t d_tag_id;
60
61 pmt::pmt_t d_port_half_frame;
62 pmt::pmt_t d_port_lock;
63
64 gr_complex* d_pssX_t;
65 gr_complex* d_a;
66
67 float diff_corr(const gr_complex* x,const gr_complex* y, int len);
68 float diff_corr2(const gr_vector_const_void_star in, const gr_complex* y, int len, int cpos);
69 int calc_half_frame_start(int pss_pos);
70
71 void handle_msg_N_id_2(pmt::pmt_t msg);
72 void handle_msg_coarse_pos(pmt::pmt_t msg);
73
74public:
75 mimo_pss_fine_sync_impl(int fftl, int rxant, int grpdelay);
77
78 void forecast (int noutput_items, gr_vector_int &ninput_items_required);
79 // Where all the action really happens
80 int work(int noutput_items,
81 gr_vector_const_void_star &input_items,
82 gr_vector_void_star &output_items);
83
84
85};
86
87} // namespace lte
88} // namespace gr
89
90#endif /* INCLUDED_LTE_MIMO_PSS_FINE_SYNC_IMPL_H */
91
Definition: mimo_pss_fine_sync_impl.h:34
mimo_pss_fine_sync_impl(int fftl, int rxant, int grpdelay)
int work(int noutput_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)
<+description of block+>
Definition: mimo_pss_fine_sync.h:37
Definition: bch_crc_check_ant_chooser_bb.h:28