GNU Radio 3.6.1 C++ API
|
Calculate Euclidian distance for any constellationConstellation which calculates the distance to each point in the constellation for decision making. Inefficient for large constellations. More...
#include <digital_constellation.h>
Public Member Functions | |
digital_constellation_calcdist (std::vector< gr_complex > constellation, std::vector< unsigned int > pre_diff_code, unsigned int rotational_symmetry, unsigned int dimensionality) | |
unsigned int | decision_maker (const gr_complex *sample) |
Returns the constellation point that matches best. | |
![]() | |
digital_constellation (std::vector< gr_complex > constellation, std::vector< unsigned int > pre_diff_code, unsigned int rotational_symmetry, unsigned int dimensionality) | |
digital_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. | |
unsigned int | decision_maker_e (const gr_complex *sample, float *error) |
Calculates distance. | |
virtual void | calc_metric (const gr_complex *sample, float *metric, trellis_metric_type_t type) |
Calculates metrics for all points in the constellation. For use with the viterbi algorithm. | |
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< unsigned 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 () |
digital_constellation_sptr | base () |
Friends | |
DIGITAL_API digital_constellation_calcdist_sptr | digital_make_constellation_calcdist (std::vector< gr_complex > constellation) |
Additional Inherited Members | |
![]() | |
float | get_distance (unsigned int index, const gr_complex *sample) |
unsigned int | get_closest_point (const gr_complex *sample) |
void | calc_arity () |
![]() | |
std::vector< gr_complex > | d_constellation |
std::vector< unsigned int > | d_pre_diff_code |
bool | d_apply_pre_diff_code |
unsigned int | d_rotational_symmetry |
unsigned int | d_dimensionality |
unsigned int | d_arity |
Calculate Euclidian distance for any constellation
Constellation which calculates the distance to each point in the constellation for decision making. Inefficient for large constellations.
digital_constellation_calcdist::digital_constellation_calcdist | ( | std::vector< gr_complex > | constellation, |
std::vector< unsigned int > | pre_diff_code, | ||
unsigned int | rotational_symmetry, | ||
unsigned int | dimensionality | ||
) |
|
virtual |
Returns the constellation point that matches best.
Implements digital_constellation.
|
friend |