summaryrefslogtreecommitdiff
path: root/gr-digital/lib
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/lib')
-rw-r--r--gr-digital/lib/digital_constellation.cc8
-rw-r--r--gr-digital/lib/digital_constellation.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/gr-digital/lib/digital_constellation.cc b/gr-digital/lib/digital_constellation.cc
index ed6d32bcb..3dfc70273 100644
--- a/gr-digital/lib/digital_constellation.cc
+++ b/gr-digital/lib/digital_constellation.cc
@@ -463,12 +463,16 @@ digital_make_constellation_dqpsk()
digital_constellation_dqpsk::digital_constellation_dqpsk ()
{
+ // This constellation is not gray coded, which allows
+ // us to use differential encodings (through gr_diff_encode and
+ // gr_diff_decode) on the symbols.
d_constellation.resize(4);
d_constellation[0] = gr_complex(+SQRT_TWO, +SQRT_TWO);
d_constellation[1] = gr_complex(-SQRT_TWO, +SQRT_TWO);
d_constellation[2] = gr_complex(-SQRT_TWO, -SQRT_TWO);
d_constellation[3] = gr_complex(+SQRT_TWO, -SQRT_TWO);
+ // Use this mapping to convert to gray code before diff enc.
d_pre_diff_code.resize(4);
d_pre_diff_code[0] = 0x0;
d_pre_diff_code[1] = 0x1;
@@ -481,10 +485,12 @@ digital_constellation_dqpsk::digital_constellation_dqpsk ()
calc_arity();
}
-#include <cstdio>
unsigned int
digital_constellation_dqpsk::decision_maker(const gr_complex *sample)
{
+ // Slower deicison maker as we can't slice along one axis.
+ // Maybe there's a better way to do this, still.
+
bool a = real(*sample) > 0;
bool b = imag(*sample) > 0;
if(a) {
diff --git a/gr-digital/lib/digital_constellation.h b/gr-digital/lib/digital_constellation.h
index fd773a907..3e54e7d96 100644
--- a/gr-digital/lib/digital_constellation.h
+++ b/gr-digital/lib/digital_constellation.h
@@ -344,6 +344,7 @@ class digital_constellation_qpsk : public digital_constellation
/* */
/************************************************************/
+//! \brief DQPSK-specific constellation and decision maker
class digital_constellation_dqpsk;
typedef boost::shared_ptr<digital_constellation_dqpsk> digital_constellation_dqpsk_sptr;