GNU Radio 3.6.5 C++ API
|
Polyphase synthesis filterbank with gr_complex input, gr_complex output and float taps. More...
#include <gr_pfb_synthesizer_ccf.h>
Public Member Functions | |
~gr_pfb_synthesizer_ccf () | |
void | set_taps (const std::vector< float > &taps) |
void | print_taps () |
std::vector< std::vector< float > > | taps () const |
void | set_channel_map (const std::vector< int > &map) |
std::vector< int > | channel_map () const |
int | work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
just like gr_block::general_work, only this arranges to call consume_each for you | |
Friends | |
GR_CORE_API gr_pfb_synthesizer_ccf_sptr | gr_make_pfb_synthesizer_ccf (unsigned int numchans, const std::vector< float > &taps, bool twox) |
Polyphase synthesis filterbank with gr_complex input, gr_complex output and float taps.
gr_pfb_synthesizer_ccf::~gr_pfb_synthesizer_ccf | ( | ) |
std::vector<int> gr_pfb_synthesizer_ccf::channel_map | ( | ) | const |
Gets the current channel map.
void gr_pfb_synthesizer_ccf::print_taps | ( | ) |
Print all of the filterbank taps to screen.
void gr_pfb_synthesizer_ccf::set_channel_map | ( | const std::vector< int > & | map | ) |
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.
void gr_pfb_synthesizer_ccf::set_taps | ( | const std::vector< float > & | taps | ) |
Resets the filterbank's filter taps with the new prototype filter
taps | (vector/list of floats) The prototype filter to populate the filterbank. |
std::vector<std::vector<float> > gr_pfb_synthesizer_ccf::taps | ( | ) | const |
Return a vector<vector<>> of the filterbank taps
int gr_pfb_synthesizer_ccf::work | ( | int | noutput_items, |
gr_vector_const_void_star & | input_items, | ||
gr_vector_void_star & | output_items | ||
) | [virtual] |
just like gr_block::general_work, only this arranges to call consume_each for you
The user must override work to define the signal processing code
Implements gr_sync_block.
GR_CORE_API gr_pfb_synthesizer_ccf_sptr gr_make_pfb_synthesizer_ccf | ( | unsigned int | numchans, |
const std::vector< float > & | taps, | ||
bool | twox | ||
) | [friend] |
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) |