Generate 16 QAM signals

I know a way to generate QPSK signals using the following

TxS=round(rand(1,N))*2-1;  % QPSK symbols are transmitted symbols
TxS=TxS+sqrt(-1)*(round(rand(1,N))*2-1);

      

In the example above, the characters have 2 alphabets + 1 / -1. But I can't figure out how to generate a 16-Quadrature AM signal for the same alphabet space? Is it possible? Or what is the usual way to generate?

Besides, is this a practice of working with complex signals, and not real?

+3


source to share


2 answers


Take a look at this: http://www.mathworks.com/help/comm/ref/comm.rectangularqamdemodulator-class.html

hMod = comm.RectangularQAMModulator('ModulationOrder',16);
dataIn = randi([0 15],10000,1);
txSig = step(hMod,dataIn);

      



You can also use:

TxS = (randi(4,N,1)*2-5)+i*(randi(4,N,1)*2-5)

      

+5


source


Yes, it is common to work with complex numbers (representing the I / Q (in-phase / quadrature) plane) rather than real numbers. This is due to the fact that in radio-specific software, you usually consider a complex baseband.



Of course, you cannot imagine 16 points with two dimensions and two values ​​in each of them. You might want to familiarize yourself with the theory of digital communications.

+1


source







All Articles