summaryrefslogtreecommitdiff
path: root/gr-digital/python
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/python')
-rw-r--r--gr-digital/python/Makefile.am4
-rw-r--r--gr-digital/python/__init__.py2
-rw-r--r--gr-digital/python/generic_mod_demod.py6
-rw-r--r--gr-digital/python/psk2.py8
-rwxr-xr-xgr-digital/python/qa_constellation.py20
-rwxr-xr-xgr-digital/python/qa_constellation_receiver.py13
-rw-r--r--gr-digital/python/qam.py10
7 files changed, 39 insertions, 24 deletions
diff --git a/gr-digital/python/Makefile.am b/gr-digital/python/Makefile.am
index f4f72f8d84..f0bfbc28f7 100644
--- a/gr-digital/python/Makefile.am
+++ b/gr-digital/python/Makefile.am
@@ -31,7 +31,9 @@ TESTS += run_tests
digitaldir = $(grpythondir)/digital
noinst_PYTHON = \
- qa_digital.py \
+ qa_digital.py \
+ qa_constellation.py \
+ qa_constellation_receiver.py \
qa_costas_loop_cc.py
digital_PYTHON = \
diff --git a/gr-digital/python/__init__.py b/gr-digital/python/__init__.py
index 4bbb9850b6..a17128e7d2 100644
--- a/gr-digital/python/__init__.py
+++ b/gr-digital/python/__init__.py
@@ -25,3 +25,5 @@ from digital_swig import *
from dbpsk import *
from dqpsk import *
from d8psk import *
+from psk2 import *
+from qam import *
diff --git a/gr-digital/python/generic_mod_demod.py b/gr-digital/python/generic_mod_demod.py
index a85b21219e..04302f0a48 100644
--- a/gr-digital/python/generic_mod_demod.py
+++ b/gr-digital/python/generic_mod_demod.py
@@ -27,7 +27,9 @@ Generic modulation and demodulation.
from gnuradio import gr
from gnuradio.modulation_utils2 import extract_kwargs_from_options_for_class
-from gnuradio.digital.utils import mod_codes
+#from gnuradio.digital.utils import mod_codes
+from utils import mod_codes
+import digital_swig
# default values (used in __init__ and add_options)
_def_samples_per_symbol = 2
@@ -282,7 +284,7 @@ class generic_demod(gr.hier_block2):
fmin = -0.25
fmax = 0.25
- self.receiver = gr.constellation_receiver_cb(
+ self.receiver = digital_swig.constellation_receiver_cb(
self._constellation,
self._phase_alpha, self._phase_beta,
fmin, fmax)
diff --git a/gr-digital/python/psk2.py b/gr-digital/python/psk2.py
index 089af11dd0..6ab398e42c 100644
--- a/gr-digital/python/psk2.py
+++ b/gr-digital/python/psk2.py
@@ -27,8 +27,10 @@ from math import pi, log
from cmath import exp
from gnuradio import gr, modulation_utils2
-from gnuradio.digital.generic_mod_demod import generic_mod, generic_demod
-from gnuradio.digital.utils import mod_codes, gray_code
+import digital_swig
+#from gnuradio.digital.generic_mod_demod import generic_mod, generic_demod
+from utils import mod_codes, gray_code
+from generic_mod_demod import generic_mod, generic_demod
# Default number of points in constellation.
_def_constellation_points = 4
@@ -65,7 +67,7 @@ def psk_constellation(m=_def_constellation_points, mod_code=_def_mod_code):
if post_diff_code is not None:
inverse_post_diff_code = mod_codes.invert_code(post_diff_code)
points = [points[x] for x in inverse_post_diff_code]
- constellation = gr.constellation_psk(points, pre_diff_code, m)
+ constellation = digital_swig.constellation_psk(points, pre_diff_code, m)
return constellation
# /////////////////////////////////////////////////////////////////////////////
diff --git a/gr-digital/python/qa_constellation.py b/gr-digital/python/qa_constellation.py
index 72b9e99bc3..02afb8d2da 100755
--- a/gr-digital/python/qa_constellation.py
+++ b/gr-digital/python/qa_constellation.py
@@ -27,6 +27,9 @@ from gnuradio import gr, gr_unittest, blks2
from utils import mod_codes
import digital_swig
+# import from local folder
+import psk2
+import qam
tested_mod_codes = (mod_codes.NO_CODE, mod_codes.GRAY_CODE)
@@ -47,7 +50,7 @@ def twod_constell():
(-1+0j), (0-1j))
rot_sym = 2
dim = 2
- return gr.constellation_calcdist(points, [], rot_sym, dim)
+ return digital_swig.constellation_calcdist(points, [], rot_sym, dim)
def threed_constell():
oned_points = ((1+0j), (0+1j), (-1+0j), (0-1j))
@@ -59,22 +62,19 @@ def threed_constell():
points += [oned_points[ia], oned_points[ib], oned_points[ic]]
rot_sym = 4
dim = 3
- return gr.constellation_calcdist(points, [], rot_sym, dim)
+ return digital_swig.constellation_calcdist(points, [], rot_sym, dim)
tested_constellation_info = (
- (blks2.psk_constellation,
+ (psk2.psk_constellation,
{'m': (2, 4, 8, 16, 32, 64),
'mod_code': tested_mod_codes, },
True, None),
- (blks2.qam_constellation,
- {'constellation_points': (4, 16, 64),
- 'mod_code': tested_mod_codes, },
- True, 'differential'),
- (blks2.bpsk_constellation, {}, True, None),
+ (digital_swig.constellation_bpsk, {}, True, None),
# No differential testing for qpsk because it is gray-coded.
# This is because soft decision making is simpler if we can assume
# gray coding.
- (blks2.qpsk_constellation, {}, False, None),
+ (digital_swig.constellation_qpsk, {}, False, None),
+ (digital_swig.constellation_8psk, {}, False, None),
(twod_constell, {}, True, None),
(threed_constell, {}, True, None),
)
@@ -182,7 +182,7 @@ class mod_demod(gr.hier_block2):
# RX
# Convert the constellation symbols back to binary values.
- self.blocks.append(gr.constellation_decoder2_cb(self.constellation.base()))
+ self.blocks.append(digital_swig.constellation_decoder_cb(self.constellation.base()))
# Differential decoding.
if self.differential:
self.blocks.append(gr.diff_decoder_bb(arity))
diff --git a/gr-digital/python/qa_constellation_receiver.py b/gr-digital/python/qa_constellation_receiver.py
index ebdbf3bfbd..70b62c7aab 100755
--- a/gr-digital/python/qa_constellation_receiver.py
+++ b/gr-digital/python/qa_constellation_receiver.py
@@ -25,9 +25,11 @@ import random
from gnuradio import gr, blks2, packet_utils, gr_unittest
from utils import mod_codes, alignment
import digital_swig
+from generic_mod_demod import generic_mod, generic_demod
from qa_constellation import tested_constellations, twod_constell
+
# Set a seed so that if errors turn up they are reproducible.
# 1234 fails
random.seed(1239)
@@ -68,6 +70,7 @@ class test_constellation_receiver (gr_unittest.TestCase):
demodulation uses constellation_receiver which is what
we're really trying to test.
"""
+
# Assumes not more than 64 points in a constellation
# Generates some random input data to use.
self.src_data = tuple(
@@ -76,7 +79,7 @@ class test_constellation_receiver (gr_unittest.TestCase):
# output data (a full comparison is too slow in python).
self.indices = alignment.random_sample(
self.max_data_length, self.max_num_samples, self.seed)
-
+
for constellation, differential in tested_constellations():
# The constellation_receiver doesn't work for constellations
# of multple dimensions (i.e. multiple complex numbers to a
@@ -119,13 +122,13 @@ class rec_test_tb (gr.top_block):
self.src_data = src_data
packer = gr.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)
src = gr.vector_source_b(self.src_data)
- mod = blks2.generic_mod(constellation, differential=differential)
+ mod = generic_mod(constellation, differential=differential)
# Channel
channel = gr.channel_model(NOISE_VOLTAGE, FREQUENCY_OFFSET, TIMING_OFFSET)
# Receiver Blocks
- demod = blks2.generic_demod(constellation, differential=differential,
- freq_alpha=FREQ_ALPHA,
- phase_alpha=PHASE_ALPHA)
+ demod = generic_demod(constellation, differential=differential,
+ freq_alpha=FREQ_ALPHA,
+ phase_alpha=PHASE_ALPHA)
self.dst = gr.vector_sink_b()
self.connect(src, packer, mod, channel, demod, self.dst)
diff --git a/gr-digital/python/qam.py b/gr-digital/python/qam.py
index d22aac55e6..5eb34e4b2d 100644
--- a/gr-digital/python/qam.py
+++ b/gr-digital/python/qam.py
@@ -26,9 +26,13 @@ QAM modulation and demodulation.
from math import pi, sqrt, log
from gnuradio import gr, modulation_utils2
-from gnuradio.digital.generic_mod_demod import generic_mod, generic_demod
-from gnuradio.digital.utils.gray_code import gray_code
-from gnuradio.digital.utils import mod_codes
+#from gnuradio.digital.generic_mod_demod import generic_mod, generic_demod
+#from gnuradio.digital.utils.gray_code import gray_code
+#from gnuradio.digital.utils import mod_codes
+
+from generic_mod_demod import generic_mod, generic_demod
+from utils.gray_code import gray_code
+from utils import mod_codes
# Default number of points in constellation.
_def_constellation_points = 16