gr::digital::constellation
std::enable_shared_from_this< constellation >
gr::digital::constellation_16qam
gr::digital::constellation_8psk
gr::digital::constellation_8psk_natural
gr::digital::constellation_bpsk
gr::digital::constellation_calcdist
gr::digital::constellation_dqpsk
gr::digital::constellation_qpsk
gr::digital::constellation_sector
gnuradio/digital/constellation.h
normalization_t
gr::digital::constellation::normalization_t
NO_NORMALIZATION
POWER_NORMALIZATION
AMPLITUDE_NORMALIZATION
std::vector< gr_complex > std::vector<gr_complex> gr::digital::constellation::d_constellation d_constellation gr::digital::constellation::d_constellation bits_per_symbol points
std::vector< int > std::vector<int> gr::digital::constellation::d_pre_diff_code d_pre_diff_code gr::digital::constellation::d_pre_diff_code pre_diff_code
bool bool gr::digital::constellation::d_apply_pre_diff_code d_apply_pre_diff_code gr::digital::constellation::d_apply_pre_diff_code apply_pre_diff_code set_pre_diff_code
unsigned int unsigned int gr::digital::constellation::d_rotational_symmetry d_rotational_symmetry gr::digital::constellation::d_rotational_symmetry rotational_symmetry
unsigned int unsigned int gr::digital::constellation::d_dimensionality d_dimensionality gr::digital::constellation::d_dimensionality bits_per_symbol dimensionality
unsigned int unsigned int gr::digital::constellation::d_arity d_arity gr::digital::constellation::d_arity arity
float float gr::digital::constellation::d_scalefactor d_scalefactor gr::digital::constellation::d_scalefactor

The factor by which the user given constellation points were scaled by to achieve an average amplitude of 1.

float float gr::digital::constellation::d_maxamp d_maxamp gr::digital::constellation::d_maxamp
float float gr::digital::constellation::d_re_min d_re_min gr::digital::constellation::d_re_min
float float gr::digital::constellation::d_re_max d_re_max gr::digital::constellation::d_re_max
float float gr::digital::constellation::d_im_min d_im_min gr::digital::constellation::d_im_min
float float gr::digital::constellation::d_im_max d_im_max gr::digital::constellation::d_im_max
std::vector< std::vector< float > > std::vector<std::vector<float> > gr::digital::constellation::d_soft_dec_lut d_soft_dec_lut gr::digital::constellation::d_soft_dec_lut
int int gr::digital::constellation::d_lut_precision d_lut_precision gr::digital::constellation::d_lut_precision
float float gr::digital::constellation::d_lut_scale d_lut_scale gr::digital::constellation::d_lut_scale
float float gr::digital::constellation::d_npwr d_npwr gr::digital::constellation::d_npwr
float float gr::digital::constellation::d_padding d_padding gr::digital::constellation::d_padding
bool bool gr::digital::constellation::d_use_external_lut d_use_external_lut gr::digital::constellation::d_use_external_lut
gr::digital::constellation::constellation
(std::vector< gr_complex > constell, std::vector< int > pre_diff_code, unsigned int rotational_symmetry, unsigned int dimensionality, normalization_t normalization=AMPLITUDE_NORMALIZATION, float npwr=1.0)
constellation
gr::digital::constellation::constellation
std::vector< gr_complex > constell
std::vector< int > pre_diff_code
unsigned int rotational_symmetry
unsigned int dimensionality
normalization_t normalization AMPLITUDE_NORMALIZATION
float npwr 1.0
AMPLITUDE_NORMALIZATION
dimensionality
pre_diff_code
rotational_symmetry
gr::digital::constellation::constellation
()
constellation
gr::digital::constellation::constellation
virtual gr::digital::constellation::~constellation
()
~constellation
gr::digital::constellation::~constellation
void void gr::digital::constellation::normalize (normalization_t normalization) normalize gr::digital::constellation::normalize normalization_t normalization

Normalizes the constellation.

void void gr::digital::constellation::map_to_points (unsigned int value, gr_complex *points) map_to_points gr::digital::constellation::map_to_points unsigned int value gr_complex * points

Returns the constellation points for a symbol value.

