生成 16 QAM 信号

Generate 16 QAM signal

我知道用下面的方法生成QPSK信号

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

上面的符号是2个字母+1/-1。 但是我不明白如何为相同的字母表 space 生成 16 正交调幅信号?可能吗?或者通常的生成方式是什么?

另外,处理复杂信号而不是真实信号是一种习惯吗?

看看这个: 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);

您还可以使用:

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

是的,通常使用复数(表示 I/Q (in-phase/quadrature) 平面)而不是实数。这是因为在软件无线电中,您通常会考虑复杂的基带。

当然,您不能只用两个维度和每个维度中的两个值来表示 16 个点。您可能想阅读数字通信理论。