GNU Radio 3.6.5 C++ API

take a vector of complex constellation points in from an FFT and performs a correlation and equalization.This block takes the output of an FFT of a received OFDM symbol and finds the start of a frame based on two known symbols. It also looks at the surrounding bins in the FFT output for the correlation in case there is a large frequency shift in the data. This block assumes that the fine frequency shift has already been corrected and that the samples fall in the middle of one FFT bin. More...
#include <digital_ofdm_frame_acquisition.h>
Public Member Functions  
float  snr () 
Return an estimate of the SNR of the channel.  
~digital_ofdm_frame_acquisition (void)  
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  
Protected Member Functions  
digital_ofdm_frame_acquisition (unsigned int occupied_carriers, unsigned int fft_length, unsigned int cplen, const std::vector< gr_complex > &known_symbol, unsigned int max_fft_shift_len)  
Friends  
DIGITAL_API digital_ofdm_frame_acquisition_sptr  digital_make_ofdm_frame_acquisition (unsigned int occupied_carriers, unsigned int fft_length, unsigned int cplen, const std::vector< gr_complex > &known_symbol, unsigned int max_fft_shift_len) 
Build an OFDM correlator and equalizer. 
take a vector of complex constellation points in from an FFT and performs a correlation and equalization.
This block takes the output of an FFT of a received OFDM symbol and finds the start of a frame based on two known symbols. It also looks at the surrounding bins in the FFT output for the correlation in case there is a large frequency shift in the data. This block assumes that the fine frequency shift has already been corrected and that the samples fall in the middle of one FFT bin.
It then uses one of those known symbols to estimate the channel response over all subcarriers and does a simple 1tap equalization on all subcarriers. This corrects for the phase and amplitude distortion caused by the channel.
digital_ofdm_frame_acquisition::digital_ofdm_frame_acquisition  (  unsigned int  occupied_carriers, 
unsigned int  fft_length,  
unsigned int  cplen,  
const std::vector< gr_complex > &  known_symbol,  
unsigned int  max_fft_shift_len  
)  [protected] 
digital_ofdm_frame_acquisition::~digital_ofdm_frame_acquisition  (  void  ) 
int digital_ofdm_frame_acquisition::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.
float digital_ofdm_frame_acquisition::snr  (  )  [inline] 
Return an estimate of the SNR of the channel.
DIGITAL_API digital_ofdm_frame_acquisition_sptr digital_make_ofdm_frame_acquisition  (  unsigned int  occupied_carriers, 
unsigned int  fft_length,  
unsigned int  cplen,  
const std::vector< gr_complex > &  known_symbol,  
unsigned int  max_fft_shift_len  
)  [friend] 
Build an OFDM correlator and equalizer.
occupied_carriers  The number of subcarriers with data in the received symbol 
fft_length  The size of the FFT vector (occupied_carriers + unused carriers) 
cplen  The length of the cycle prefix 
known_symbol  A vector of complex numbers representing a known symbol at the start of a frame (usually a BPSK PN sequence) 
max_fft_shift_len  Set's the maximum distance you can look between bins for correlation 