GNU Radio 3.7.1 C++ API
|
Polyphase synthesis filterbank with gr_complex input, gr_complex output and float taps. More...
#include <pfb_synthesizer_ccf.h>
Public Types | |
typedef boost::shared_ptr < pfb_synthesizer_ccf > | sptr |
Public Member Functions | |
virtual void | set_taps (const std::vector< float > &taps)=0 |
virtual void | print_taps ()=0 |
virtual std::vector < std::vector< float > > | taps () const =0 |
virtual void | set_channel_map (const std::vector< int > &map)=0 |
virtual std::vector< int > | channel_map () const =0 |
Static Public Member Functions | |
static sptr | make (unsigned int numchans, const std::vector< float > &taps, bool twox=false) |
Polyphase synthesis filterbank with gr_complex input, gr_complex output and float taps.
virtual std::vector<int> gr::filter::pfb_synthesizer_ccf::channel_map | ( | ) | const [pure virtual] |
Gets the current channel map.
static sptr gr::filter::pfb_synthesizer_ccf::make | ( | unsigned int | numchans, |
const std::vector< float > & | taps, | ||
bool | twox = false |
||
) | [static] |
Build the polyphase synthesis filterbank.
numchans | (unsigned integer) Specifies the number of channels M |
taps | (vector/list of floats) The prototype filter to populate the filterbank. |
twox | (bool) use 2x oversampling or not (default is no) |
virtual void gr::filter::pfb_synthesizer_ccf::print_taps | ( | ) | [pure virtual] |
Print all of the filterbank taps to screen.
virtual void gr::filter::pfb_synthesizer_ccf::set_channel_map | ( | const std::vector< int > & | map | ) | [pure virtual] |
Set the channel map. Channels are numbers as: N/2+1 | ... | N-1 | 0 | 1 | 2 | ... | N/2 <------------------- 0 --------------------> freq
So input stream 0 goes to channel 0, etc. Setting a new channel map allows the user to specify where in frequency he/she wants the input stream to go. This is especially useful to avoid putting signals into the channels on the edge of the spectrum which can either wrap around (in the case of odd number of channels) and be affected by filter rolloff in the transmitter.
The map must be at least the number of streams being sent to the block. Less and the algorithm will not have enough data to properly setup the buffers. Any more channels specified will be ignored.
virtual void gr::filter::pfb_synthesizer_ccf::set_taps | ( | const std::vector< float > & | taps | ) | [pure virtual] |
Resets the filterbank's filter taps with the new prototype filter
taps | (vector/list of floats) The prototype filter to populate the filterbank. |
virtual std::vector<std::vector<float> > gr::filter::pfb_synthesizer_ccf::taps | ( | ) | const [pure virtual] |
Return a vector<vector<>> of the filterbank taps