Constellation Object

GNU Radio supports the creation and use of Constellation objects for many of its digital communications needs. We define these constellations with a set of constellation points in complex space and the symbol mappings to those points. For a constellation that has 4 symbols, it then has log2(4) = 2 bits/symbol. We define this constellation with a list of Constellation Points and Symbol Map. For example, 16QAM would have:

Constellation Points = [(-3-3j), (-1-3j), (1-3j), (3-3j), (-3-1j), (-1-1j), (1-1j), (3-1j), (-3+1j), (-1+1j), (1+1j), (3+1j), (-3+3j), (-1+3j), (1+3j), (3+3j)] Symbol Map = [0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10]

The mapping is a 1-to-1 for the items in both lists. The symbols are referred to as the 'pre_diff_code' since this is the mapping before the application of differential modulation, if used.

See for more info.

Parameters

 * Constellation Type
 * Type of modulation scheme. Choose Variable Constellation for more control.


 * Soft Decisions Precision
 * Specifies how accurate the look up table (LUT) is to a given number of bits.


 * Soft Decisions LUT
 * Vector of floating point tuples that acts as the look up table (LUT). Can be set to 'auto' for GNU Radio to populate it.


 * Symbol Map
 * (Available when using Variable Constellation) Manually specify the symbol map (in pre-diff values) in list form. For manually defined symbols in QPSK, symbols start in quadrant 1 and proceeding counterclockwise (standardvalues are sometimes in different order). 8PSK symbols start at (0.92,0.38) and proceed in the nonsensical order of Pi/8 times: 1, 7, 15, 9, 3, 5, 13, 11. So symbols [0,1,2,3,4,5,6,7] become 0, 4, 5, 1, 3, 7, 6, 2, counterclockwise from (0.92,0.38).


 * Constellation Points
 * (Available when using Variable Constellation) Manually specify the constellation points, using a list of complex numbers.


 * Rotational Symmetry
 * (Available when using Variable Constellation) The number of rotations per 360 degrees that the constellation is symmetric, which is 4 for the common constellations. Unclear if this affects anything other than some tests in qa_constellation.py.


 * Dimensionality
 * (Available when using Variable Constellation) The number of dimensions, typically set to 1.

Example Flowgraph
This flowgraph generates symbols using a chosen modulation scheme, runs the signal through a channel model, and then simulates a receiver by synchronizing to the signal and performing soft decoding.



Source Files

 * C++ files
 * see middle of this page


 * Header files
 * TODO


 * Public header files
 * Here


 * Block definition
 * TODO