Loading...
Searching...
No Matches
gr::digital::constellation_sector Class Referenceabstract

Sectorized digital constellation. More...

`#include <gnuradio/digital/constellation.h>`

## Public Member Functions

| constellation_sector (std::vector< gr_complex > constell, std::vector< int > pre_diff_code, unsigned int rotational_symmetry, unsigned int dimensionality, unsigned int n_sectors, normalization_t normalization=AMPLITUDE_NORMALIZATION)
| ~constellation_sector () override
unsigned int | decision_maker (const gr_complex *sample) override
| Returns the constellation point that matches best.
Public Member Functions inherited from 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 ()
virtual | ~constellation ()
void | normalize (normalization_t normalization)
| Normalizes the constellation.
void | map_to_points (unsigned int value, gr_complex *points)
| Returns the constellation points for a symbol value.
std::vector< gr_complex > | map_to_points_v (unsigned int value)
unsigned int | decision_maker_v (std::vector< gr_complex > sample)
| Takes a vector rather than a pointer. Better for SWIG wrapping.
unsigned int | decision_maker_pe (const gr_complex *sample, float *phase_error)
| Also calculates the phase error.
virtual void | calc_metric (const gr_complex *sample, float *metric, gr::digital::trellis_metric_type_t type)
| Calculates distance.
virtual void | calc_euclidean_metric (const gr_complex *sample, float *metric)
virtual void | calc_hard_symbol_metric (const gr_complex *sample, float *metric)
std::vector< gr_complex > | points ()
| Returns the set of points in this constellation.
std::vector< gr_complex > | s_points ()
| Returns the vector of points in this constellation. Raise error if dimensionality is not one.
std::vector< std::vector< gr_complex > > | v_points ()
| Returns a vector of vectors of points.
bool | apply_pre_diff_code ()
| Whether to apply an encoding before doing differential encoding. (e.g. gray coding).
void | set_pre_diff_code (bool a)
| Whether to apply an encoding before doing differential encoding. (e.g. gray coding).
std::vector< int > | pre_diff_code ()
| Returns the encoding to apply before differential encoding.
unsigned int | rotational_symmetry ()
| Returns the order of rotational symmetry.
unsigned int | dimensionality ()
| Returns the number of complex numbers in a single symbol.
unsigned int | bits_per_symbol ()
unsigned int | arity ()
constellation_sptr | base ()
pmt::pmt_t | as_pmt ()
void | gen_soft_dec_lut (int precision, float npwr=-1)
| Generates the soft decision LUT based on constellation and symbol map.
virtual std::vector< float > | calc_soft_dec (gr_complex sample, float npwr=-1)
| Calculate soft decisions for the given `sample`.
void | set_soft_dec_lut (const std::vector< std::vector< float > > &soft_dec_lut, int precision)
| Define a soft decision look-up table.
void | set_npwr (float npwr)
| Sets the constellation noise power and recalculates LUT given `npwr`.
bool | has_soft_dec_lut ()
| Returns True if the soft decision LUT has been defined, False otherwise.
std::vector< std::vector< float > > | soft_dec_lut ()
std::vector< float > | soft_decision_maker (gr_complex sample)
| Returns the soft decisions for the given `sample`.

## Protected Member Functions

virtual unsigned int | get_sector (const gr_complex *sample)=0
virtual unsigned int | calc_sector_value (unsigned int sector)=0
void | find_sector_values ()
Protected Member Functions inherited from gr::digital::constellation
float | get_distance (unsigned int index, const gr_complex *sample)
unsigned int | get_closest_point (const gr_complex *sample)
void | calc_arity ()
void | max_min_axes ()

## Protected Attributes

unsigned int | n_sectors
Protected Attributes inherited from gr::digital::constellation
std::vector< gr_complex > | d_constellation
std::vector< int > | d_pre_diff_code
bool | d_apply_pre_diff_code
unsigned int | d_rotational_symmetry
unsigned int | d_dimensionality
unsigned int | d_arity
float | d_scalefactor
| The factor by which the user given constellation points were scaled by to achieve an average amplitude of 1.
float | d_maxamp
float | d_re_min
float | d_re_max
float | d_im_min
float | d_im_max
std::vector< std::vector< float > > | d_soft_dec_lut
int | d_lut_precision
float | d_lut_scale
float | d_npwr
float | d_padding
bool | d_use_external_lut

## Additional Inherited Members

Public Types inherited from gr::digital::constellation
enum | normalization_t { NO_NORMALIZATION , POWER_NORMALIZATION , AMPLITUDE_NORMALIZATION }

## Detailed Description

Sectorized digital constellation.

constellation_sector

Constellation space is divided into sectors. Each sector is associated with the nearest constellation point.

## Constructor & Destructor Documentation

## constellation_sector()

gr::digital::constellation_sector::constellation_sector | ( | std::vector< gr_complex > | constell,
|  | std::vector< int > | pre_diff_code,
|  | unsigned int | rotational_symmetry,
|  | unsigned int | dimensionality,
|  | unsigned int | n_sectors,
|  | normalization_t | normalization = AMPLITUDE_NORMALIZATION )

Make a sectorized constellation object.

Parameters

  constell | List of constellation points (order of list matches pre_diff_code)
  pre_diff_code | List of alphabet symbols (before applying any differential coding) (order of list matches constell)
  rotational_symmetry | Number of rotations around unit circle that have the same representation.
  dimensionality | Number of z-axis dimensions to the constellation
  n_sectors | Number of sectors in the constellation.
  normalization | Use AMPLITUDE_NORMALIZATION to normalize points to mean(abs(points))=1 (default), POWER_NORMALIZATION to normalize points to mean(abs(points)^2)=1 or NO_NORMALIZATION to keep the original amplitude.

References gr::digital::constellation::AMPLITUDE_NORMALIZATION, gr::digital::constellation::dimensionality(), n_sectors, gr::digital::constellation::pre_diff_code(), and gr::digital::constellation::rotational_symmetry().

## ~constellation_sector()

gr::digital::constellation_sector::~constellation_sector | ( |  | ) |

override

## Member Function Documentation

## calc_sector_value()

virtual unsigned int gr::digital::constellation_sector::calc_sector_value | ( | unsigned int | sector | ) |

protected pure virtual

Implemented in gr::digital::constellation_expl_rect, gr::digital::constellation_psk, and gr::digital::constellation_rect.

## decision_maker()

unsigned int gr::digital::constellation_sector::decision_maker | ( | const gr_complex * | sample | ) |

override virtual

Returns the constellation point that matches best.

Implements gr::digital::constellation.

## find_sector_values()

void gr::digital::constellation_sector::find_sector_values | ( |  | ) |

protected

## get_sector()

virtual unsigned int gr::digital::constellation_sector::get_sector | ( | const gr_complex * | sample | ) |

protected pure virtual

Implemented in gr::digital::constellation_psk, and gr::digital::constellation_rect.

## Member Data Documentation

## n_sectors

unsigned int gr::digital::constellation_sector::n_sectors

protected

Referenced by gr::digital::constellation_psk::constellation_psk(), constellation_sector(), and gr::digital::constellation_psk::make().

The documentation for this class was generated from the following file:

- constellation.h