Robochameleon  v1.0
Functions
constref.m File Reference

Constellation reference. More...

Go to the source code of this file.

Functions

function constref (in type, in M, in varargin)
 

Detailed Description

Constellation reference.

This function returns regular reference constellations that can be easily parameterized.

Usage

[c, P] = constref(type, M, ROT)
Parameters
typeconstellation type {'ASK','QAM','PSK','DSQ','B','C','CIRCA',
'CIRCB','CIRCULAR','COMPACT','CROSS','DODECA','DOUBLESIMPLEX','DOUBLEQPSK',
'ENNEA','FIVECIRCLE','HEPTA','HEX','HONEYCOMB','MODEM','MULTIPSK','OCTA',
'PENTA','RECTANGLE','STAR','SQUARE','SIXCIRCLE','T','TA','TB','TRI',
'V29MODEM','VORONOI','DPASK'}
type can also be {'OOK','PAM','QPSK','16-QAM'} for fast reference, and is not case-sensitive.
Mconstellation order (number of points/levels). M must be an integer such that:
  • for 'ASK', M=any
  • for 'QAM', M=4/8/16/32/60/64/256/1024/4096...
  • for 'PSK', M=any
  • for 'DSQ', M=8/32/128/512
  • for 'B', M=128
  • for 'C', M=8/16/32/64/128/256
  • for 'CIRCA', M=32/64
  • for 'CIRCB', M=32/64
  • for 'CIRCULAR', M=64
  • for 'COMPACT', M=16
  • for 'CROSS', M=16/32/64/128/512
  • for 'DODECA', M=16
  • for 'DOUBLESIMPLEX', M=4
  • for 'DOUBLEQPSK', M=8
  • for 'ENNEA', M=16
  • for 'FIVECIRCLE', M=128
  • for 'HEPTA', M=8
  • for 'HEX', M=16
  • for 'HONEYCOMB', M=16/32/64
  • for 'MODEM', M=8/64
  • for 'MULTIPSK', M=16/32
  • for 'OCTA', M=16
  • for 'PENTA', M=16
  • for 'RECTANGLE', M=8
  • for 'STAR', M=8
  • for 'SQUARE', M=8
  • for 'SIXCIRCLE', M=128
  • for 'T', M=16
  • for 'TA', M=32
  • for 'TB', M=32
  • for 'TRI', M=4/16/32/64/128
  • for 'V29MODEM', M=8/16
  • for 'VORONOI', M=64
  • for 'DPASK' M=4/8/16/64/256/1024...
  • for 'OOK' M=2
  • for 'QPSK' M=4
  • for '16-QAM', M=16
ROTconstellation rotation in degrees
Return values
c- complex constellation
Paverage constellation energy (scaling factor) use c/sqrt(P) for normalization

Conventions

'QAM': Clusters for QAM are returned in the following order:

*          Q(j)
*     1  5 |  9 13
*     2  6 | 10 14
*    ------+------- I
*     3  7 | 11 15
*     4  8 | 12 16
* 

'QAM' (M=8): 8-QAM returns a constellation from a subset of 16QAM. 8-Star returns a circular QAM constellation with 8 points, which is more commonly used in optics as 8QAM.

*       Q(j)
*    1   |   7
*      3 | 5
*    ----+--- I
*      4 | 6
*    2   |   8
* 

'PSK': Clusters for PSK are returned in the following order (first point always has phase of 0):

*         Q(j)
*          3
*       4  |  2
*    -5----+----1- I
*       6  |  8
*          7
* 

'CROSS' (M = 16/32/128/512):

