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?
source to share
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)
source to share
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.
source to share