summaryrefslogtreecommitdiff
path: root/gr-digital/python/digital/psk.py
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/python/digital/psk.py')
-rw-r--r--gr-digital/python/digital/psk.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/gr-digital/python/digital/psk.py b/gr-digital/python/digital/psk.py
index b04d66f75f..4866d54ede 100644
--- a/gr-digital/python/digital/psk.py
+++ b/gr-digital/python/digital/psk.py
@@ -28,6 +28,7 @@ _def_mod_code = mod_codes.GRAY_CODE
# Default use of differential encoding
_def_differential = True
+
def create_encodings(mod_code, arity, differential):
post_diff_code = None
if mod_code not in mod_codes.codes:
@@ -43,13 +44,15 @@ def create_encodings(mod_code, arity, differential):
pre_diff_code = []
post_diff_code = None
else:
- raise ValueError('That modulation code is not implemented for this constellation.')
+ raise ValueError(
+ 'That modulation code is not implemented for this constellation.')
return (pre_diff_code, post_diff_code)
# /////////////////////////////////////////////////////////////////////////////
# PSK constellation
# /////////////////////////////////////////////////////////////////////////////
+
def psk_constellation(m=_def_constellation_points, mod_code=_def_mod_code,
differential=_def_differential):
"""
@@ -57,8 +60,9 @@ def psk_constellation(m=_def_constellation_points, mod_code=_def_mod_code,
"""
k = log(m) / log(2.0)
if (k != int(k)):
- raise Exception('Number of constellation points must be a power of two.')
- points = [exp(2*pi*(0+1j)*i/m) for i in range(0,m)]
+ raise Exception(
+ 'Number of constellation points must be a power of two.')
+ points = [exp(2 * pi * (0 + 1j) * i / m) for i in range(0, m)]
pre_diff_code, post_diff_code = create_encodings(mod_code, m, differential)
if post_diff_code is not None:
inverse_post_diff_code = mod_codes.invert_code(post_diff_code)
@@ -70,6 +74,7 @@ def psk_constellation(m=_def_constellation_points, mod_code=_def_mod_code,
# PSK modulator
# /////////////////////////////////////////////////////////////////////////////
+
class psk_mod(generic_mod):
"""
Hierarchical block for RRC-filtered PSK modulation.
@@ -95,14 +100,17 @@ class psk_mod(generic_mod):
mod_code=_def_mod_code,
differential=_def_differential,
*args, **kwargs):
- constellation = psk_constellation(constellation_points, mod_code, differential)
- super(psk_mod, self).__init__(constellation, differential, *args, **kwargs)
+ constellation = psk_constellation(
+ constellation_points, mod_code, differential)
+ super(psk_mod, self).__init__(
+ constellation, differential, *args, **kwargs)
# /////////////////////////////////////////////////////////////////////////////
# PSK demodulator
#
# /////////////////////////////////////////////////////////////////////////////
+
class psk_demod(generic_demod):
"""
@@ -120,12 +128,16 @@ class psk_demod(generic_demod):
"""
# See generic_mod for additional arguments
__doc__ += shared_mod_args
+
def __init__(self, constellation_points=_def_constellation_points,
mod_code=_def_mod_code,
differential=_def_differential,
*args, **kwargs):
- constellation = psk_constellation(constellation_points, mod_code, differential)
- super(psk_demod, self).__init__(constellation, differential, *args, **kwargs)
+ constellation = psk_constellation(
+ constellation_points, mod_code, differential)
+ super(psk_demod, self).__init__(
+ constellation, differential, *args, **kwargs)
+
#
# Add these to the mod/demod registry