OFDM Receiver

Hierarchical block for OFDM demodulation.

The input is a complex baseband signal (e.g. from a UHD source). The detected packets are output as a stream of packed bits on the output.

Parameters

 * FFT Length
 * The length of FFT (integer).


 * Cyclic Prefix Length
 * The length of cyclic prefix in total samples (integer).


 * Packet Length Tag Key
 * The name of the tag giving packet length at the input.


 * Occupied Carriers
 * A vector of vectors describing which OFDM carriers are occupied with data symbols. occupied_carriers[0] identifies the carriers that are used for the first OFDM symbol, and so on.


 * Pilot Carriers
 * A vector of vectors describing which OFDM carriers are occupied with pilot symbols.


 * Pilot Symbols
 * A vector of vectors indicating the pilot symbols.


 * Sync Word 1
 * The first sync preamble symbol. This has to be with zeros on alternating carriers. Used for fine and coarse frequency offset and timing estimation.


 * Sync Word 2
 * The second sync preamble symbol. This has to be filled entirely. Also used for coarse frequency offset and channel estimation.


 * Header Modulation
 * It has two options:
 * BPSK (Binary Phase Shift Keying)
 * QPSK (Quadrature Phase Shift Keying)


 * Payload Modulation
 * It has three options:
 * BPSK (Binary Phase Shift Keying)
 * QPSK (Quadrature Phase Shift Keying)
 * 8-PSK (Eight Phase Shift Keying)


 * Scramble Bits
 * Activates the scramblers (set this to True unless debugging)


 * Log Debug Info
 * Write output into log files (Warning: creates lots of data!)

Example Flowgraph
This flowgraph can be found at https://github.com/gnuradio/gnuradio/blob/master/gr-digital/examples/ofdm/ofdm_loopback.grc



Source Files

 * Python file
 * ofdm_txrx.py


 * Block definition
 * digital_ofdm_rx.block.yml