GNU Radio 3.7.2git-79-g931a7b07 C++ API
gr::digital::constellation_psk Class Reference

constellation_pskConstellation space is divided into pie slices sectors. More...

#include <constellation.h>

Inheritance diagram for gr::digital::constellation_psk:
gr::digital::constellation_sector gr::digital::constellation

List of all members.

Public Types

typedef boost::shared_ptr
< constellation_psk
sptr

Public Member Functions

 ~constellation_psk ()
- Public Member Functions inherited from 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)
 ~constellation_sector ()
unsigned int decision_maker (const gr_complex *sample)
 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)
 constellation ()
virtual ~constellation ()
void map_to_points (unsigned int value, gr_complex *points)
 Returns the constellation points for a symbol value.
std::vector< gr_complexmap_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_complexpoints ()
 Returns the set of points in this constellation.
std::vector< gr_complexs_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 ()
void gen_soft_dec_lut (int precision, float npwr=1.0)
 Generates the soft decision LUT based on constellation and symbol map.
virtual std::vector< float > calc_soft_dec (gr_complex sample, float npwr=1.0)
 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.
bool has_soft_dec_lut ()
 Returns True if the soft decision LUT has been defined, False otherwise.
std::vector< float > soft_decision_maker (gr_complex sample)
 Returns the soft decisions for the given sample.

Static Public Member Functions

static sptr make (std::vector< gr_complex > constell, std::vector< int > pre_diff_code, unsigned int n_sectors)

Protected Member Functions

unsigned int get_sector (const gr_complex *sample)
unsigned int calc_sector_value (unsigned int sector)
 constellation_psk (std::vector< gr_complex > constell, std::vector< int > pre_diff_code, unsigned int n_sectors)
- Protected Member Functions inherited from gr::digital::constellation_sector
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 ()

Additional Inherited Members

- Protected Attributes inherited from gr::digital::constellation_sector
unsigned int n_sectors
- Protected Attributes inherited from gr::digital::constellation
std::vector< gr_complexd_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_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

Detailed Description

constellation_psk

Constellation space is divided into pie slices sectors.

Each slice is associated with the nearest constellation point.

Works well for PSK but nothing else.

Assumes that there is a constellation point at 1.x


Member Typedef Documentation


Constructor & Destructor Documentation

gr::digital::constellation_psk::~constellation_psk ( )
gr::digital::constellation_psk::constellation_psk ( std::vector< gr_complex constell,
std::vector< int >  pre_diff_code,
unsigned int  n_sectors 
)
protected

Member Function Documentation

unsigned int gr::digital::constellation_psk::calc_sector_value ( unsigned int  sector)
protectedvirtual
unsigned int gr::digital::constellation_psk::get_sector ( const gr_complex sample)
protectedvirtual
static sptr gr::digital::constellation_psk::make ( std::vector< gr_complex constell,
std::vector< int >  pre_diff_code,
unsigned int  n_sectors 
)
static

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