QT GUI Bercurve Sink: Difference between revisions
(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...") |
(revise Introduction) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[ | The Bercurve Sink block creates a plot of Bit Error Rate versus Signal to Noise ratio (ES/No). The block calculates the BER itself internally by comparing the original data (pre-distortion) from input <code>i</code> with the post-distortion, post-decoding data on input <code>i+1</code>. So <code>(input_items[i] XOR input_items[i+1])</code> is the BER to plot for that particular Es/No point. Each curve is made with 8 data points, thus requiring 16 input ports. | ||
[ | |||
The Bercurve Sink can operate in two modes: | |||
* Separate input ports | |||
* Bus input ports | |||
== Separate input ports == | |||
Using gnuradio-companion (GRC), the default configuration of a new Bercurve Sink is with 16 separate input ports <b>per curve</b>. The ports are paired: (0, 1), (2, 3), ... (14,15). Each input pair produces one point on the corresponding curve. | |||
== Bus input ports == | |||
Instead of having so many separate input ports (16 times the number of curves), the sink can operate in the "Bus" mode, where all the data for one curve is grouped into one "bus". To activate this mode, right click on the Bercurve Sink block, select "More", then select "Toggle Sink Bus". This mode matches the output of a "BER Curve Gen." block. See the example flowgraph below. | |||
== Parameters == | == Parameters == | ||
; | ; esno | ||
: | : Vector of SNR (ES/No) values to plot for. Typical value is <code>numpy.arange (0, 8, .5)</code> | ||
; Min. BER Errs. | |||
: | |||
; BER Limit | |||
: | |||
; Num Curves | |||
: Number of curves to draw on the same graph | |||
; Curve Names | |||
: | |||
; Y min | |||
: | |||
; Y max | |||
: | |||
; Update Period | |||
: | |||
; GUI Hint | |||
: See [[GUI Hint]] for info about how to organize multiple QT GUIs | |||
; Line X Label | |||
: | |||
; Line X Width | |||
: | |||
; Line X Color | |||
: | |||
; Line X Style | |||
: | |||
; | ; Line X Marker | ||
: | : | ||
; Line X Alpha | |||
: | |||
== Example Flowgraph == | == Example Flowgraph == | ||
This flowgraph is derived from https://github.com/gnuradio/gnuradio/blob/master/gr-fec/examples/ber_curve_gen.grc | |||
[[File:Ber_curve_gen_fg.png|800px]] | |||
== Source Files == | == Source Files == | ||
; C++ files | ; C++ files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-qtgui/lib/ber_sink_b_impl.cc] | ||
; Header files | ; Header files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-qtgui/lib/ber_sink_b_impl.h] | ||
; Public header files | ; Public header files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-qtgui/include/gnuradio/qtgui/ber_sink_b.h] | ||
; Block definition | ; Block definition | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/master/gr-qtgui/grc/qtgui_ber_sink_b.block.yml] | ||
[[Category:Block Docs]] |
Latest revision as of 13:48, 19 April 2020
The Bercurve Sink block creates a plot of Bit Error Rate versus Signal to Noise ratio (ES/No). The block calculates the BER itself internally by comparing the original data (pre-distortion) from input i
with the post-distortion, post-decoding data on input i+1
. So (input_items[i] XOR input_items[i+1])
is the BER to plot for that particular Es/No point. Each curve is made with 8 data points, thus requiring 16 input ports.
The Bercurve Sink can operate in two modes:
- Separate input ports
- Bus input ports
Separate input ports
Using gnuradio-companion (GRC), the default configuration of a new Bercurve Sink is with 16 separate input ports per curve. The ports are paired: (0, 1), (2, 3), ... (14,15). Each input pair produces one point on the corresponding curve.
Bus input ports
Instead of having so many separate input ports (16 times the number of curves), the sink can operate in the "Bus" mode, where all the data for one curve is grouped into one "bus". To activate this mode, right click on the Bercurve Sink block, select "More", then select "Toggle Sink Bus". This mode matches the output of a "BER Curve Gen." block. See the example flowgraph below.
Parameters
- esno
- Vector of SNR (ES/No) values to plot for. Typical value is
numpy.arange (0, 8, .5)
- Min. BER Errs.
- BER Limit
- Num Curves
- Number of curves to draw on the same graph
- Curve Names
- Y min
- Y max
- Update Period
- GUI Hint
- See GUI Hint for info about how to organize multiple QT GUIs
- Line X Label
- Line X Width
- Line X Color
- Line X Style
- Line X Marker
- Line X Alpha
Example Flowgraph
This flowgraph is derived from https://github.com/gnuradio/gnuradio/blob/master/gr-fec/examples/ber_curve_gen.grc
Source Files
- C++ files
- [1]
- Header files
- [2]
- Public header files
- [3]
- Block definition
- [4]