-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQAM_Constellations.txt
174 lines (71 loc) · 9.1 KB
/
QAM_Constellations.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
_ QAM64 (usable) _
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63]
[0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10, 16, 20, 28, 24, 17, 21, 29, 25, 19, 23, 31, 27, 18, 22, 30, 26, 32, 36, 44, 40, 33, 37, 45, 41, 35, 39, 47, 43, 34, 38, 46, 42, 48, 52, 60, 56, 49, 53, 61, 57, 51, 55, 63, 59, 50, 54, 62, 58]
[ (-7-7j),(-5-7j),(-3-7j),(-1-7j),(1-7j),(3-7j),(5-7j),(7-7j),(-7-5j),(-5-5j),(-3-5j),(-1-5j),(1-5j),(3-5j),(5-5j),(7-5j),(-7-3j),(-5-3j),(-3-3j),(-1-3j),(1-3j),(3-3j),(5-3j),(7-3j),(-7-1j),(-5-1j),(-3-1j),(-1-1j),(1-1j),(3-1j),(5-1j),(7-1j),(-7+1j),(-5+1j),(-3+1j),(-1+1j),(1+1j),(3+1j),(5+1j),(7+1j),(-7+3j),(-5+3j),(-3+3j),(-1+3j),(1+3j),(3+3j),(5+3j),(7+3j),(-7+5j),(-5+5j),(-3+5j),(-1+5j),(1+5j),(3+5j),(5+5j),(7+5j),(-7+7j),(-5+7j),(-3+7j),(-1+7j),(1+7j),(3+7j),(5+7j),(7+7j) ]
_ QAM256 _
[0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10, 16, 20, 28, 24, 17, 21, 29, 25, 19, 23, 31, 27, 18, 22, 30, 26, 32, 36, 44, 40, 33, 37, 45, 41, 35, 39, 47, 43, 34, 38, 46, 42, 48, 52, 60, 56, 49, 53, 61, 57, 51, 55, 63, 59, 50, 54, 62, 58, 64, 68, 76, 72, 65, 69, 77, 73, 67, 71, 79, 75, 66, 70, 78, 74, 80, 84, 92, 88, 81, 85, 93, 89, 83, 87, 95, 91, 82, 86, 94, 90, 96, 100, 108, 104, 97, 101, 109, 105, 99, 103, 111, 107, 98, 102, 110, 106, 112, 116, 124, 120, 113, 117, 125, 121, 115, 119, 127, 123, 114, 118, 126, 122, 128, 132, 140, 136, 129, 133, 141, 137, 131, 135, 143, 139, 130, 134, 142, 138, 144, 148, 156, 152, 145, 149, 157, 153, 147, 151, 159, 155, 146, 150, 158, 154, 160, 164, 172, 168, 161, 165, 173, 169, 163, 167, 175, 171, 162, 166, 174, 170, 176, 180, 188, 184, 177, 181, 189, 185, 179, 183, 191, 187, 178, 182, 190, 186, 192, 196, 204, 200, 193, 197, 205, 201, 195, 199, 207, 203, 194, 198, 206, 202, 208, 212, 220, 216, 209, 213, 221, 217, 211, 215, 223, 219, 210, 214, 222, 218, 224, 228, 236, 232, 225, 229, 237, 233, 227, 231, 239, 235, 226, 230, 238, 234, 240, 244, 252, 248, 241, 245, 253, 249, 243, 247, 255, 251, 242, 246, 254, 250]
[(-15-15j),(-13-15j),(-11-15j),(-9-15j),(-7-15j),(-5-15j),(-3-15j),(-1-15j),(1-15j),(3-15j),(5-15j),(7-15j),(9-15j),(11-15j),(13-15j),(15-15j),(-15-13j),(-13-13j),(-11-13j),(-9-13j),(-7-13j),(-5-13j),(-3-13j),(-1-13j),(1-13j),(3-13j),(5-13j),(7-13j),(9-13j),(11-13j),(13-13j),(15-13j),(-15-11j),(-13-11j),(-11-11j),(-9-11j),(-7-11j),(-5-11j),(-3-11j),(-1-11j),(1-11j),(3-11j),(5-11j),(7-11j),(9-11j),(11-11j),(13-11j),(15-11j),(-15-9j),(-13-9j),(-11-9j),(-9-9j),(-7-9j),(-5-9j),(-3-9j),(-1-9j),(1-9j),(3-9j),(5-9j),(7-9j),(9-9j),(11-9j),(13-9j),(15-9j),(-15-7j),(-13-7j),(-11-7j),(-9-7j),(-7-7j),(-5-7j),(-3-7j),(-1-7j),(1-7j),(3-7j),(5-7j),(7-7j),(9-7j),(11-7j),(13-7j),(15-7j),(-15-5j),(-13-5j),(-11-5j),(-9-5j),(-7-5j),(-5-5j),(-3-5j),(-1-5j),(1-5j),(3-5j),(5-5j),(7-5j),(9-5j),(11-5j),(13-5j),(15-5j),(-15-3j),(-13-3j),(-11-3j),(-9-3j),(-7-3j),(-5-3j),(-3-3j),(-1-3j),(1-3j),(3-3j),(5-3j),(7-3j),(9-3j),(11-3j),(13-3j),(15-3j),(-15-1j),(-13-1j),(-11-1j),(-9-1j),(-7-1j),(-5-1j),(-3-1j),(-1-1j),(1-1j),(3-1j),(5-1j),(7-1j),(9-1j),(11-1j),(13-1j),(15-1j),(-15+1j),(-13+1j),(-11+1j),(-9+1j),(-7+1j),(-5+1j),(-3+1j),(-1+1j),(1+1j),(3+1j),(5+1j),(7+1j),(9+1j),(11+1j),(13+1j),(15+1j),(-15+3j),(-13+3j),(-11+3j),(-9+3j),(-7+3j),(-5+3j),(-3+3j),(-1+3j),(1+3j),(3+3j),(5+3j),(7+3j),(9+3j),(11+3j),(13+3j),(15+3j),(-15+5j),(-13+5j),(-11+5j),(-9+5j),(-7+5j),(-5+5j),(-3+5j),(-1+5j),(1+5j),(3+5j),(5+5j),(7+5j),(9+5j),(11+5j),(13+5j),(15+5j),(-15+7j),(-13+7j),(-11+7j),(-9+7j),(-7+7j),(-5+7j),(-3+7j),(-1+7j),(1+7j),(3+7j),(5+7j),(7+7j),(9+7j),(11+7j),(13+7j),(15+7j),(-15+9j),(-13+9j),(-11+9j),(-9+9j),(-7+9j),(-5+9j),(-3+9j),(-1+9j),(1+9j),(3+9j),(5+9j),(7+9j),(9+9j),(11+9j),(13+9j),(15+9j),(-15+11j),(-13+11j),(-11+11j),(-9+11j),(-7+11j),(-5+11j),(-3+11j),(-1+11j),(1+11j),(3+11j),(5+11j),(7+11j),(9+11j),(11+11j),(13+11j),(15+11j),(-15+13j),(-13+13j),(-11+13j),(-9+13j),(-7+13j),(-5+13j),(-3+13j),(-1+13j),(1+13j),(3+13j),(5+13j),(7+13j),(9+13j),(11+13j),(13+13j),(15+13j),(-15+15j),(-13+15j),(-11+15j),(-9+15j),(-7+15j),(-5+15j),(-3+15j),(-1+15j),(1+15j),(3+15j),(5+15j),(7+15j),(9+15j),(11+15j),(13+15j),(15+15j)]
_ QAM16 _
- Explanation -
These are QAM 16 constellation parameters for GNURadio's constellation object used by the constellation modulator and constellation decoder blocks.
Constellation Points = [ (-3-3j), (-1-3j), (1-3j), (3-3j), (-3-1j), (-1-1j), (1-1j), (3-1j), (-3+1j), (-1+1j), (1+1j), (3+1j), (-3+3j), (-1+3j), (1+3j), (3+3j)]
Symbol Map = [0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10]
Please explain what symbol mapping is used, whether it is Gray code, or something else.
Something else ???
Please illustrate a similar grid showing the binary representations for these constellation parameters . ... QAM 64 ...
Something else still ???
_ QAM64 _
- Constellation Parameters -
These are QAM 16 constellation parameters for GNURadio's constellation object used by the constellation modulator and constellation decoder blocks.
Constellation Points = [ (-3-3j), (-1-3j), (1-3j), (3-3j), (-3-1j), (-1-1j), (1-1j), (3-1j), (-3+1j), (-1+1j), (1+1j), (3+1j), (-3+3j), (-1+3j), (1+3j), (3+3j)]
Symbol Map = [0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10]
Please, as diligently as you are able, calculate constellation parameters for QAM 64 with your choice of either a similar or Gray coded symbol map.
Constellation Points = [ (-7-7j),(-5-7j),(-3-7j),(-1-7j),(1-7j),(3-7j),(5-7j),(7-7j),(-7-5j),(-5-5j),(-3-5j),(-1-5j),(1-5j),(3-5j),(5-5j),(7-5j),(-7-3j),(-5-3j),(-3-3j),(-1-3j),(1-3j),(3-3j),(5-3j),(7-3j),(-7-1j),(-5-1j),(-3-1j),(-1-1j),(1-1j),(3-1j),(5-1j),(7-1j),(-7+1j),(-5+1j),(-3+1j),(-1+1j),(1+1j),(3+1j),(5+1j),(7+1j),(-7+3j),(-5+3j),(-3+3j),(-1+3j),(1+3j),(3+3j),(5+3j),(7+3j),(-7+5j),(-5+5j),(-3+5j),(-1+5j),(1+5j),(3+5j),(5+5j),(7+5j),(-7+7j),(-5+7j),(-3+7j),(-1+7j),(1+7j),(3+7j),(5+7j),(7+7j) ]
Symbol Map = [0,1,3,7,15,31,63,62,30,60,61,14,28,56,57,29,59,58,6,12,24,48,49,25,51,50,13,27,55,54,26,52,53,2,4,8,16,32,33,17,35,34,9,19,39,38,18,36,37,5,11,23,47,46,22,44,45,10,20,40,41,21,43,42]
_ QAM256 _
- Constellation Parameters -
These are QAM 16 constellation parameters for GNURadio's constellation object used by the constellation modulator and constellation decoder blocks.
Constellation Points = [ (-3-3j), (-1-3j), (1-3j), (3-3j), (-3-1j), (-1-1j), (1-1j), (3-1j), (-3+1j), (-1+1j), (1+1j), (3+1j), (-3+3j), (-1+3j), (1+3j), (3+3j)]
Symbol Map = [0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10]
Please, as diligently as you are able, calculate constellation parameters for QAM 256 with your choice of either a similar or Gray coded symbol map.
import numpy as np
def generate_qam256_constellation(gray_coded=True):
"""
Generate the QAM-256 constellation points and symbol map.
Args:
gray_coded (bool): If True, generate Gray coded symbol map, otherwise generate similar to QAM-16
Returns:
(list, list): constellation_points, symbol_map
"""
# Creating a 16x16 grid for QAM-256
x = np.linspace(-15, 15, 16)
y = np.linspace(-15, 15, 16)
xv, yv = np.meshgrid(x, y)
# Flatten the grid to get the constellation points
constellation_points = np.ravel(xv + 1j * yv)
if gray_coded:
# Generate Gray code symbol map
def gray_code(n):
""" Generate n-bit Gray code. """
return n ^ (n >> 1)
symbol_map = [gray_code(i) for i in range(256)]
else:
# Generate a symbol map similar to QAM-16
symbol_map = list(range(256))
return constellation_points, symbol_map
# Generate QAM-256 constellation points and symbol map
qam256_constellation_points, qam256_symbol_map = generate_qam256_constellation(gray_coded=True)
qam256_constellation_points, qam256_symbol_map
_ Symbol Pattern _
Please continue this pattern from the 16 numbers presented, to 64 numbers having a range from 0 to 63 instead of 0 to 15 .
[0, 4, 12, 8, 1, 5, 13, 9, 3, 7, 15, 11, 2, 6, 14, 10]
- Dubious -
[(-7-7j), (-7-5j), (-7-3j), (-7-1j), (-7+1j), (-7+3j), (-7+5j), (-7+7j), (-5-7j), (-5-5j), (-5-3j), (-5-1j), (-5+1j), (-5+3j), (-5+5j), (-5+7j), (-3-7j), (-3-5j), (-3-3j), (-3-1j), (-3+1j), (-3+3j), (-3+5j), (-3+7j), (-1-7j), (-1-5j), (-1-3j), (-1-1j), (-1+1j), (-1+3j), (-1+5j), (-1+7j), (1-7j), (1-5j), (1-3j), (1-1j), (1+1j), (1+3j), (1+5j), (1+7j), (3-7j), (3-5j), (3-3j), (3-1j), (3+1j), (3+3j), (3+5j), (3+7j), (5-7j), (5-5j), (5-3j), (5-1j), (5+1j), (5+3j), (5+5j), (5+7j), (7-7j), (7-5j), (7-3j), (7-1j), (7+1j), (7+3j), (7+5j), (7+7j)]
[-7.-7.j, -5.-7.j, -3.-7.j, -1.-7.j, 1.-7.j, 3.-7.j, 5.-7.j, 7.-7.j,
-7.-5.j, -5.-5.j, -3.-5.j, -1.-5.j, 1.-5.j, 3.-5.j, 5.-5.j, 7.-5.j,
-7.-3.j, -5.-3.j, -3.-3.j, -1.-3.j, 1.-3.j, 3.-3.j, 5.-3.j, 7.-3.j,
-7.-1.j, -5.-1.j, -3.-1.j, -1.-1.j, 1.-1.j, 3.-1.j, 5.-1.j, 7.-1.j,
-7.+1.j, -5.+1.j, -3.+1.j, -1.+1.j, 1.+1.j, 3.+1.j, 5.+1.j, 7.+1.j,
-7.+3.j, -5.+3.j, -3.+3.j, -1.+3.j, 1.+3.j, 3.+3.j, 5.+3.j, 7.+3.j,
-7.+5.j, -5.+5.j, -3.+5.j, -1.+5.j, 1.+5.j, 3.+5.j, 5.+5.j, 7.+5.j,
-7.+7.j, -5.+7.j, -3.+7.j, -1.+7.j, 1.+7.j, 3.+7.j, 5.+7.j, 7.+7.j]