gr_ofdm_frame_acquisition Class Reference
[Signal DemodulationOFDM Blocks]

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 <gr_ofdm_frame_acquisition.h>

Inheritance diagram for gr_ofdm_frame_acquisition:
Inheritance graph
[legend]

List of all members.

Public Member Functions

float snr ()
 Return an estimate of the SNR of the channel.
 ~gr_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

 gr_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

gr_ofdm_frame_acquisition_sptr gr_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.

Detailed Description

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 1-tap equalization on all subcarriers. This corrects for the phase and amplitude distortion caused by the channel.


Constructor & Destructor Documentation

gr_ofdm_frame_acquisition::gr_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]
gr_ofdm_frame_acquisition::~gr_ofdm_frame_acquisition ( void   ) 

Member Function Documentation

int gr_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

Parameters:
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
Returns:
number of items actually written to each output stream, or -1 on EOF. It is OK to return a value less than noutput_items. -1 <= return value <= noutput_items

general_work must call consume or consume_each to indicate how many items were consumed on each input stream.

Implements gr_block.

float gr_ofdm_frame_acquisition::snr (  )  [inline]

Return an estimate of the SNR of the channel.


Friends And Related Function Documentation

gr_ofdm_frame_acquisition_sptr gr_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.

Parameters:
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

The documentation for this class was generated from the following file:
Generated on Tue Dec 28 18:35:09 2010 for GNU Radio 3.3.0 C++ API by  doxygen 1.6.3