From f1c41f807cb29472d0924149e39d6ec8ad90e6a2 Mon Sep 17 00:00:00 2001
From: eb <eb@221aa14e-8319-0410-a670-987f0aec2ac5>
Date: Wed, 27 Sep 2006 05:14:03 +0000
Subject: Merged changes from eb/digital-wip into trunk.

This includes:

* renaming gnuradio-examples/python/gmsk2 to gnuradio-examples/python/digital
* refactoring the digital data tx and rx test code into benchmark_tx
and benchmark_rx.  These accept a -m <modulation> argument.
<modulation> can currently be selected from gmsk, dbpsk, dqpsk
* Two new AGC blocks:  gr_agc2: separate attack and delay rates;
gr_feedforward_agc: FIR-ish compressor.  Normalizes to peak envelope.
* Working DBPSK mod/demod (works fine)
* Working DQPSK mod/demod (works, but still needs more work)


git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@3662 221aa14e-8319-0410-a670-987f0aec2ac5
---
 gnuradio-core/src/python/gnuradio/blksimpl/psk.py | 67 +++++++++++++++++++++++
 1 file changed, 67 insertions(+)
 create mode 100644 gnuradio-core/src/python/gnuradio/blksimpl/psk.py

(limited to 'gnuradio-core/src/python/gnuradio/blksimpl/psk.py')

diff --git a/gnuradio-core/src/python/gnuradio/blksimpl/psk.py b/gnuradio-core/src/python/gnuradio/blksimpl/psk.py
new file mode 100644
index 0000000000..fdb6c9e693
--- /dev/null
+++ b/gnuradio-core/src/python/gnuradio/blksimpl/psk.py
@@ -0,0 +1,67 @@
+#
+# Copyright 2005,2006 Free Software Foundation, Inc.
+# 
+# This file is part of GNU Radio
+# 
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+# 
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+# 
+
+from math import pi, sqrt
+import cmath
+
+def make_constellation(m):
+    return [cmath.exp(i * 2 * pi / m * 1j) for i in range(m)]
+        
+# Common definition of constellations for Tx and Rx
+constellation = {
+    2 : make_constellation(2),           # BPSK
+    4 : make_constellation(4),           # QPSK
+    8 : make_constellation(8)            # 8PSK
+    }
+
+# -----------------------
+# Do Gray code
+# -----------------------
+# binary to gray coding
+binary_to_gray = {
+    2 : (0, 1),
+    4 : (0, 1, 3, 2),
+    8 : (0, 1, 3, 2, 7, 6, 4, 5)
+    }
+   
+# gray to binary
+gray_to_binary = {
+    2 : (0, 1),
+    4 : (0, 1, 3, 2),
+    8 : (0, 1, 3, 2, 6, 7, 5, 4)
+    }
+
+# -----------------------
+# Don't Gray code
+# -----------------------
+# identity mapping
+binary_to_ungray = {
+    2 : (0, 1),
+    4 : (0, 1, 2, 3),
+    8 : (0, 1, 2, 3, 4, 5, 6, 7)
+    }
+    
+# identity mapping
+ungray_to_binary = {
+    2 : (0, 1),
+    4 : (0, 1, 2, 3),
+    8 : (0, 1, 2, 3, 4, 5, 6, 7)
+    }
-- 
cgit v1.2.3