GNU Radio's LTE Package
channel_estimator_vcvc.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_CHANNEL_ESTIMATOR_VCVC_H
22#define INCLUDED_LTE_CHANNEL_ESTIMATOR_VCVC_H
23
24#include <lte/api.h>
25#include <gnuradio/sync_block.h>
26
27namespace gr {
28 namespace lte {
29
30 /*!
31 * \brief Channel Estimator for OFDM
32 * \ingroup lte
33 * \param subcarriers A value to determine the vector size and number of used subcarriers
34 * \param tag_key A string value to set the name of the OFDM symbol number tag
35 * \param msg_buf_name Name of the in message port to reset pilot carriers and pilot symbol values
36 * \param pilot_carriers A vector of vectors of indices.
37 * first vector has length max OFDM symbols per frame.
38 * second vector contains indices of pilot carriers
39 * \param pilot_symbols A vector of vectors with pilot symbol values
40 * same as pilot_carriers but complex values.
41 *
42 */
43 class LTE_API channel_estimator_vcvc : virtual public gr::sync_block
44 {
45 public:
46 typedef boost::shared_ptr<channel_estimator_vcvc> sptr;
47
48 /*!
49 * \brief Return a shared_ptr to a new instance of lte::channel_estimator_vcvc.
50 *
51 * To avoid accidental use of raw pointers, lte::channel_estimator_vcvc's
52 * constructor is in a private implementation
53 * class. lte::channel_estimator_vcvc::make is the public interface for
54 * creating new instances.
55 */
56 static sptr
57 make(int rxant, int subcarriers, std::string tag_key,
58 std::string msg_buf_name,
59 const std::vector<std::vector<int> > &pilot_carriers,
60 const std::vector<std::vector<gr_complex> > &pilot_symbols,
61 std::string name = "channel_estimator_vcvc");
62
63 virtual void
65 const std::vector<std::vector<int> > &pilot_carriers,
66 const std::vector<std::vector<gr_complex> > &pilot_symbols) = 0;
67
68 virtual std::vector<std::vector<int> >
70
71 };
72
73 } // namespace lte
74} // namespace gr
75
76#endif /* INCLUDED_LTE_CHANNEL_ESTIMATOR_VCVC_H */
77
#define LTE_API
Definition: api.h:30
Channel Estimator for OFDM.
Definition: channel_estimator_vcvc.h:44
virtual std::vector< std::vector< int > > get_pilot_carriers()=0
virtual void set_pilot_map(const std::vector< std::vector< int > > &pilot_carriers, const std::vector< std::vector< gr_complex > > &pilot_symbols)=0
static sptr make(int rxant, int subcarriers, std::string tag_key, std::string msg_buf_name, const std::vector< std::vector< int > > &pilot_carriers, const std::vector< std::vector< gr_complex > > &pilot_symbols, std::string name="channel_estimator_vcvc")
Return a shared_ptr to a new instance of lte::channel_estimator_vcvc.
boost::shared_ptr< channel_estimator_vcvc > sptr
Definition: channel_estimator_vcvc.h:46
Definition: bch_crc_check_ant_chooser_bb.h:28