GNSS-SDR  0.0.19
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  *
9  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
10  * This file is part of GNSS-SDR.
11  *
12  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
13  * SPDX-License-Identifier: GPL-3.0-or-later
14  *
15  * -----------------------------------------------------------------------------
16  */
17 
18 #ifndef GNSS_SDR_BEAMFORMER_H
19 #define GNSS_SDR_BEAMFORMER_H
20 
21 #include "gnss_block_interface.h"
22 #include <gnuradio/sync_block.h>
23 #include <vector>
24 
25 /** \addtogroup Input_Filter
26  * \{ */
27 /** \addtogroup Input_filter_gnuradio_blocks
28  * \{ */
29 
30 
31 class beamformer;
32 
33 using beamformer_sptr = gnss_shared_ptr<beamformer>;
34 
35 beamformer_sptr make_beamformer_sptr();
36 
37 const int GNSS_SDR_BEAMFORMER_CHANNELS = 8;
38 
39 /*!
40  * \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
41  */
42 class beamformer : public gr::sync_block
43 {
44 public:
45  ~beamformer() = default;
46  int work(int noutput_items, gr_vector_const_void_star &input_items,
47  gr_vector_void_star &output_items);
48 
49 private:
50  friend beamformer_sptr make_beamformer_sptr();
51  beamformer();
52  std::vector<gr_complex> weight_vector = std::vector<gr_complex>(GNSS_SDR_BEAMFORMER_CHANNELS, gr_complex(1.0, 0.0));
53 };
54 
55 
56 /** \} */
57 /** \} */
58 #endif // GNSS_SDR_BEAMFORMER_H
This class implements a real-time software-defined spatial filter using the CTTC GNSS experimental an...
Definition: beamformer.h:42
This interface represents a GNSS block.