|
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. | |
Public Member Functions inherited from digital_constellation | |
| 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 | |
Protected Member Functions inherited from digital_constellation | |
| float | get_distance (unsigned int index, const gr_complex *sample) |
| unsigned int | get_closest_point (const gr_complex *sample) |
| void | calc_arity () |
Protected Attributes inherited from digital_constellation | |
| 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 |