GNU Radio 3.7.1 C++ API
gr::digital::ofdm_carrier_allocator_cvc Class Reference

Create frequency domain OFDM symbols from complex values, add pilots. More...

#include <ofdm_carrier_allocator_cvc.h>

Inheritance diagram for gr::digital::ofdm_carrier_allocator_cvc:

List of all members.

Public Types

typedef boost::shared_ptr
< ofdm_carrier_allocator_cvc
sptr

Public Member Functions

virtual std::string len_tag_key ()=0
virtual const int fft_len ()=0
virtual std::vector
< std::vector< int > > 
occupied_carriers ()=0

Static Public Member Functions

static sptr make (int fft_len, const std::vector< std::vector< int > > &occupied_carriers, const std::vector< std::vector< int > > &pilot_carriers, const std::vector< std::vector< gr_complex > > &pilot_symbols, const std::vector< std::vector< gr_complex > > &sync_words, const std::string &len_tag_key="packet_len", const bool output_is_shifted=true)

Detailed Description

Create frequency domain OFDM symbols from complex values, add pilots.

This block turns a stream of complex, scalar modulation symbols into vectors which are the input for an IFFT in an OFDM transmitter. It also supports the possibility of placing pilot symbols onto the carriers.

The carriers can be allocated freely, if a carrier is not allocated, it is set to zero. This allows doing OFDMA-style carrier allocations.

Input: A tagged stream of complex scalars. The first item must have a tag containing the number of complex symbols in this frame. Output: A tagged stream of complex vectors of length fft_len. This can directly be connected to an FFT block. Make sure to set this block to 'reverse' for the IFFT. If output_is_shifted is true, the FFT block must activate FFT shifting, otherwise, set shifting to false. If given, sync words are prepended to the output. Note that sync words are prepended verbatim, make sure they are shifted (or not).

Carrier indexes are always such that index 0 is the DC carrier (note: you should not allocate this carrier). The carriers below the DC carrier are either indexed with negative numbers, or with indexes larger than fft_len/2. Index -1 and index fft_len-1 both identify the carrier below the DC carrier.


Member Typedef Documentation


Member Function Documentation

virtual const int gr::digital::ofdm_carrier_allocator_cvc::fft_len ( ) [pure virtual]
virtual std::string gr::digital::ofdm_carrier_allocator_cvc::len_tag_key ( ) [pure virtual]
static sptr gr::digital::ofdm_carrier_allocator_cvc::make ( int  fft_len,
const std::vector< std::vector< int > > &  occupied_carriers,
const std::vector< std::vector< int > > &  pilot_carriers,
const std::vector< std::vector< gr_complex > > &  pilot_symbols,
const std::vector< std::vector< gr_complex > > &  sync_words,
const std::string &  len_tag_key = "packet_len",
const bool  output_is_shifted = true 
) [static]
virtual std::vector<std::vector<int> > gr::digital::ofdm_carrier_allocator_cvc::occupied_carriers ( ) [pure virtual]

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