GNSS-SDR  0.0.13
An Open Source GNSS Software Defined Receiver
beamformer.h
Go to the documentation of this file.
1 /*!
2  * \file beamformer.h
3  *
4  * \brief Simple spatial filter using RAW array input and beamforming coefficients
5  * \author Javier Arribas jarribas (at) cttc.es
6  * -----------------------------------------------------------------------------
7  *
8  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
9  *
10  * GNSS-SDR is a software defined Global Navigation
11  * Satellite Systems receiver
12  *
13  * This file is part of GNSS-SDR.
14  *
15  * SPDX-License-Identifier: GPL-3.0-or-later
16  *
17  * -----------------------------------------------------------------------------
18  */
19 
20 #ifndef GNSS_SDR_BEAMFORMER_H
21 #define GNSS_SDR_BEAMFORMER_H
22 
23 #include <gnuradio/sync_block.h>
24 #include <vector>
25 #if GNURADIO_USES_STD_POINTERS
26 #include <memory>
27 #else
28 #include <boost/shared_ptr.hpp>
29 #endif
30 
31 class beamformer;
32 
33 #if GNURADIO_USES_STD_POINTERS
34 using beamformer_sptr = std::shared_ptr<beamformer>;
35 #else
36 using beamformer_sptr = boost::shared_ptr<beamformer>;
37 #endif
38 
39 beamformer_sptr make_beamformer_sptr();
40 
41 const int GNSS_SDR_BEAMFORMER_CHANNELS = 8;
42 
43 /*!
44  * \brief This class implements a real-time software-defined spatial filter using the CTTC GNSS experimental antenna array input and a set of dynamically reloadable weights
45  */
46 class beamformer : public gr::sync_block
47 {
48 public:
49  ~beamformer() = default;
50  int work(int noutput_items, gr_vector_const_void_star &input_items,
51  gr_vector_void_star &output_items);
52 
53 private:
54  friend beamformer_sptr make_beamformer_sptr();
55  beamformer();
56  std::vector<gr_complex> weight_vector = std::vector<gr_complex>(GNSS_SDR_BEAMFORMER_CHANNELS, gr_complex(1.0, 0.0));
57 };
58 
59 #endif // GNSS_SDR_BEAMFORMER_H
This class implements a real-time software-defined spatial filter using the CTTC GNSS experimental an...
Definition: beamformer.h:46