GNU Radio 3.6.5 C++ API

Estimate channel and coarse frequency offset for OFDM from preamblesInput: OFDM symbols (in frequency domain). The first one (or two) symbols are expected to be synchronisation symbols, which are used to estimate the coarse freq offset and the initial equalizer taps (these symbols are removed from the stream). The following n_data_symbols
are passed through unmodified (the actual equalisation must be done elsewhere). Output: The data symbols, without the synchronisation symbols. The first data symbol passed through has two tags: 'ofdm_sync_carr_offset' (integer), the coarse frequency offset as number of carriers, and 'ofdm_sync_eq_taps' (complex vector). Any tags attached to the synchronisation symbols are attached to the first data symbol. All other tags are propagated as expected.
More...
#include <digital_ofdm_chanest_vcvc.h>
Public Member Functions  
~digital_ofdm_chanest_vcvc ()  
void  forecast (int noutput_items, gr_vector_int &ninput_items_required) 
Estimate input requirements given output request.  
int  general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) 
compute output items from input items  
Friends  
DIGITAL_API digital_ofdm_chanest_vcvc_sptr  digital_make_ofdm_chanest_vcvc (const std::vector< gr_complex > &sync_symbol1, const std::vector< gr_complex > &sync_symbol2, int n_data_symbols, int eq_noise_red_len, int max_carr_offset, bool force_one_sync_symbol) 
Estimate channel and coarse frequency offset for OFDM from preambles
Input: OFDM symbols (in frequency domain). The first one (or two) symbols are expected to be synchronisation symbols, which are used to estimate the coarse freq offset and the initial equalizer taps (these symbols are removed from the stream). The following n_data_symbols
are passed through unmodified (the actual equalisation must be done elsewhere). Output: The data symbols, without the synchronisation symbols. The first data symbol passed through has two tags: 'ofdm_sync_carr_offset' (integer), the coarse frequency offset as number of carriers, and 'ofdm_sync_eq_taps' (complex vector). Any tags attached to the synchronisation symbols are attached to the first data symbol. All other tags are propagated as expected.
Note: The vector on ofdm_sync_eq_taps is already frequencycorrected, whereas the rest is not.
This block assumes the frequency offset is even (i.e. an integer multiple of 2).
[1] Schmidl, T.M. and Cox, D.C., "Robust frequency and timing synchronization for OFDM", Communications, IEEE Transactions on, 1997. [2] K.D. Kammeyer, "Nachrichtenuebertragung," Chapter. 16.3.2.
digital_ofdm_chanest_vcvc::~digital_ofdm_chanest_vcvc  (  ) 
void digital_ofdm_chanest_vcvc::forecast  (  int  noutput_items, 
gr_vector_int &  ninput_items_required  
)  [virtual] 
Estimate input requirements given output request.
noutput_items  number of output items to produce 
ninput_items_required  number of input items required on each input stream 
Given a request to product noutput_items
, estimate the number of data items required on each input stream. The estimate doesn't have to be exact, but should be close.
Reimplemented from gr_block.
int digital_ofdm_chanest_vcvc::general_work  (  int  noutput_items, 
gr_vector_int &  ninput_items,  
gr_vector_const_void_star &  input_items,  
gr_vector_void_star &  output_items  
)  [virtual] 
compute output items from input items
noutput_items  number of output items to write on each output stream 
ninput_items  number of input items available on each input stream 
input_items  vector of pointers to the input items, one entry per input stream 
output_items  vector of pointers to the output items, one entry per output stream 
general_work must call consume or consume_each to indicate how many items were consumed on each input stream.
Reimplemented from gr_block.
DIGITAL_API digital_ofdm_chanest_vcvc_sptr digital_make_ofdm_chanest_vcvc  (  const std::vector< gr_complex > &  sync_symbol1, 
const std::vector< gr_complex > &  sync_symbol2,  
int  n_data_symbols,  
int  eq_noise_red_len,  
int  max_carr_offset,  
bool  force_one_sync_symbol  
)  [friend] 