GNU Radio 3.7.2.1-77 C++ API
gr::digital::ofdm_serializer_vcc Class Reference

Serializes complex modulations symbols from OFDM sub-carriers. More...

#include <gnuradio/digital/ofdm_serializer_vcc.h>

Inheritance diagram for gr::digital::ofdm_serializer_vcc:
gr::tagged_stream_block gr::block gr::basic_block gr::msg_accepter gr::messages::msg_accepter

Public Types

typedef boost::shared_ptr
< ofdm_serializer_vcc
sptr
 

Static Public Member Functions

static sptr make (int fft_len, const std::vector< std::vector< int > > &occupied_carriers, const std::string &len_tag_key="frame_len", const std::string &packet_len_tag_key="", int symbols_skipped=0, const std::string &carr_offset_key="", bool input_is_shifted=true)
 
static sptr make (const gr::digital::ofdm_carrier_allocator_cvc::sptr &allocator, const std::string &packet_len_tag_key="", int symbols_skipped=0, const std::string &carr_offset_key="", bool input_is_shifted=true)
 

Additional Inherited Members

- Public Member Functions inherited from gr::tagged_stream_block
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...
 
- Protected Types inherited from gr::basic_block
enum  vcolor { WHITE, GREY, BLACK }
 
- Protected Member Functions inherited from gr::tagged_stream_block
 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...
 
- Protected Attributes inherited from gr::tagged_stream_block
std::string d_length_tag_key_str
 

Detailed Description

Serializes complex modulations symbols from OFDM sub-carriers.

This is the inverse block to the carrier_allocator_cvc. It outputs the complex data symbols as a tagged stream, discarding the pilot symbols.

If given, two different tags are parsed: The first key (len_tag_key) specifies the number of OFDM symbols in the frame at the input. The second key (packet_len_tag_key) specifies the number of complex symbols that are coded into this frame. If given, this second key is then used at the output, otherwise, len_tag_key is used. If both are given, the packet length specifies the maximum number of output items, and the frame length specifies the exact number of consumed input items.

It is possible to correct a carrier offset in this function by passing another tag with said offset.

Input: Complex vectors of length fft_len Output: Complex scalars, in the same order as specified in occupied_carriers.

Member Typedef Documentation

Member Function Documentation

static sptr gr::digital::ofdm_serializer_vcc::make ( int  fft_len,
const std::vector< std::vector< int > > &  occupied_carriers,
const std::string &  len_tag_key = "frame_len",
const std::string &  packet_len_tag_key = "",
int  symbols_skipped = 0,
const std::string &  carr_offset_key = "",
bool  input_is_shifted = true 
)
static
Parameters
fft_lenFFT length
occupied_carriersSee ofdm_carrier_allocator_cvc.
len_tag_keyThe key of the tag identifying the length of the input frame in OFDM symbols.
packet_len_tag_keyThe key of the tag identifying the number of complex symbols in this packet.
symbols_skippedIf the first symbol is not allocated as in occupied_carriers[0], set this
carr_offset_keyWhen this block should correct a carrier offset, specify the tag key of the offset here (not necessary if following an ofdm_frame_equalizer_vcvc)
input_is_shiftedIf the input has the DC carrier on index 0 (i.e. it is not FFT shifted), set this to false
static sptr gr::digital::ofdm_serializer_vcc::make ( const gr::digital::ofdm_carrier_allocator_cvc::sptr allocator,
const std::string &  packet_len_tag_key = "",
int  symbols_skipped = 0,
const std::string &  carr_offset_key = "",
bool  input_is_shifted = true 
)
static
Parameters
allocatorThe carrier allocator block of which this shall be the inverse
packet_len_tag_keyThe key of the tag identifying the number of complex symbols in this packet.
symbols_skippedIf the first symbol is not allocated as in occupied_carriers[0], set this
carr_offset_keyWhen this block should correct a carrier offset, specify the tag key of the offset here (not necessary if following an ofdm_frame_equalizer_vcvc)
input_is_shiftedIf the input has the DC carrier on index 0 (i.e. it is not FFT shifted), set this to false

The documentation for this class was generated from the following file: