OFDM Frame Equalizer: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(Created page with "Category:Block Docs Category:Stub Docs This is the template for the "Page-per-block Docs". This first section should describe what the block...")
 
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
[[Category:Block Docs]]
[[Category:Block Docs]]
[[Category:Stub Docs]]
Performs equalization in one or two dimensions on a tagged OFDM frame.
This is the template for the [[:Category:Block_Docs|"Page-per-block Docs"]].  This first section should describe what the block does and how to use it, using however many paragraphs necessary.  Note that the title of the wiki page should match the block's name in GRC, i.e. the one defined in the block's .grc file.  Look at the [[FFT]] Block for a good example.


As this is a basic template, it's also in the [[:Category:Stub_Docs|"Stub Docs category"]]. Please improve it.
This does two things:
 
First, it removes the coarse carrier offset. If a tag is found on the first item with the key 'ofdm_sync_carr_offset', this is interpreted as the coarse frequency offset in number of carriers.
 
Next, it performs equalization in one or two dimensions on a tagged OFDM frame. The actual equalization is done by a ofdm_frame_equalizer object, outside of the block.
 
Note that the tag with the coarse carrier offset is not removed. Blocks downstream from this block must not attempt to also correct this offset.
 
; Input: a tagged series of OFDM symbols.
; Output: The same as the input, but equalized and frequency-corrected.


== Parameters ==
== Parameters ==
(''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span>


; Param 1 (''R'')
; FFT length
: Description of parameter, provide any tips or recommended values.  Note that the name of the parameter above should match the param's label that shows up in grc (e.g. Sample Rate).
: Used to set the input and output vector sizes


; Param 2
; CP length
: blah blah blah
: Length of the cyclic prefix in samples (required to correct the frequency offset)
 
; Equalizer
: The equalizer object that will do the actual work
 
; Length Tag Key
: TSB key
 
; Propagate Channel State
: If true, the channel state after the last symbol will be added to the first symbol as a tag
 
; Fixed frame length
: Set if the frame length is fixed. When this value is given, the Length tag key can be left empty, but it is useful even when using tagged streams at the input.


== Example Flowgraph ==
== Example Flowgraph ==


Insert description of flowgraph here, then show a screenshot of the flowgraph and the output if there is an interesting GUI. Currently we have no standard method of uploading the actual flowgraph to the wiki or git repo, unfortunately. The plan is to have an example flowgraph showing how the block might be used, for every block, and the flowgraphs will live in the git repo.
This flowgraph can be found at [https://github.com/gnuradio/gnuradio/blob/master/gr-digital/examples/ofdm/rx_ofdm.grc].
 
[[File:Rx_ofdm_fg.png|800px]]


== Source Files ==
== Source Files ==


; C++ files
; C++ files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/ofdm_frame_equalizer_vcvc_impl.cc]


; Header files
; Header files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/ofdm_frame_equalizer_vcvc_impl.h]


; Public header files
; Public header files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/master/gr-digital/include/gnuradio/digital/ofdm_frame_equalizer_vcvc.h]


; Block definition
; Block definition
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/master/gr-digital/grc/digital_ofdm_frame_equalizer_vcvc.block.yml]

Latest revision as of 02:45, 30 November 2020

Performs equalization in one or two dimensions on a tagged OFDM frame.

This does two things:

First, it removes the coarse carrier offset. If a tag is found on the first item with the key 'ofdm_sync_carr_offset', this is interpreted as the coarse frequency offset in number of carriers.

Next, it performs equalization in one or two dimensions on a tagged OFDM frame. The actual equalization is done by a ofdm_frame_equalizer object, outside of the block.

Note that the tag with the coarse carrier offset is not removed. Blocks downstream from this block must not attempt to also correct this offset.

Input
a tagged series of OFDM symbols.
Output
The same as the input, but equalized and frequency-corrected.

Parameters

FFT length
Used to set the input and output vector sizes
CP length
Length of the cyclic prefix in samples (required to correct the frequency offset)
Equalizer
The equalizer object that will do the actual work
Length Tag Key
TSB key
Propagate Channel State
If true, the channel state after the last symbol will be added to the first symbol as a tag
Fixed frame length
Set if the frame length is fixed. When this value is given, the Length tag key can be left empty, but it is useful even when using tagged streams at the input.

Example Flowgraph

This flowgraph can be found at [1].

Rx ofdm fg.png

Source Files

C++ files
[2]
Header files
[3]
Public header files
[4]
Block definition
[5]