OFDM Serializer: 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...")
 
(Restore missing elements from the header doc)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Block Docs]]
[[Category:Block Docs]]
[[Category:Stub Docs]]
Serializes complex modulations symbols from OFDM sub-carriers.
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 is the inverse block to the [[OFDM Carrier Allocator]]. It outputs the complex data symbols as a tagged stream, discarding the pilot symbols.
 
If given, two different tags are parsed: The first key (Length Tag Key) specifies the number of OFDM symbols in the frame at the input. The second key (Packet Length Tag Key) specifies the number of complex symbols that are coded into this frame. If given, this second key is then used at the output, otherwise, Length Tag Key is used. If both are given, the packet length specifies the maximum number of output items, and the frame length specifies the exact number of consumed input items.
 
It is possible to correct a carrier offset in this function by passing another tag with said offset.
 
; Input: Complex vectors of length
; Output: Complex scalars, in the same order as specified in occupied_carriers.


== 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).
: FFT length


; Param 2
; Occupied Carriers
: blah blah blah
: See [[OFDM Carrier Allocator]]
 
; Length Tag Key
: The key of the tag identifying the length of the input frame in OFDM symbols.
 
; Packet Length Tag Key
: The key of the tag identifying the number of complex symbols in this packet.
 
; Symbols skipped
: If the first symbol is not allocated as in occupied_carriers[0], set this
 
; Carrier Offset Key
: When this block should correct a carrier offset, specify the tag key of the offset here (not necessary if following an [[OFDM Frame Equalizer]])
 
; Input is shifted
: If the input has the DC carrier on index 0 (i.e. it is not FFT shifted), set this to false


== 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_serializer_vcc_impl.cc]


; Header files
; Header files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/master/gr-digital/lib/ofdm_serializer_vcc_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_serializer_vcc.h]


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

Latest revision as of 15:10, 3 August 2023

Serializes complex modulations symbols from OFDM sub-carriers.

This is the inverse block to the OFDM Carrier Allocator. It outputs the complex data symbols as a tagged stream, discarding the pilot symbols.

If given, two different tags are parsed: The first key (Length Tag Key) specifies the number of OFDM symbols in the frame at the input. The second key (Packet Length Tag Key) specifies the number of complex symbols that are coded into this frame. If given, this second key is then used at the output, otherwise, Length Tag Key is used. If both are given, the packet length specifies the maximum number of output items, and the frame length specifies the exact number of consumed input items.

It is possible to correct a carrier offset in this function by passing another tag with said offset.

Input
Complex vectors of length
Output
Complex scalars, in the same order as specified in occupied_carriers.

Parameters

FFT length
FFT length
Occupied Carriers
See OFDM Carrier Allocator
Length Tag Key
The key of the tag identifying the length of the input frame in OFDM symbols.
Packet Length Tag Key
The key of the tag identifying the number of complex symbols in this packet.
Symbols skipped
If the first symbol is not allocated as in occupied_carriers[0], set this
Carrier Offset Key
When this block should correct a carrier offset, specify the tag key of the offset here (not necessary if following an OFDM Frame Equalizer)
Input is shifted
If the input has the DC carrier on index 0 (i.e. it is not FFT shifted), set this to false

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]