points
std::vector< gr_complex > std::vector< gr_complex > gr::digital::constellation::map_to_points_v (unsigned int value) map_to_points_v gr::digital::constellation::map_to_points_v unsigned int value
unsigned int virtual unsigned int gr::digital::constellation::decision_maker (const gr_complex *sample)=0 decision_maker gr::digital::constellation::decision_maker decision_maker decision_maker decision_maker decision_maker decision_maker decision_maker decision_maker decision_maker const gr_complex * sample

Returns the constellation point that matches best.

unsigned int unsigned int gr::digital::constellation::decision_maker_v (std::vector< gr_complex > sample) decision_maker_v gr::digital::constellation::decision_maker_v std::vector< gr_complex > sample

Takes a vector rather than a pointer. Better for SWIG wrapping.

unsigned int unsigned int gr::digital::constellation::decision_maker_pe (const gr_complex *sample, float *phase_error) decision_maker_pe gr::digital::constellation::decision_maker_pe const gr_complex * sample float * phase_error

Also calculates the phase error.

void virtual void gr::digital::constellation::calc_metric (const gr_complex *sample, float *metric, gr::digital::trellis_metric_type_t type) calc_metric gr::digital::constellation::calc_metric const gr_complex * sample float * metric gr::digital::trellis_metric_type_t type

Calculates distance.

Calculates metrics for all points in the constellation. For use with the viterbi algorithm.

void virtual void gr::digital::constellation::calc_euclidean_metric (const gr_complex *sample, float *metric) calc_euclidean_metric gr::digital::constellation::calc_euclidean_metric const gr_complex * sample float * metric
void virtual void gr::digital::constellation::calc_hard_symbol_metric (const gr_complex *sample, float *metric) calc_hard_symbol_metric gr::digital::constellation::calc_hard_symbol_metric const gr_complex * sample float * metric
std::vector< gr_complex > std::vector< gr_complex > gr::digital::constellation::points () points gr::digital::constellation::points

Returns the set of points in this constellation.

d_constellation
map_to_points
std::vector< gr_complex > std::vector< gr_complex > gr::digital::constellation::s_points () s_points gr::digital::constellation::s_points

Returns the vector of points in this constellation. Raise error if dimensionality is not one.

std::vector< std::vector< gr_complex > > std::vector< std::vector< gr_complex > > gr::digital::constellation::v_points () v_points gr::digital::constellation::v_points

Returns a vector of vectors of points.

bool bool gr::digital::constellation::apply_pre_diff_code () apply_pre_diff_code gr::digital::constellation::apply_pre_diff_code

Whether to apply an encoding before doing differential encoding. (e.g. gray coding).

d_apply_pre_diff_code
void void gr::digital::constellation::set_pre_diff_code (bool a) set_pre_diff_code gr::digital::constellation::set_pre_diff_code bool a

Whether to apply an encoding before doing differential encoding. (e.g. gray coding).

d_apply_pre_diff_code
std::vector< int > std::vector< int > gr::digital::constellation::pre_diff_code () pre_diff_code gr::digital::constellation::pre_diff_code

Returns the encoding to apply before differential encoding.

d_pre_diff_code
constellation
gr::digital::constellation_calcdist::constellation_calcdist
gr::digital::constellation_expl_rect::constellation_expl_rect
gr::digital::constellation_psk::constellation_psk
gr::digital::constellation_rect::constellation_rect
gr::digital::constellation_sector::constellation_sector
gr::digital::constellation_calcdist::make
gr::digital::constellation_expl_rect::make
gr::digital::constellation_psk::make
gr::digital::constellation_rect::make
unsigned int unsigned int gr::digital::constellation::rotational_symmetry () rotational_symmetry gr::digital::constellation::rotational_symmetry

Returns the order of rotational symmetry.

d_rotational_symmetry
constellation
gr::digital::constellation_calcdist::constellation_calcdist
gr::digital::constellation_expl_rect::constellation_expl_rect
gr::digital::constellation_rect::constellation_rect
gr::digital::constellation_sector::constellation_sector
gr::digital::constellation_calcdist::make
gr::digital::constellation_expl_rect::make
gr::digital::constellation_rect::make
unsigned int unsigned int gr::digital::constellation::dimensionality () dimensionality gr::digital::constellation::dimensionality

Returns the number of complex numbers in a single symbol.

