diff options
Diffstat (limited to 'gr-digital/lib/digital_constellation.h')
-rw-r--r-- | gr-digital/lib/digital_constellation.h | 58 |
1 files changed, 44 insertions, 14 deletions
diff --git a/gr-digital/lib/digital_constellation.h b/gr-digital/lib/digital_constellation.h index 73cc888f9..9da87a4de 100644 --- a/gr-digital/lib/digital_constellation.h +++ b/gr-digital/lib/digital_constellation.h @@ -30,7 +30,7 @@ #include <gr_metric_type.h> /************************************************************/ -/* digital_constellation */ +/* digital_constellation */ /* */ /* Base class defining interface. */ /************************************************************/ @@ -42,7 +42,7 @@ class digital_constellation : public boost::enable_shared_from_this<digital_cons { public: digital_constellation (std::vector<gr_complex> constellation, std::vector<unsigned int> pre_diff_code, - unsigned int rotational_symmetry, unsigned int dimensionality); + unsigned int rotational_symmetry, unsigned int dimensionality); digital_constellation (); //! Returns the constellation points for a symbol value @@ -120,7 +120,7 @@ typedef boost::shared_ptr<digital_constellation_calcdist> digital_constellation_ // public constructor digital_constellation_calcdist_sptr digital_make_constellation_calcdist (std::vector<gr_complex> constellation, std::vector<unsigned int> pre_diff_code, - unsigned int rotational_symmetry, unsigned int dimensionality); + unsigned int rotational_symmetry, unsigned int dimensionality); class digital_constellation_calcdist : public digital_constellation @@ -141,7 +141,7 @@ class digital_constellation_calcdist : public digital_constellation }; /************************************************************/ -/* digital_constellation_sector */ +/* digital_constellation_sector */ /* */ /* An abstract class. */ /* Constellation space is divided into sectors. */ @@ -176,7 +176,7 @@ class digital_constellation_sector : public digital_constellation }; /************************************************************/ -/* digital_constellation_rect */ +/* digital_constellation_rect */ /* */ /* Only implemented for 1-(complex)dimensional */ /* constellation. */ @@ -229,7 +229,7 @@ class digital_constellation_rect : public digital_constellation_sector }; /************************************************************/ -/* digital_constellation_psk */ +/* digital_constellation_psk */ /* */ /* Constellation space is divided into pie slices sectors. */ /* Each slice is associated with the nearest constellation */ @@ -243,15 +243,17 @@ typedef boost::shared_ptr<digital_constellation_psk> digital_constellation_psk_s // public constructor digital_constellation_psk_sptr -digital_make_constellation_psk (std::vector<gr_complex> constellation, std::vector<unsigned int> pre_diff_code, - unsigned int n_sectors); +digital_make_constellation_psk (std::vector<gr_complex> constellation, + std::vector<unsigned int> pre_diff_code, + unsigned int n_sectors); class digital_constellation_psk : public digital_constellation_sector { public: - digital_constellation_psk (std::vector<gr_complex> constellation, std::vector<unsigned int> pre_diff_code, - unsigned int n_sectors); + digital_constellation_psk (std::vector<gr_complex> constellation, + std::vector<unsigned int> pre_diff_code, + unsigned int n_sectors); protected: @@ -262,13 +264,14 @@ class digital_constellation_psk : public digital_constellation_sector private: friend digital_constellation_psk_sptr - digital_make_constellation_psk (std::vector<gr_complex> constellation, std::vector<unsigned int> pre_diff_code, - unsigned int n_sectors); + digital_make_constellation_psk (std::vector<gr_complex> constellation, + std::vector<unsigned int> pre_diff_code, + unsigned int n_sectors); }; /************************************************************/ -/* digital_constellation_bpsk */ +/* digital_constellation_bpsk */ /* */ /* Only works for BPSK. */ /* */ @@ -294,7 +297,7 @@ class digital_constellation_bpsk : public digital_constellation }; /************************************************************/ -/* digital_constellation_qpsk */ +/* digital_constellation_qpsk */ /* */ /* Only works for QPSK. */ /* */ @@ -319,4 +322,31 @@ class digital_constellation_qpsk : public digital_constellation }; + +/************************************************************/ +/* digital_constellation_8psk */ +/* */ +/* Only works for 8PSK. */ +/* */ +/************************************************************/ + +class digital_constellation_8psk; +typedef boost::shared_ptr<digital_constellation_8psk> digital_constellation_8psk_sptr; + +// public constructor +digital_constellation_8psk_sptr +digital_make_constellation_8psk (); + +class digital_constellation_8psk : public digital_constellation +{ + public: + + digital_constellation_8psk (); + unsigned int decision_maker (const gr_complex *sample); + + friend digital_constellation_8psk_sptr + digital_make_constellation_8psk (); + +}; + #endif |