spandsp 0.0.6
v17_v32bis_tx_constellation_maps.h
1/*
2 * SpanDSP - a series of DSP components for telephony
3 *
4 * v17_v32bis_tx_constellation_maps.h - ITU V.17 and V.32bis modems
5 * transmit part.
6 * Constellation mapping.
7 *
8 * Written by Steve Underwood <steveu@coppice.org>
9 *
10 * Copyright (C) 2004 Steve Underwood
11 *
12 * All rights reserved.
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 2.1,
16 * as published by the Free Software Foundation.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License for more details.
22 *
23 * You should have received a copy of the GNU Lesser General Public
24 * License along with this program; if not, write to the Free Software
25 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26 */
27
28#if !defined(FP_SCALE)
29#if defined(SPANDSP_USE_FIXED_POINTx)
30#define FP_SCALE(x) ((int16_t) x)
31#else
32#define FP_SCALE(x) (x)
33#endif
34#endif
35
36#if defined(SPANDSP_USE_FIXED_POINTx)
37static const complexi16_t v17_v32bis_14400_constellation[128] =
38#else
39static const complexf_t v17_v32bis_14400_constellation[128] =
40#endif
41{
42 {FP_SCALE(-8.0f), FP_SCALE(-3.0f)}, /* 0x00 */
43 {FP_SCALE( 9.0f), FP_SCALE( 2.0f)}, /* 0x01 */
44 {FP_SCALE( 2.0f), FP_SCALE(-9.0f)}, /* 0x02 */
45 {FP_SCALE(-3.0f), FP_SCALE( 8.0f)}, /* 0x03 */
46 {FP_SCALE( 8.0f), FP_SCALE( 3.0f)}, /* 0x04 */
47 {FP_SCALE(-9.0f), FP_SCALE(-2.0f)}, /* 0x05 */
48 {FP_SCALE(-2.0f), FP_SCALE( 9.0f)}, /* 0x06 */
49 {FP_SCALE( 3.0f), FP_SCALE(-8.0f)}, /* 0x07 */
50 {FP_SCALE(-8.0f), FP_SCALE( 1.0f)}, /* 0x08 */
51 {FP_SCALE( 9.0f), FP_SCALE(-2.0f)}, /* 0x09 */
52 {FP_SCALE(-2.0f), FP_SCALE(-9.0f)}, /* 0x0A */
53 {FP_SCALE( 1.0f), FP_SCALE( 8.0f)}, /* 0x0B */
54 {FP_SCALE( 8.0f), FP_SCALE(-1.0f)}, /* 0x0C */
55 {FP_SCALE(-9.0f), FP_SCALE( 2.0f)}, /* 0x0D */
56 {FP_SCALE( 2.0f), FP_SCALE( 9.0f)}, /* 0x0E */
57 {FP_SCALE(-1.0f), FP_SCALE(-8.0f)}, /* 0x0F */
58 {FP_SCALE(-4.0f), FP_SCALE(-3.0f)}, /* 0x10 */
59 {FP_SCALE( 5.0f), FP_SCALE( 2.0f)}, /* 0x11 */
60 {FP_SCALE( 2.0f), FP_SCALE(-5.0f)}, /* 0x12 */
61 {FP_SCALE(-3.0f), FP_SCALE( 4.0f)}, /* 0x13 */
62 {FP_SCALE( 4.0f), FP_SCALE( 3.0f)}, /* 0x14 */
63 {FP_SCALE(-5.0f), FP_SCALE(-2.0f)}, /* 0x15 */
64 {FP_SCALE(-2.0f), FP_SCALE( 5.0f)}, /* 0x16 */
65 {FP_SCALE( 3.0f), FP_SCALE(-4.0f)}, /* 0x17 */
66 {FP_SCALE(-4.0f), FP_SCALE( 1.0f)}, /* 0x18 */
67 {FP_SCALE( 5.0f), FP_SCALE(-2.0f)}, /* 0x19 */
68 {FP_SCALE(-2.0f), FP_SCALE(-5.0f)}, /* 0x1A */
69 {FP_SCALE( 1.0f), FP_SCALE( 4.0f)}, /* 0x1B */
70 {FP_SCALE( 4.0f), FP_SCALE(-1.0f)}, /* 0x1C */
71 {FP_SCALE(-5.0f), FP_SCALE( 2.0f)}, /* 0x1D */
72 {FP_SCALE( 2.0f), FP_SCALE( 5.0f)}, /* 0x1E */
73 {FP_SCALE(-1.0f), FP_SCALE(-4.0f)}, /* 0x1F */
74 {FP_SCALE( 4.0f), FP_SCALE(-3.0f)}, /* 0x20 */
75 {FP_SCALE(-3.0f), FP_SCALE( 2.0f)}, /* 0x21 */
76 {FP_SCALE( 2.0f), FP_SCALE( 3.0f)}, /* 0x22 */
77 {FP_SCALE(-3.0f), FP_SCALE(-4.0f)}, /* 0x23 */
78 {FP_SCALE(-4.0f), FP_SCALE( 3.0f)}, /* 0x24 */
79 {FP_SCALE( 3.0f), FP_SCALE(-2.0f)}, /* 0x25 */
80 {FP_SCALE(-2.0f), FP_SCALE(-3.0f)}, /* 0x26 */
81 {FP_SCALE( 3.0f), FP_SCALE( 4.0f)}, /* 0x27 */
82 {FP_SCALE( 4.0f), FP_SCALE( 1.0f)}, /* 0x28 */
83 {FP_SCALE(-3.0f), FP_SCALE(-2.0f)}, /* 0x29 */
84 {FP_SCALE(-2.0f), FP_SCALE( 3.0f)}, /* 0x2A */
85 {FP_SCALE( 1.0f), FP_SCALE(-4.0f)}, /* 0x2B */
86 {FP_SCALE(-4.0f), FP_SCALE(-1.0f)}, /* 0x2C */
87 {FP_SCALE( 3.0f), FP_SCALE( 2.0f)}, /* 0x2D */
88 {FP_SCALE( 2.0f), FP_SCALE(-3.0f)}, /* 0x2E */
89 {FP_SCALE(-1.0f), FP_SCALE( 4.0f)}, /* 0x2F */
90 {FP_SCALE( 0.0f), FP_SCALE(-3.0f)}, /* 0x30 */
91 {FP_SCALE( 1.0f), FP_SCALE( 2.0f)}, /* 0x31 */
92 {FP_SCALE( 2.0f), FP_SCALE(-1.0f)}, /* 0x32 */
93 {FP_SCALE(-3.0f), FP_SCALE( 0.0f)}, /* 0x33 */
94 {FP_SCALE( 0.0f), FP_SCALE( 3.0f)}, /* 0x34 */
95 {FP_SCALE(-1.0f), FP_SCALE(-2.0f)}, /* 0x35 */
96 {FP_SCALE(-2.0f), FP_SCALE( 1.0f)}, /* 0x36 */
97 {FP_SCALE( 3.0f), FP_SCALE( 0.0f)}, /* 0x37 */
98 {FP_SCALE( 0.0f), FP_SCALE( 1.0f)}, /* 0x38 */
99 {FP_SCALE( 1.0f), FP_SCALE(-2.0f)}, /* 0x39 */
100 {FP_SCALE(-2.0f), FP_SCALE(-1.0f)}, /* 0x3A */
101 {FP_SCALE( 1.0f), FP_SCALE( 0.0f)}, /* 0x3B */
102 {FP_SCALE( 0.0f), FP_SCALE(-1.0f)}, /* 0x3C */
103 {FP_SCALE(-1.0f), FP_SCALE( 2.0f)}, /* 0x3D */
104 {FP_SCALE( 2.0f), FP_SCALE( 1.0f)}, /* 0x3E */
105 {FP_SCALE(-1.0f), FP_SCALE( 0.0f)}, /* 0x3F */
106 {FP_SCALE( 8.0f), FP_SCALE(-3.0f)}, /* 0x40 */
107 {FP_SCALE(-7.0f), FP_SCALE( 2.0f)}, /* 0x41 */
108 {FP_SCALE( 2.0f), FP_SCALE( 7.0f)}, /* 0x42 */
109 {FP_SCALE(-3.0f), FP_SCALE(-8.0f)}, /* 0x43 */
110 {FP_SCALE(-8.0f), FP_SCALE( 3.0f)}, /* 0x44 */
111 {FP_SCALE( 7.0f), FP_SCALE(-2.0f)}, /* 0x45 */
112 {FP_SCALE(-2.0f), FP_SCALE(-7.0f)}, /* 0x46 */
113 {FP_SCALE( 3.0f), FP_SCALE( 8.0f)}, /* 0x47 */
114 {FP_SCALE( 8.0f), FP_SCALE( 1.0f)}, /* 0x48 */
115 {FP_SCALE(-7.0f), FP_SCALE(-2.0f)}, /* 0x49 */
116 {FP_SCALE(-2.0f), FP_SCALE( 7.0f)}, /* 0x4A */
117 {FP_SCALE( 1.0f), FP_SCALE(-8.0f)}, /* 0x4B */
118 {FP_SCALE(-8.0f), FP_SCALE(-1.0f)}, /* 0x4C */
119 {FP_SCALE( 7.0f), FP_SCALE( 2.0f)}, /* 0x4D */
120 {FP_SCALE( 2.0f), FP_SCALE(-7.0f)}, /* 0x4E */
121 {FP_SCALE(-1.0f), FP_SCALE( 8.0f)}, /* 0x4F */
122 {FP_SCALE(-4.0f), FP_SCALE(-7.0f)}, /* 0x50 */
123 {FP_SCALE( 5.0f), FP_SCALE( 6.0f)}, /* 0x51 */
124 {FP_SCALE( 6.0f), FP_SCALE(-5.0f)}, /* 0x52 */
125 {FP_SCALE(-7.0f), FP_SCALE( 4.0f)}, /* 0x53 */
126 {FP_SCALE( 4.0f), FP_SCALE( 7.0f)}, /* 0x54 */
127 {FP_SCALE(-5.0f), FP_SCALE(-6.0f)}, /* 0x55 */
128 {FP_SCALE(-6.0f), FP_SCALE( 5.0f)}, /* 0x56 */
129 {FP_SCALE( 7.0f), FP_SCALE(-4.0f)}, /* 0x57 */
130 {FP_SCALE(-4.0f), FP_SCALE( 5.0f)}, /* 0x58 */
131 {FP_SCALE( 5.0f), FP_SCALE(-6.0f)}, /* 0x59 */
132 {FP_SCALE(-6.0f), FP_SCALE(-5.0f)}, /* 0x5A */
133 {FP_SCALE( 5.0f), FP_SCALE( 4.0f)}, /* 0x5B */
134 {FP_SCALE( 4.0f), FP_SCALE(-5.0f)}, /* 0x5C */
135 {FP_SCALE(-5.0f), FP_SCALE( 6.0f)}, /* 0x5D */
136 {FP_SCALE( 6.0f), FP_SCALE( 5.0f)}, /* 0x5E */
137 {FP_SCALE(-5.0f), FP_SCALE(-4.0f)}, /* 0x5F */
138 {FP_SCALE( 4.0f), FP_SCALE(-7.0f)}, /* 0x60 */
139 {FP_SCALE(-3.0f), FP_SCALE( 6.0f)}, /* 0x61 */
140 {FP_SCALE( 6.0f), FP_SCALE( 3.0f)}, /* 0x62 */
141 {FP_SCALE(-7.0f), FP_SCALE(-4.0f)}, /* 0x63 */
142 {FP_SCALE(-4.0f), FP_SCALE( 7.0f)}, /* 0x64 */
143 {FP_SCALE( 3.0f), FP_SCALE(-6.0f)}, /* 0x65 */
144 {FP_SCALE(-6.0f), FP_SCALE(-3.0f)}, /* 0x66 */
145 {FP_SCALE( 7.0f), FP_SCALE( 4.0f)}, /* 0x67 */
146 {FP_SCALE( 4.0f), FP_SCALE( 5.0f)}, /* 0x68 */
147 {FP_SCALE(-3.0f), FP_SCALE(-6.0f)}, /* 0x69 */
148 {FP_SCALE(-6.0f), FP_SCALE( 3.0f)}, /* 0x6A */
149 {FP_SCALE( 5.0f), FP_SCALE(-4.0f)}, /* 0x6B */
150 {FP_SCALE(-4.0f), FP_SCALE(-5.0f)}, /* 0x6C */
151 {FP_SCALE( 3.0f), FP_SCALE( 6.0f)}, /* 0x6D */
152 {FP_SCALE( 6.0f), FP_SCALE(-3.0f)}, /* 0x6E */
153 {FP_SCALE(-5.0f), FP_SCALE( 4.0f)}, /* 0x6F */
154 {FP_SCALE( 0.0f), FP_SCALE(-7.0f)}, /* 0x70 */
155 {FP_SCALE( 1.0f), FP_SCALE( 6.0f)}, /* 0x71 */
156 {FP_SCALE( 6.0f), FP_SCALE(-1.0f)}, /* 0x72 */
157 {FP_SCALE(-7.0f), FP_SCALE( 0.0f)}, /* 0x73 */
158 {FP_SCALE( 0.0f), FP_SCALE( 7.0f)}, /* 0x74 */
159 {FP_SCALE(-1.0f), FP_SCALE(-6.0f)}, /* 0x75 */
160 {FP_SCALE(-6.0f), FP_SCALE( 1.0f)}, /* 0x76 */
161 {FP_SCALE( 7.0f), FP_SCALE( 0.0f)}, /* 0x77 */
162 {FP_SCALE( 0.0f), FP_SCALE( 5.0f)}, /* 0x78 */
163 {FP_SCALE( 1.0f), FP_SCALE(-6.0f)}, /* 0x79 */
164 {FP_SCALE(-6.0f), FP_SCALE(-1.0f)}, /* 0x7A */
165 {FP_SCALE( 5.0f), FP_SCALE( 0.0f)}, /* 0x7B */
166 {FP_SCALE( 0.0f), FP_SCALE(-5.0f)}, /* 0x7C */
167 {FP_SCALE(-1.0f), FP_SCALE( 6.0f)}, /* 0x7D */
168 {FP_SCALE( 6.0f), FP_SCALE( 1.0f)}, /* 0x7E */
169 {FP_SCALE(-5.0f), FP_SCALE( 0.0f)} /* 0x7F */
170};
171
172#if defined(SPANDSP_USE_FIXED_POINTx)
173static const complexi16_t v17_v32bis_12000_constellation[64] =
174#else
175static const complexf_t v17_v32bis_12000_constellation[64] =
176#endif
177{
178 {FP_SCALE( 7.0f), FP_SCALE( 1.0f)}, /* 0x00 */
179 {FP_SCALE(-5.0f), FP_SCALE(-1.0f)}, /* 0x01 */
180 {FP_SCALE(-1.0f), FP_SCALE( 5.0f)}, /* 0x02 */
181 {FP_SCALE( 1.0f), FP_SCALE(-7.0f)}, /* 0x03 */
182 {FP_SCALE(-7.0f), FP_SCALE(-1.0f)}, /* 0x04 */
183 {FP_SCALE( 5.0f), FP_SCALE( 1.0f)}, /* 0x05 */
184 {FP_SCALE( 1.0f), FP_SCALE(-5.0f)}, /* 0x06 */
185 {FP_SCALE(-1.0f), FP_SCALE( 7.0f)}, /* 0x07 */
186 {FP_SCALE( 3.0f), FP_SCALE(-3.0f)}, /* 0x08 */
187 {FP_SCALE(-1.0f), FP_SCALE( 3.0f)}, /* 0x09 */
188 {FP_SCALE( 3.0f), FP_SCALE( 1.0f)}, /* 0x0A */
189 {FP_SCALE(-3.0f), FP_SCALE(-3.0f)}, /* 0x0B */
190 {FP_SCALE(-3.0f), FP_SCALE( 3.0f)}, /* 0x0C */
191 {FP_SCALE( 1.0f), FP_SCALE(-3.0f)}, /* 0x0D */
192 {FP_SCALE(-3.0f), FP_SCALE(-1.0f)}, /* 0x0E */
193 {FP_SCALE( 3.0f), FP_SCALE( 3.0f)}, /* 0x0F */
194 {FP_SCALE( 7.0f), FP_SCALE(-7.0f)}, /* 0x10 */
195 {FP_SCALE(-5.0f), FP_SCALE( 7.0f)}, /* 0x11 */
196 {FP_SCALE( 7.0f), FP_SCALE( 5.0f)}, /* 0x12 */
197 {FP_SCALE(-7.0f), FP_SCALE(-7.0f)}, /* 0x13 */
198 {FP_SCALE(-7.0f), FP_SCALE( 7.0f)}, /* 0x14 */
199 {FP_SCALE( 5.0f), FP_SCALE(-7.0f)}, /* 0x15 */
200 {FP_SCALE(-7.0f), FP_SCALE(-5.0f)}, /* 0x16 */
201 {FP_SCALE( 7.0f), FP_SCALE( 7.0f)}, /* 0x17 */
202 {FP_SCALE(-1.0f), FP_SCALE(-7.0f)}, /* 0x18 */
203 {FP_SCALE( 3.0f), FP_SCALE( 7.0f)}, /* 0x19 */
204 {FP_SCALE( 7.0f), FP_SCALE(-3.0f)}, /* 0x1A */
205 {FP_SCALE(-7.0f), FP_SCALE( 1.0f)}, /* 0x1B */
206 {FP_SCALE( 1.0f), FP_SCALE( 7.0f)}, /* 0x1C */
207 {FP_SCALE(-3.0f), FP_SCALE(-7.0f)}, /* 0x1D */
208 {FP_SCALE(-7.0f), FP_SCALE( 3.0f)}, /* 0x1E */
209 {FP_SCALE( 7.0f), FP_SCALE(-1.0f)}, /* 0x1F */
210 {FP_SCALE( 3.0f), FP_SCALE( 5.0f)}, /* 0x20 */
211 {FP_SCALE(-1.0f), FP_SCALE(-5.0f)}, /* 0x21 */
212 {FP_SCALE(-5.0f), FP_SCALE( 1.0f)}, /* 0x22 */
213 {FP_SCALE( 5.0f), FP_SCALE(-3.0f)}, /* 0x23 */
214 {FP_SCALE(-3.0f), FP_SCALE(-5.0f)}, /* 0x24 */
215 {FP_SCALE( 1.0f), FP_SCALE( 5.0f)}, /* 0x25 */
216 {FP_SCALE( 5.0f), FP_SCALE(-1.0f)}, /* 0x26 */
217 {FP_SCALE(-5.0f), FP_SCALE( 3.0f)}, /* 0x27 */
218 {FP_SCALE(-1.0f), FP_SCALE( 1.0f)}, /* 0x28 */
219 {FP_SCALE( 3.0f), FP_SCALE(-1.0f)}, /* 0x29 */
220 {FP_SCALE(-1.0f), FP_SCALE(-3.0f)}, /* 0x2A */
221 {FP_SCALE( 1.0f), FP_SCALE( 1.0f)}, /* 0x2B */
222 {FP_SCALE( 1.0f), FP_SCALE(-1.0f)}, /* 0x2C */
223 {FP_SCALE(-3.0f), FP_SCALE( 1.0f)}, /* 0x2D */
224 {FP_SCALE( 1.0f), FP_SCALE( 3.0f)}, /* 0x2E */
225 {FP_SCALE(-1.0f), FP_SCALE(-1.0f)}, /* 0x2F */
226 {FP_SCALE(-5.0f), FP_SCALE( 5.0f)}, /* 0x30 */
227 {FP_SCALE( 7.0f), FP_SCALE(-5.0f)}, /* 0x31 */
228 {FP_SCALE(-5.0f), FP_SCALE(-7.0f)}, /* 0x32 */
229 {FP_SCALE( 5.0f), FP_SCALE( 5.0f)}, /* 0x33 */
230 {FP_SCALE( 5.0f), FP_SCALE(-5.0f)}, /* 0x34 */
231 {FP_SCALE(-7.0f), FP_SCALE( 5.0f)}, /* 0x35 */
232 {FP_SCALE( 5.0f), FP_SCALE( 7.0f)}, /* 0x36 */
233 {FP_SCALE(-5.0f), FP_SCALE(-5.0f)}, /* 0x37 */
234 {FP_SCALE(-5.0f), FP_SCALE(-3.0f)}, /* 0x38 */
235 {FP_SCALE( 7.0f), FP_SCALE( 3.0f)}, /* 0x39 */
236 {FP_SCALE( 3.0f), FP_SCALE(-7.0f)}, /* 0x3A */
237 {FP_SCALE(-3.0f), FP_SCALE( 5.0f)}, /* 0x3B */
238 {FP_SCALE( 5.0f), FP_SCALE( 3.0f)}, /* 0x3C */
239 {FP_SCALE(-7.0f), FP_SCALE(-3.0f)}, /* 0x3D */
240 {FP_SCALE(-3.0f), FP_SCALE( 7.0f)}, /* 0x3E */
241 {FP_SCALE( 3.0f), FP_SCALE(-5.0f)} /* 0x3F */
242};
243
244#if defined(SPANDSP_USE_FIXED_POINTx)
245static const complexi16_t v17_v32bis_9600_constellation[32] =
246#else
247static const complexf_t v17_v32bis_9600_constellation[32] =
248#endif
249{
250 {FP_SCALE(-8.0f), FP_SCALE( 2.0f)}, /* 0x00 */
251 {FP_SCALE(-6.0f), FP_SCALE(-4.0f)}, /* 0x01 */
252 {FP_SCALE(-4.0f), FP_SCALE( 6.0f)}, /* 0x02 */
253 {FP_SCALE( 2.0f), FP_SCALE( 8.0f)}, /* 0x03 */
254 {FP_SCALE( 8.0f), FP_SCALE(-2.0f)}, /* 0x04 */
255 {FP_SCALE( 6.0f), FP_SCALE( 4.0f)}, /* 0x05 */
256 {FP_SCALE( 4.0f), FP_SCALE(-6.0f)}, /* 0x06 */
257 {FP_SCALE(-2.0f), FP_SCALE(-8.0f)}, /* 0x07 */
258 {FP_SCALE( 0.0f), FP_SCALE( 2.0f)}, /* 0x08 */
259 {FP_SCALE(-6.0f), FP_SCALE( 4.0f)}, /* 0x09 */
260 {FP_SCALE( 4.0f), FP_SCALE( 6.0f)}, /* 0x0A */
261 {FP_SCALE( 2.0f), FP_SCALE( 0.0f)}, /* 0x0B */
262 {FP_SCALE( 0.0f), FP_SCALE(-2.0f)}, /* 0x0C */
263 {FP_SCALE( 6.0f), FP_SCALE(-4.0f)}, /* 0x0D */
264 {FP_SCALE(-4.0f), FP_SCALE(-6.0f)}, /* 0x0E */
265 {FP_SCALE(-2.0f), FP_SCALE( 0.0f)}, /* 0x0F */
266 {FP_SCALE( 0.0f), FP_SCALE(-6.0f)}, /* 0x10 */
267 {FP_SCALE( 2.0f), FP_SCALE(-4.0f)}, /* 0x11 */
268 {FP_SCALE(-4.0f), FP_SCALE(-2.0f)}, /* 0x12 */
269 {FP_SCALE(-6.0f), FP_SCALE( 0.0f)}, /* 0x13 */
270 {FP_SCALE( 0.0f), FP_SCALE( 6.0f)}, /* 0x14 */
271 {FP_SCALE(-2.0f), FP_SCALE( 4.0f)}, /* 0x15 */
272 {FP_SCALE( 4.0f), FP_SCALE( 2.0f)}, /* 0x16 */
273 {FP_SCALE( 6.0f), FP_SCALE( 0.0f)}, /* 0x17 */
274 {FP_SCALE( 8.0f), FP_SCALE( 2.0f)}, /* 0x18 */
275 {FP_SCALE( 2.0f), FP_SCALE( 4.0f)}, /* 0x19 */
276 {FP_SCALE( 4.0f), FP_SCALE(-2.0f)}, /* 0x1A */
277 {FP_SCALE( 2.0f), FP_SCALE(-8.0f)}, /* 0x1B */
278 {FP_SCALE(-8.0f), FP_SCALE(-2.0f)}, /* 0x1C */
279 {FP_SCALE(-2.0f), FP_SCALE(-4.0f)}, /* 0x1D */
280 {FP_SCALE(-4.0f), FP_SCALE( 2.0f)}, /* 0x1E */
281 {FP_SCALE(-2.0f), FP_SCALE( 8.0f)} /* 0x1F */
282};
283
284#if defined(SPANDSP_USE_FIXED_POINTx)
285static const complexi16_t v17_v32bis_7200_constellation[16] =
286#else
287static const complexf_t v17_v32bis_7200_constellation[16] =
288#endif
289{
290 {FP_SCALE( 6.0f), FP_SCALE(-6.0f)}, /* 0x00 */
291 {FP_SCALE(-2.0f), FP_SCALE( 6.0f)}, /* 0x01 */
292 {FP_SCALE( 6.0f), FP_SCALE( 2.0f)}, /* 0x02 */
293 {FP_SCALE(-6.0f), FP_SCALE(-6.0f)}, /* 0x03 */
294 {FP_SCALE(-6.0f), FP_SCALE( 6.0f)}, /* 0x04 */
295 {FP_SCALE( 2.0f), FP_SCALE(-6.0f)}, /* 0x05 */
296 {FP_SCALE(-6.0f), FP_SCALE(-2.0f)}, /* 0x06 */
297 {FP_SCALE( 6.0f), FP_SCALE( 6.0f)}, /* 0x07 */
298 {FP_SCALE(-2.0f), FP_SCALE( 2.0f)}, /* 0x08 */
299 {FP_SCALE( 6.0f), FP_SCALE(-2.0f)}, /* 0x09 */
300 {FP_SCALE(-2.0f), FP_SCALE(-6.0f)}, /* 0x0A */
301 {FP_SCALE( 2.0f), FP_SCALE( 2.0f)}, /* 0x0B */
302 {FP_SCALE( 2.0f), FP_SCALE(-2.0f)}, /* 0x0C */
303 {FP_SCALE(-6.0f), FP_SCALE( 2.0f)}, /* 0x0D */
304 {FP_SCALE( 2.0f), FP_SCALE( 6.0f)}, /* 0x0E */
305 {FP_SCALE(-2.0f), FP_SCALE(-2.0f)} /* 0x0F */
306};
307
308/* This one does not exist in V.17 as a data constellation. It is only
309 the equaliser training constellation. In V.32/V.32bis it is a data mode. */
310#if defined(SPANDSP_USE_FIXED_POINTx)
311static const complexi16_t v17_v32bis_4800_constellation[4] =
312#else
313static const complexf_t v17_v32bis_4800_constellation[4] =
314#endif
315{
316 {FP_SCALE(-6.0f), FP_SCALE(-2.0f)}, /* 0x00 */
317 {FP_SCALE(-2.0f), FP_SCALE( 6.0f)}, /* 0x01 */
318 {FP_SCALE( 2.0f), FP_SCALE(-6.0f)}, /* 0x02 */
319 {FP_SCALE( 6.0f), FP_SCALE( 2.0f)} /* 0x03 */
320};
321
322#if defined(SPANDSP_USE_FIXED_POINTx)
323static const complexi16_t v17_v32bis_abcd_constellation[4] =
324#else
325static const complexf_t v17_v32bis_abcd_constellation[4] =
326#endif
327{
328 {FP_SCALE(-6.0f), FP_SCALE(-2.0f)}, /* A */
329 {FP_SCALE( 2.0f), FP_SCALE(-6.0f)}, /* B */
330 {FP_SCALE( 6.0f), FP_SCALE( 2.0f)}, /* C */
331 {FP_SCALE(-2.0f), FP_SCALE( 6.0f)} /* D */
332};
333
334/*- End of file ------------------------------------------------------------*/
Definition complex.h:43
Definition complex.h:89