GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
filterbank_vcvcf.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2009,2010,2012,2014 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * SPDX-License-Identifier: GPL-3.0-or-later
8  *
9  */
10 
11 
12 #ifndef INCLUDED_FILTER_FILTERBANK_CHANNELIZER_VCVCF_H
13 #define INCLUDED_FILTER_FILTERBANK_CHANNELIZER_VCVCF_H
14 
15 #include <gnuradio/block.h>
16 #include <gnuradio/filter/api.h>
17 
18 namespace gr {
19 namespace filter {
20 
21 /*!
22  * \brief Filterbank with vector of gr_complex input,
23  * vector of gr_complex output and float taps
24  * \ingroup filter_blk
25  *
26  * \details
27  * This block takes in complex vectors and outputs complex vectors of the same
28  * size. Vectors of length N, rather than N normal streams are used to reduce
29  * overhead.
30  */
31 class FILTER_API filterbank_vcvcf : virtual public block
32 {
33 public:
34  typedef std::shared_ptr<filterbank_vcvcf> sptr;
35 
36  /*!
37  * Build the filterbank.
38  * \param taps (vector of vector of floats/list of list of floats)
39  * Used to populate the filters.
40  */
41  static sptr make(const std::vector<std::vector<float>>& taps);
42 
43  /*!
44  * Resets the filterbank's filter taps with the new prototype filter
45  * \param taps (vector/list of floats) The prototype filter to populate the
46  * filterbank.
47  */
48  virtual void set_taps(const std::vector<std::vector<float>>& taps) = 0;
49 
50  /*!
51  * Print all of the filterbank taps to screen.
52  */
53  virtual void print_taps() = 0;
54 
55  /*!
56  * Return a vector<vector<>> of the filterbank taps
57  */
58  virtual std::vector<std::vector<float>> taps() const = 0;
59 };
60 
61 } /* namespace filter */
62 } /* namespace gr */
63 
64 #endif /* INCLUDED_FILTER_PFB_CHANNELIZER_VCVCF_H */
The abstract base class for all 'terminal' processing blocks.
Definition: gnuradio-runtime/include/gnuradio/block.h:63
Filterbank with vector of gr_complex input, vector of gr_complex output and float taps.
Definition: filterbank_vcvcf.h:32
virtual std::vector< std::vector< float > > taps() const =0
static sptr make(const std::vector< std::vector< float >> &taps)
virtual void set_taps(const std::vector< std::vector< float >> &taps)=0
virtual void print_taps()=0
std::shared_ptr< filterbank_vcvcf > sptr
Definition: filterbank_vcvcf.h:34
#define FILTER_API
Definition: gr-filter/include/gnuradio/filter/api.h:18
static constexpr float taps[NSTEPS+1][NTAPS]
Definition: interpolator_taps.h:9
GNU Radio logging wrapper.
Definition: basic_block.h:29