d_dimensionality
constellation
gr::digital::constellation_calcdist::constellation_calcdist
gr::digital::constellation_sector::constellation_sector
gr::digital::constellation_calcdist::make
unsigned int unsigned int gr::digital::constellation::bits_per_symbol () bits_per_symbol gr::digital::constellation::bits_per_symbol d_constellation d_dimensionality
unsigned int unsigned int gr::digital::constellation::arity () arity gr::digital::constellation::arity d_arity
constellation_sptr constellation_sptr gr::digital::constellation::base () base gr::digital::constellation::base as_pmt
pmt::pmt_t pmt::pmt_t gr::digital::constellation::as_pmt () as_pmt gr::digital::constellation::as_pmt base pmt::make_any
void void gr::digital::constellation::gen_soft_dec_lut (int precision, float npwr=-1) gen_soft_dec_lut gr::digital::constellation::gen_soft_dec_lut int precision float npwr -1

Generates the soft decision LUT based on constellation and symbol map.

Generates the soft decision LUT based on constellation and symbol map. It can be given a estimate of the noise power in the channel as `npwr`.

precision

Number of bits of precision on each axis.

npwr

Estimate of the noise power (if known), defaults to -1 which will use class member.

This is expensive to compute.
std::vector< float > virtual std::vector< float > gr::digital::constellation::calc_soft_dec (gr_complex sample, float npwr=-1) calc_soft_dec gr::digital::constellation::calc_soft_dec gr_complex sample float npwr -1

Calculate soft decisions for the given `sample`.

Calculate the soft decisions from the given `sample` at the given noise power `npwr`.

This is a very costly algorithm (especially for higher order modulations) and should be used sparingly. It uses the gen_soft_dec_lut function to generate the LUT, which should be done once or if a large change in the noise floor is detected.

Instead of using this function, generate the LUT using the gen_soft_dec_lut after creating the constellation object and then use the soft_decision_maker function to return the answer from the LUT.

sample

The complex sample to get the soft decisions.

npwr

estimate of the noise power, defaults to -1 which will use class member.

void void gr::digital::constellation::set_soft_dec_lut (const std::vector< std::vector< float > > &soft_dec_lut, int precision) set_soft_dec_lut gr::digital::constellation::set_soft_dec_lut const std::vector< std::vector< float > > & soft_dec_lut int precision

Define a soft decision look-up table.

Define a soft decision look-up table (LUT). Because soft decisions can be calculated in various ways with various levels of accuracy and complexity, this function allows users to create a LUT in their own way.

Setting the LUT here means that has_soft_dec_lut will return true. Decision vectors returned by soft_decision_maker will be calculated using this LUT.

soft_dec_lut

The soft decision LUT as a vector of tuples (vectors in C++) of soft decisions. Each element of the LUT is a vector of k-bit floats (where there are k bits/sample in the constellation).

precision

The number of bits of precision used when generating the LUT.

soft_dec_lut
void void gr::digital::constellation::set_npwr (float npwr) set_npwr gr::digital::constellation::set_npwr float npwr

Sets the constellation noise power and recalculates LUT given `npwr`.

Sets the constellation noise power and recalculates LUT given `npwr`. If a LUT was defined via manual entry of a table, it will be a left alone. Otherwise, the LUT will be recalculated with the new noise power. This member is used by calc_soft_dec primarily.

npwr

The noise power to use for soft decisions

bool bool gr::digital::constellation::has_soft_dec_lut () has_soft_dec_lut gr::digital::constellation::has_soft_dec_lut

Returns True if the soft decision LUT has been defined, False otherwise.

std::vector< std::vector< float > > std::vector< std::vector< float > > gr::digital::constellation::soft_dec_lut () soft_dec_lut gr::digital::constellation::soft_dec_lut set_soft_dec_lut
std::vector< float > std::vector< float > gr::digital::constellation::soft_decision_maker (gr_complex sample) soft_decision_maker gr::digital::constellation::soft_decision_maker gr_complex sample

Returns the soft decisions for the given `sample`.

Returns the soft decisions for the given `sample`. If a LUT is defined for the object, the decisions will be calculated from there. Otherwise, this function will call calc_soft_dec directly to calculate the soft decisions.

sample

The complex sample to get the soft decisions.

