GNU Radio 3.7.2.1 C++ API
|
OFDM frame equalizer. More...
#include <ofdm_frame_equalizer_vcvc.h>
Public Types | |
typedef boost::shared_ptr < ofdm_frame_equalizer_vcvc > | sptr |
Static Public Member Functions | |
static sptr | make (ofdm_equalizer_base::sptr equalizer, int cp_len, const std::string &len_tag_key="frame_len", bool propagate_channel_state=false, int fixed_frame_len=0) |
Additional Inherited Members | |
![]() | |
void | forecast (int noutput_items, gr_vector_int &ninput_items_required) |
Don't override this. More... | |
int | general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
virtual int | work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)=0 |
Just like gr::block::general_work, but makes sure the input is valid. More... | |
![]() | |
enum | vcolor { WHITE, GREY, BLACK } |
![]() | |
tagged_stream_block (void) | |
tagged_stream_block (const std::string &name, gr::io_signature::sptr input_signature, gr::io_signature::sptr output_signature, const std::string &length_tag_key) | |
virtual void | parse_length_tags (const std::vector< std::vector< tag_t > > &tags, gr_vector_int &n_input_items_reqd) |
Parse all tags on the first sample of a PDU, return the number of items per input and prune the length tags. More... | |
virtual int | calculate_output_stream_length (const gr_vector_int &ninput_items) |
Calculate the number of output items. More... | |
virtual void | update_length_tags (int n_produced, int n_ports) |
Set the new length tags on the output stream. More... | |
![]() | |
std::string | d_length_tag_key_str |
OFDM frame equalizer.
Performs equalization in one or two dimensions on a tagged OFDM frame.
This does two things: First, it removes the coarse carrier offset. If a tag is found on the first item with the key 'ofdm_sync_carr_offset', this is interpreted as the coarse frequency offset in number of carriers. Next, it performs equalization in one or two dimensions on a tagged OFDM frame. The actual equalization is done by a ofdm_frame_equalizer object, outside of the block.
Note that the tag with the coarse carrier offset is not removed. Blocks downstream from this block must not attempt to also correct this offset.
Input: a tagged series of OFDM symbols. Output: The same as the input, but equalized and frequency-corrected.
|
static |
equalizer | The equalizer object that will do the actual work |
cp_len | Length of the cyclic prefix in samples (required to correct the frequency offset) |
len_tag_key | Length tag key |
propagate_channel_state | If true, the channel state after the last symbol will be added to the first symbol as a tag |
fixed_frame_len | Set if the frame length is fixed throughout, helps with book keeping. |