Burst Shaper: 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...")
 
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Block Docs]]
[[Category:Block Docs]]
[[Category:Stub Docs]]
Burst shaper block for applying burst padding and ramping.
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 block applies a configurable amount of zero padding before and/or after a burst indicated by tagged stream length tags.
 
If phasing symbols are used, an alternating pattern of +1/-1 symbols of length ceil(N/2) will be inserted before and after each burst, where N is the length of the taps vector. The ramp- up/ramp-down shape will be applied to these phasing symbols.
 
If phasing symbols are not used, the taper will be applied directly to the head and tail of each burst.
 
Length tags will be updated to include the length of any added zero padding or phasing symbols and will be placed at the beginning of the modified tagged stream. Any other tags found at the same offset as a length tag will also be placed at the beginning of the modified tagged stream, since these tags are assumed to be associated with the burst rather than a specific sample. For example, if "tx_time" tags are used to control bursts, their offsets should be consistent with their associated burst's length tags. Tags at other offsets will be placed with the samples on which they were found.


== Parameters ==
== Parameters ==
(''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span>
; Window Taps
: Vector of window taper taps; the first ceil(N/2) items are the up flank and the last ceil(N/2) items are the down flank. If taps.size() is odd, the middle tap will be used as the last item of the up flank and first item of the down flank.


; Param 1 (''R'')
; Pre-padding 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).
: Number of zero samples to insert before the burst.


; Param 2
; Post-padding Length
: blah blah blah
: Number of zero samples to append after the burst.
 
; Insert Phasing Symbols
: If true, insert alternating +1/-1 pattern of length ceil(N/2) before and after the burst and apply ramp up and ramp down taps, respectively, to the inserted patterns instead of the head and tail items of the burst.
 
; Length Tag Name
: The name of the tagged stream length tag key.


== Example Flowgraph ==
== Example Flowgraph ==
; Example 1
: This flowgraph can be found at [https://github.com/gnuradio/gnuradio/blob/master/gr-digital/examples/packet/packet_tx.grc]
: [[File:Packet_tx_fg.png|746px]]
; Example 2
: Another flowgraph can be found [https://github.com/gnuradio/gnuradio/blob/master/gr-digital/examples/packet/burst_tagger.grc here]. It shows how the output of the graph changes with or without the insertion of phasing symbols.
: [[File:Burst_shaper.PNG|600px]]
: The change in the waveform can be seen as follows:


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.
: [[File:Burst_shaper_output.PNG|600px]]


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


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


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


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


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

Latest revision as of 06:33, 25 January 2022

Burst shaper block for applying burst padding and ramping.

This block applies a configurable amount of zero padding before and/or after a burst indicated by tagged stream length tags.

If phasing symbols are used, an alternating pattern of +1/-1 symbols of length ceil(N/2) will be inserted before and after each burst, where N is the length of the taps vector. The ramp- up/ramp-down shape will be applied to these phasing symbols.

If phasing symbols are not used, the taper will be applied directly to the head and tail of each burst.

Length tags will be updated to include the length of any added zero padding or phasing symbols and will be placed at the beginning of the modified tagged stream. Any other tags found at the same offset as a length tag will also be placed at the beginning of the modified tagged stream, since these tags are assumed to be associated with the burst rather than a specific sample. For example, if "tx_time" tags are used to control bursts, their offsets should be consistent with their associated burst's length tags. Tags at other offsets will be placed with the samples on which they were found.

Parameters

Window Taps
Vector of window taper taps; the first ceil(N/2) items are the up flank and the last ceil(N/2) items are the down flank. If taps.size() is odd, the middle tap will be used as the last item of the up flank and first item of the down flank.
Pre-padding Length
Number of zero samples to insert before the burst.
Post-padding Length
Number of zero samples to append after the burst.
Insert Phasing Symbols
If true, insert alternating +1/-1 pattern of length ceil(N/2) before and after the burst and apply ramp up and ramp down taps, respectively, to the inserted patterns instead of the head and tail items of the burst.
Length Tag Name
The name of the tagged stream length tag key.

Example Flowgraph

Example 1
This flowgraph can be found at [1]
Packet tx fg.png
Example 2
Another flowgraph can be found here. It shows how the output of the graph changes with or without the insertion of phasing symbols.
Burst shaper.PNG
The change in the waveform can be seen as follows:
Burst shaper output.PNG

Source Files

C++ files
burst_shaper_impl.cc
Header files
burst_shaper_impl.h
Public header files
burst_shaper.h
Block definition
digital_burst_shaper.block.yml