summaryrefslogtreecommitdiff
path: root/gr-digital/python/digital/psk_constellations.py
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/python/digital/psk_constellations.py')
-rw-r--r--gr-digital/python/digital/psk_constellations.py103
1 files changed, 79 insertions, 24 deletions
diff --git a/gr-digital/python/digital/psk_constellations.py b/gr-digital/python/digital/psk_constellations.py
index c3809e7ade..520eafebe2 100644
--- a/gr-digital/python/digital/psk_constellations.py
+++ b/gr-digital/python/digital/psk_constellations.py
@@ -52,6 +52,7 @@ rotations are based off of.
# BPSK Constellation Mappings
+
def psk_2_0x0():
'''
0 | 1
@@ -59,9 +60,12 @@ def psk_2_0x0():
const_points = [-1, 1]
symbols = [0, 1]
return (const_points, symbols)
+
+
psk_2 = psk_2_0x0 # Basic BPSK rotation
psk_2_0 = psk_2 # First ID for BPSK rotations
+
def psk_2_0x1():
'''
1 | 0
@@ -69,6 +73,8 @@ def psk_2_0x1():
const_points = [-1, 1]
symbols = [1, 0]
return (const_points, symbols)
+
+
psk_2_1 = psk_2_0x1
@@ -81,18 +87,23 @@ def sd_psk_2_0x0(x, Es=1):
0 | 1
'''
x_re = x.real
- dist = Es*numpy.sqrt(2)
- return [dist*x_re,]
+ dist = Es * numpy.sqrt(2)
+ return [dist * x_re, ]
+
+
sd_psk_2 = sd_psk_2_0x0 # Basic BPSK rotation
sd_psk_2_0 = sd_psk_2 # First ID for BPSK rotations
+
def sd_psk_2_0x1(x, Es=1):
'''
1 | 0
'''
- x_re = [x.real,]
- dist = Es*numpy.sqrt(2)
- return -dist*x_re
+ x_re = [x.real, ]
+ dist = Es * numpy.sqrt(2)
+ return -dist * x_re
+
+
sd_psk_2_1 = sd_psk_2_0x1
@@ -106,13 +117,16 @@ def psk_4_0x0_0_1():
| -------
| 00 | 01
'''
- const_points = [-1-1j, 1-1j,
- -1+1j, 1+1j]
+ const_points = [-1 - 1j, 1 - 1j,
+ -1 + 1j, 1 + 1j]
symbols = [0, 1, 2, 3]
return (const_points, symbols)
+
+
psk_4 = psk_4_0x0_0_1
psk_4_0 = psk_4
+
def psk_4_0x1_0_1():
'''
| 11 | 10
@@ -122,8 +136,11 @@ def psk_4_0x1_0_1():
k = 0x1
pi = [0, 1]
return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
+
+
psk_4_1 = psk_4_0x1_0_1
+
def psk_4_0x2_0_1():
'''
| 00 | 01
@@ -133,8 +150,11 @@ def psk_4_0x2_0_1():
k = 0x2
pi = [0, 1]
return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
+
+
psk_4_2 = psk_4_0x2_0_1
+
def psk_4_0x3_0_1():
'''
| 01 | 00
@@ -144,8 +164,11 @@ def psk_4_0x3_0_1():
k = 0x3
pi = [0, 1]
return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
+
+
psk_4_3 = psk_4_0x3_0_1
+
def psk_4_0x0_1_0():
'''
| 01 | 11
@@ -155,8 +178,11 @@ def psk_4_0x0_1_0():
k = 0x0
pi = [1, 0]
return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
+
+
psk_4_4 = psk_4_0x0_1_0
+
def psk_4_0x1_1_0():
'''
| 00 | 10
@@ -166,8 +192,11 @@ def psk_4_0x1_1_0():
k = 0x1
pi = [1, 0]
return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
+
+
psk_4_5 = psk_4_0x1_1_0
+
def psk_4_0x2_1_0():
'''
| 11 | 01
@@ -177,8 +206,11 @@ def psk_4_0x2_1_0():
k = 0x2
pi = [1, 0]
return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
+
+
psk_4_6 = psk_4_0x2_1_0
+
def psk_4_0x3_1_0():
'''
| 10 | 00
@@ -188,9 +220,10 @@ def psk_4_0x3_1_0():
k = 0x3
pi = [1, 0]
return constellation_map_generator(psk_4()[0], psk_4()[1], k, pi)
-psk_4_7 = psk_4_0x3_1_0
+psk_4_7 = psk_4_0x3_1_0
+
############################################################
# QPSK Constellation Softbit LUT generators
@@ -204,11 +237,14 @@ def sd_psk_4_0x0_0_1(x, Es=1):
'''
x_re = x.real
x_im = x.imag
- dist = Es*numpy.sqrt(2)
- return [dist*x_im, dist*x_re]
+ dist = Es * numpy.sqrt(2)
+ return [dist * x_im, dist * x_re]
+
+
sd_psk_4 = sd_psk_4_0x0_0_1
sd_psk_4_0 = sd_psk_4
+
def sd_psk_4_0x1_0_1(x, Es=1):
'''
| 11 | 10
@@ -217,10 +253,13 @@ def sd_psk_4_0x1_0_1(x, Es=1):
'''
x_re = x.real
x_im = x.imag
- dist = Es*numpy.sqrt(2)
- return [dist*x_im, -dist*x_re]
+ dist = Es * numpy.sqrt(2)
+ return [dist * x_im, -dist * x_re]
+
+
sd_psk_4_1 = sd_psk_4_0x1_0_1
+
def sd_psk_4_0x2_0_1(x, Es=1):
'''
| 00 | 01
@@ -229,10 +268,13 @@ def sd_psk_4_0x2_0_1(x, Es=1):
'''
x_re = x.real
x_im = x.imag
- dist = Es*numpy.sqrt(2)
- return [-dist*x_im, dist*x_re]
+ dist = Es * numpy.sqrt(2)
+ return [-dist * x_im, dist * x_re]
+
+
sd_psk_4_2 = sd_psk_4_0x2_0_1
+
def sd_psk_4_0x3_0_1(x, Es=1):
'''
| 01 | 00
@@ -241,10 +283,13 @@ def sd_psk_4_0x3_0_1(x, Es=1):
'''
x_re = x.real
x_im = x.imag
- dist = Es*numpy.sqrt(2)
- return [-dist*x_im, -dist*x_re]
+ dist = Es * numpy.sqrt(2)
+ return [-dist * x_im, -dist * x_re]
+
+
sd_psk_4_3 = sd_psk_4_0x3_0_1
+
def sd_psk_4_0x0_1_0(x, Es=1):
'''
| 01 | 11
@@ -253,10 +298,13 @@ def sd_psk_4_0x0_1_0(x, Es=1):
'''
x_re = x.real
x_im = x.imag
- dist = Es*numpy.sqrt(2)
- return [dist*x_re, dist*x_im]
+ dist = Es * numpy.sqrt(2)
+ return [dist * x_re, dist * x_im]
+
+
sd_psk_4_4 = sd_psk_4_0x0_1_0
+
def sd_psk_4_0x1_1_0(x, Es=1):
'''
| 00 | 10
@@ -265,8 +313,10 @@ def sd_psk_4_0x1_1_0(x, Es=1):
'''
x_re = x.real
x_im = x.imag
- dist = Es*numpy.sqrt(2)
- return [dist*x_re, -dist*x_im]
+ dist = Es * numpy.sqrt(2)
+ return [dist * x_re, -dist * x_im]
+
+
sd_psk_4_5 = sd_psk_4_0x1_1_0
@@ -278,10 +328,13 @@ def sd_psk_4_0x2_1_0(x, Es=1):
'''
x_re = x.real
x_im = x.imag
- dist = Es*numpy.sqrt(2)
- return [-dist*x_re, dist*x_im]
+ dist = Es * numpy.sqrt(2)
+ return [-dist * x_re, dist * x_im]
+
+
sd_psk_4_6 = sd_psk_4_0x2_1_0
+
def sd_psk_4_0x3_1_0(x, Es=1):
'''
| 10 | 00
@@ -290,6 +343,8 @@ def sd_psk_4_0x3_1_0(x, Es=1):
'''
x_re = x.real
x_im = x.imag
- dist = Es*numpy.sqrt(2)
- return [-dist*x_re, -dist*x_im]
+ dist = Es * numpy.sqrt(2)
+ return [-dist * x_re, -dist * x_im]
+
+
sd_psk_4_7 = sd_psk_4_0x3_1_0