float float gr::digital::constellation::get_distance (unsigned int index, const gr_complex *sample) get_distance gr::digital::constellation::get_distance unsigned int index const gr_complex * sample
unsigned int unsigned int gr::digital::constellation::get_closest_point (const gr_complex *sample) get_closest_point gr::digital::constellation::get_closest_point const gr_complex * sample
void void gr::digital::constellation::calc_arity () calc_arity gr::digital::constellation::calc_arity
void void gr::digital::constellation::max_min_axes () max_min_axes gr::digital::constellation::max_min_axes

An abstracted constellation object.

The constellation objects hold the necessary information to pass around constellation information for modulators and demodulators. These objects contain the mapping between the bits and the constellation points used to represent them as well as methods for slicing the symbol space. Various implementations are possible for efficiency and ease of use.

Standard constellations (BPSK, QPSK, QAM, etc) can be inherited from this class and overloaded to perform optimized slicing and constellation mappings.

gr::digital::constellation
gr::digital::constellation_16qam
gr::digital::constellation_8psk
gr::digital::constellation_8psk_natural
gr::digital::constellation_bpsk
gr::digital::constellation_calcdist
gr::digital::constellation_dqpsk
gr::digital::constellation_expl_rect
gr::digital::constellation_psk
gr::digital::constellation_qpsk
gr::digital::constellation_rect
gr::digital::constellation_sector
std::enable_shared_from_this< constellation >
gr::digital::constellation
d_constellation
d_pre_diff_code
d_soft_dec_lut
std::complex< float >
std::enable_shared_from_this< constellation >
std::vector< float >
std::vector< gr_complex >
elements
p
std::vector< int >
std::vector< std::vector< float > >
elements
p
- gr::digital::constellation
  AMPLITUDE_NORMALIZATION
- gr::digital::constellation
  apply_pre_diff_code
- gr::digital::constellation
  arity
- gr::digital::constellation
  as_pmt
- gr::digital::constellation
  base
- gr::digital::constellation
  bits_per_symbol
- gr::digital::constellation
  calc_arity
- gr::digital::constellation
  calc_euclidean_metric
- gr::digital::constellation
  calc_hard_symbol_metric
- gr::digital::constellation
  calc_metric
- gr::digital::constellation
  calc_soft_dec
- gr::digital::constellation
  constellation
- gr::digital::constellation
  constellation
- gr::digital::constellation
  d_apply_pre_diff_code
- gr::digital::constellation
  d_arity
- gr::digital::constellation
  d_constellation
- gr::digital::constellation
  d_dimensionality
- gr::digital::constellation
  d_im_max
- gr::digital::constellation
  d_im_min
- gr::digital::constellation
  d_lut_precision
- gr::digital::constellation
  d_lut_scale
- gr::digital::constellation
  d_maxamp
- gr::digital::constellation
  d_npwr
- gr::digital::constellation
  d_padding
- gr::digital::constellation
  d_pre_diff_code
- gr::digital::constellation
  d_re_max
- gr::digital::constellation
  d_re_min
- gr::digital::constellation
  d_rotational_symmetry
- gr::digital::constellation
  d_scalefactor
- gr::digital::constellation
  d_soft_dec_lut
- gr::digital::constellation
  d_use_external_lut
- gr::digital::constellation
  decision_maker
- gr::digital::constellation
  decision_maker_pe
- gr::digital::constellation
  decision_maker_v
- gr::digital::constellation
  dimensionality
- gr::digital::constellation
  gen_soft_dec_lut
- gr::digital::constellation
  get_closest_point
- gr::digital::constellation
  get_distance
- gr::digital::constellation
  has_soft_dec_lut
- gr::digital::constellation
  map_to_points
- gr::digital::constellation
  map_to_points_v
- gr::digital::constellation
  max_min_axes
- gr::digital::constellation
  NO_NORMALIZATION
- gr::digital::constellation
  normalization_t
- gr::digital::constellation
  normalize
- gr::digital::constellation
  points
- gr::digital::constellation
  POWER_NORMALIZATION
- gr::digital::constellation
  pre_diff_code
- gr::digital::constellation
  rotational_symmetry
- gr::digital::constellation
  s_points
- gr::digital::constellation
  set_npwr
- gr::digital::constellation
  set_pre_diff_code
- gr::digital::constellation
  set_soft_dec_lut
- gr::digital::constellation
  soft_dec_lut
- gr::digital::constellation
  soft_decision_maker
- gr::digital::constellation
  v_points
- gr::digital::constellation
  ~constellation