Maps a binary sequence to a symbol sequence

Calling sequence

x = symmap(b,k[,enc])



Input binary sequence (must be a vector of 0.0 and 1.0)


Number of bits / symbol


Specify binary ('b', default), phase ('p'), or qam ('q') encoding


Output symbol vector (real or complex)


Maps a binary sequence (sequence of 0 or 1) to a sequence of symbols, using one of the following possible encodings:

  • Binary encoding (PAM / NRZ) / enc = 'b': produces a vector of real symbols, uniformly distribued between -1 and 1 (if k = 2, only -1 and 1 are produced, e.g. NRZ encoding).
  • Phase encoding (PSK) / enc = 'p': produces complex symbols of unit magnitude and uniformly distribued phase between 0 and radians (for k = 1 bit/symbol, this is BPSK, which symbols are identical to NRZ, for k = 2 bits/symbol, this is QPSK, ...).
  • Quadrature amplitude Encoding (QAM) / enc = 'q': produces complex symbols where real and imaginary parts of the signal are independently modulated using each one half of the bitstream.


x1 = symmap([0 1 0 0], 1, 'b') // NRZ encoding
x2 = symmap([0 1 0 0], 2, 'p') // QPSK encoding

See also