*                                                                          M=128
*                                                                           Q(j)
*                                                            017 029 041 053|065 077 089 101
*          M=16                     M=32                     018 030 042 054|066 078 090 102
*          Q(j)                     Q(j)             001 009 019 031 043 055|067 079 091 103 113 121
*           |                   05 11|17 23          002 010 020 032 044 056|068 080 092 104 114 122
*        03 07 11            01 06 12|18 24 29       003 011 021 033 045 057|069 081 093 105 115 123
*     01 04 08 12 15         02 07 13|19 25 30       004 012 022 034 046 058|070 082 094 106 116 124
*    -------+---------I     ---------+---------I   -------------------------+------------------------I
*     02 05 09 13 16         03 08 14|20 26 31       005 013 023 035 047 059|071 083 095 107 117 125
*        06 10 14            04 09 15|21 27 32       006 014 024 036 048 060|072 084 096 108 118 126
*           |                   10 16|22 28          007 015 025 037 049 061|073 085 097 109 119 127
*                                                    008 016 026 038 050 062|074 086 098 110 120 128
*                                                             027 039 051 063|075 087 099 111
*                                                             028 040 052 064|076 088 100 112
* 
* 
*                                                 M=512
*                                                 Q(j)
*                   065 089 113 137 161 185 209 233|257 281 305 329 353 377 401 425
*                   066 090 114 138 162 186 210 234|258 282 306 330 354 378 402 426
*                   067 091 115 139 163 187 211 235|259 283 307 331 355 379 403 427
*                   068 092 116 140 164 188 212 236|260 284 308 332 356 380 404 428
*   001 017 033 049 069 093 117 141 165 189 213 237|261 285 309 333 357 381 405 429 449 465 481 497
*   002 018 034 050 070 094 118 142 166 190 214 238|262 286 310 334 358 382 406 430 450 466 482 498
*   003 019 035 051 071 095 119 143 167 191 215 239|263 287 311 335 359 383 407 431 451 467 483 499
*   004 020 036 052 072 096 120 144 168 192 216 240|264 288 312 336 360 384 408 432 452 468 484 500
*   005 021 037 053 073 097 121 145 169 193 217 241|265 289 313 337 361 385 409 433 453 469 485 501
*   006 022 038 054 074 098 122 146 170 194 218 242|266 290 314 338 362 386 410 434 454 470 486 502
*   007 023 039 055 075 099 123 147 171 195 219 243|267 291 315 339 363 387 411 435 455 471 487 503
*   008 024 040 056 076 100 124 148 172 196 220 244|268 292 316 340 364 388 412 436 456 472 488 504
*  ------------------------------------------------+------------------------------------------------I
*   009 025 041 057 077 101 125 149 173 197 221 245|269 293 317 341 365 389 413 437 457 473 489 505
*   010 026 042 058 078 102 126 150 174 198 222 246|270 294 318 342 366 390 414 438 458 474 490 506
*   011 027 043 059 079 103 127 151 175 199 223 247|271 295 319 343 367 391 415 439 459 475 491 507
*   012 028 044 060 080 104 128 152 176 200 224 248|272 296 320 344 368 392 416 440 460 476 492 508
*   013 029 045 061 081 105 129 153 177 201 225 249|273 297 321 345 369 393 417 441 461 477 493 509
*   014 030 046 062 082 106 130 154 178 202 226 250|274 298 322 346 340 394 418 442 462 478 494 510
*   015 031 047 063 083 107 131 155 179 203 227 251|275 299 323 347 341 395 419 443 463 479 495 511
*   016 032 048 064 084 108 132 156 180 204 228 252|276 300 324 348 342 396 420 444 464 480 496 512
*                   085 109 133 157 181 205 229 253|277 301 325 349 343 397 421 445
*                   086 110 134 158 182 206 230 254|278 302 326 350 344 398 422 446
*                   087 111 135 159 183 207 231 255|279 303 327 351 345 399 423 447
*                   088 112 136 160 184 208 232 256|280 304 328 352 346 400 424 448
* 

'DODECA' (M = 16):

*         Q(j)
*         8
*     04  |  12
*   02  06|10  14
*  01-----+-----16 I
*   03  07|11  15
*     05  |  13
*         9
* 

'DOUBLESIMPLEX' (M = 4):

*         Q(j)
*          2
*          |
*    ----1-+-4---- I
*          |
*          3
* 

'DOUBLEQPSK' (M = 8)

*       Q(j)
*    1   |   7
*      3 | 5
*    ----+--- I
*      4 | 6
*    2   |   8
* 

'DSQ' (M = 8/32/128/512)

*                           Q(j)
*                       05  13|  21  29
*       Q(j)          01  09  |17  25
*       3 |    7        06  14|  22  30
*    1    | 5         02  10  |18  26
*    -----+----- I    --------+--------- I
*       4 |    8        07  15|  23  31
*    2    | 6         03  11  |19  27
*                       08  16|  24  32
*                     04  12  |20  28
* 

'ENNEA' (M = 16)

*       Q(j)
*       06|11
*   03    |    14
*  01   07|10    16
*   ------+------- I
*   02 05 08 12 15
*     04  |   13
*         09
* 

'HEPTA' (M = 8):

*         Q(j)
*         3|
*      4   |  2
*    ------8----1- I
*      5   |  7
*         6|
* 

'HONEYCOMB' (M = 16):

*            Q(j)
*           06|09
*      02 04  |  12 14
*    01-----07+10-----16- I
*      03 05  |  13 15
*           08|11
* 

'MODEM' (M = 8):

*         Q(j)
*          |
*      1   4   7
*    ----3-+-6---- I
*      2   5   8
*          |
* 

'MULTIPSK' (M = 16):

*         Q(j)
*       11 | 10
*         3|2   9
*    12 4  |  1
*    ------+------ I
*    13 5  |  8
*         6|7   16
*       14 | 15
* 

'OCTA' (M = 16):

*         Q(j)
*          11
*     12  3|2  10
*       4  |  1
*    13----+-----9- I
*       5  |  8
*     14  6|7  16
*          15
* 

'PENTA' (M = 16):

*         Q(j)
*      10  9  8
*          |
*   11    3| 2   7
*    ---4--1------- I
*   12    5| 6   16
*          |
*      13  14 15
* 

'RECTANGLE' (M = 8):

*         Q(j)
*          |
*      1  3|5  7
*    ------+----- I
*      2  4|6  8
*          |
* 

'SQUARE' (M = 8):

*         Q(j)
*      1    4    6
*           |
*    --2----+----7-- I
*           |
*      3    5    8
* 

'STAR' (M = 8):

*         Q(j)
*     1    |    7
*          4
*    ---3--+--6--- I
*          5
*     2    |    8
* 

'TRI' (M = 4/16):

*   M=4    Q(j)
*           2
*           |
*    -------3------- I
*        1  |  4
*           |
* 
*  M=16     Q(j)
*        04  8  12
*      02  06|10  14
*    --------+---------I
*    01  05  9  13  16
*      03  07|11  15
* 

'DPASK': Clusters for DP-ASK are returned in the following order:

*    Py
*    | 4  8 12 16
*    | 3  7 11 15
*    | 2  6 10 14
*    | 1  5  9 13
*    +------------ Px
* 
See also
constmap.m
Author
Robert Borkowski 15.8.2014
Júlio César M. Diniz 11.03.2016
Version
v4.0

Definition in file constref.m.